Cosa significa "fare il downgrade di un sistema"?

Nel mondo di Debian, significa passare ad una distribuzione più vecchia (tipicamente passare da unstable a testing). Non è previsto ottenere qualcosa di stable mediante downgrade!

È supportato?

Qual è, allora, la procedura consigliata?

  1. Fare il backup del proprio sistema prima dell'avanzamento di versione, così da poter fare il "downgrade" semplicemente ripristinando il sistema tramite il backup!
  2. oppure re-installare

Ma si è disperati perché non si hanno backup...

Ci sono alcuni modi per aggirare il problema e salvare il sistema a patto di sapere dove sono i propri dati importanti. Potrebbero essere nella directory home, in /etc/, /mail/, ....

  1. Se un aggiornamento ha reso il sistema non funzionante, avviare il sistema con un CD/chiavetta USB/... live e fare un backup dei dati personali da qualche parte (HD connesso via USB, sistema remoto connesso con SSH, ...).
  2. Fare una nuova installazione di sistema da zero.
  3. Ripristinare i dati personali dal backup.

Ma si è disperati e pigri...

Ecco un trucco totalmente non supportato che può funzionare in alcune situazioni fortunate; è un esempio centrato su sistema desktop.

La regressione della versione di sistema tende ad avere più successo se non ci sono molti pacchetti installati. È una buona idea che non ci sia nessun programma con GUI e niente TeX. Il trucco è praticamente quello di rimuovere tutti i pacchetti non essenziali :-). Il procedimento che segue è descritto in modo molto sintetico. Se è troppo criptico, provare invece il metodo descritto prima con CD/chiavetta USB live.

  1. Salvare i dati e fermare tutti i task del desktop
  2. CTRL-ALT-F3 per andare in console e fare il login come root
  3. Avviare aptitude -u

  4. Premere l per aprire il riquadro di dialogo

  5. Inserire ~i!~prequired!~pimportant!~pstandard!~M!~skernel!~sadmin!~n^firmware

  6. Premere 'M' nella riga 'Pacchetti installati' e premere '['
  7. Premere 'm' sui pacchetti chiave come 'vim' 'mc' 'git' 'ssh' 'exim4-daemon-light', ... (pacchetti che è necessario mantenere)
  8. Premere '+' sui pacchetti chiave da installare
  9. Premere '+' di nuovo se i pacchetti chiave mostrano 'B', per risolvere le dipendenze non soddisfatte
  10. Premere 'g' (risolve le dipendenze non soddisfatte secondo quanto necessario) per rimuovere tutti i pacchetti non necessari
  11. Uscire da aptitude.

  12. Modificare /etc/apt/sources.list per puntare il repository alla distribuzione con la versione precedente

  13. Impostare apt_preferences(5) in modo da impostare la distribuzione con la versione precedente con pin 10001

  14. Eseguire apt update; apt full-upgrade per fare la regressione del sistema alla versione precedente

  15. Eseguire aptitude -u per risolvere in modo interattivo i problemi

  16. Rimuovere il pin da apt_preferences(5)

  17. Eseguire aptitude -u e installare il sistema (Usare l'elenco task in aptitude e le informazioni dal backup del file /var/lib/dpkg/status)

  18. Se si è fortunati si può ottenere un sistema in qualche modo funzionante. Non ci sono garanzie di stabilità!!!

Opzione chroot

A volte è più facile e più pulito usare l'ozpione di installazioni multiple in chroot. Questa opzione funziona per l'installazione Linux in una partizione e permette non solo di fare chroot in una cartella, ma di cambiare a calco il Linux attualmente installato.

L'idea è quella di installare tutti i sistemi operativi Linux chroot in una cartella chroot separata come /bullseye /bookworm /clearlinux /ubuntu16.20 e poi modificare a caldo il contenuto della cartella chroot nell'attuale radice /.

Ciò è rischioso, può fallire o distruggere tutti i dati e non è garantito che funzioni sul sistema. Ma in pratica funziona!

Ecco alcuni dettagli tecnici. Per fare il cambiamento a caldo del sistema operativo in esecuzione, è necessario uno speciale binario con link statico che può funzionare senza le librerie /lib/libc.* di sistema o ogni altro binario di sistema. Dato che quando si sposta la propria cartella /lib o /bin nella cartella /backup nel sistema operativo in esecuzione, tutte le chiamate di sistema falliranno e non potranno completare alcuna operazione tranne quelle a livello del kernel. Al momento attuale può far fallire il sistema in modo serio, ma non fallisce si si fanno tutte le operazioni di spostamento in una volta usando il binario con link statico.

Per provare sul proprio sistema sono necessari due script:

poi si prepara la chroot usando debootstrap, nella nuova cartella 'debootstrap bullseye /bullseye', installare il kernel e grub, poi:

# 'swapos /bullseye'

# reboot

Ci sono tecniche più sicure, incluso avviare con una USB Live e poi passare manualmente tutti i file da una cartella in un'altra e poi riavviare. Ma ci vuole molto più tempo e richiede di avere un dispositivo esterno connesso al PC e diversi riavvii.


CategorySystemAdministration CategoryPackageManagement