Menu Chiudi

Pillola #75: Aggiornamento di ubuntu da 22.04 a 24.04 bloccato con errori?

Introduzione

Voglio raccontarvi lo sfortunato aggiornamento di Ubuntu 22.04 a 24.04, anche perchè così lascio un appunto sul prossimo aggiornamento con problemi.

A grandi linee l’aggiornamento di Ubuntu prevede le seguenti fasi:

  • aggiornamento dei repository alla nuova versione, cambio file source con la nuova versione
  • disabilitare tutti i repository di terze parti
  • aggiornamento dei pacchetti core (apt upgrade)
  • rimozione pacchetti non usati o vecchi (atp autoremove)
  • riavvio
  • manualmente aggiornamento completo (apt full-upgrade)
  • riabilitazione dei repository di terze parti
  • aggiornamento dei pacchetti di terze parti

Con la nuova versione magari cambia qualcosa e si devono sostituire i file /etc/apt/sources.list.d/ .

Ovviamente lo script di avanzamento di versione fa molto di più, ma i passi sono più o meno questi.

Se però qualcosa va storto, come nel mio secondo aggiornamento dove avevo eliminato snap dal PC, l’installazione di thunderbird ha bloccato l’avanzamento dei pacchetti, rendendo il mio PC inutilizzabile.

Prima di riavviare in questo caso ci sono dei passaggi da fare manualmente:

  • disinstallare il pacchetto con errori, tralasciando le dipendenze
  • correggere le dipendenze nel sistema apt
  • riprendere l’aggiornamento
  • installare tutti gli aggiornamenti (full-upgrade)
  • correggere grub per il boot
  • riavviare
  • riabilitare i repository di terze parti ed aggiornare

Nel mio caso però ho erroneamente riavviato, così il mio PC che ha la partizione di root cifrata, non ripartiva più.

Quindi come sono ripartito? … vediamo!

Preparare una chiavetta live

Ho preparato una chiavetta con una live di Ubuntu 24.04 e avviato il mio PC con la chiavetta.

Procedura per il chroot da live

Questi i passi che ho seguito:

  • sbloccare la partizione cifrata grazie a nautilus della live
  • la password per sbloccare la cifratura la devi sapere
  • aprire un terminale
  • predisporre l’ambiente di chroot:
# sudo mkdir /mnt/root
# sudo mount /dev/nvmen1p3 /mnt/root/
# sudo mount /dev/nvmen1p2 /mnt/root/boot
# sudo mount /dev/nvmen1p1 /mnt/root/boot/efi
# sudo mount -o bind /proc /mnt/root/proc
# sudo mount -o bind /sys /mnt/root/sys
# sudo mount -o bind /run /mnt/root/run
# sudo mount -o bind /dev /mnt/root/dev
# sudo mount -t ptsfs /dev/pts /mnt/root/dev/pts
# sudo chroot /mnt/root

Ora recuperiamo l’errore rimuovendo il pacchetto:

Recupero dagli errori sui pacchetti

Recupero i pacchetti che vanno disinstallati:

# sudo dpkg -l | grep ^..R
# sudo dpkg --purge --force-depends <nome pacchetto>
# sudo dpkg --configure -a
# sudo apt --fix-broken install
# sudo apt full-upgrade

Verificare la configurazione della partizione cifrata

Come descrivevo nell’introduzione, il mio portatile ha la partizione di root cifrata.

Non so per quale motivo, durante l’aggiornamento interrotto, ha scombinato la configurazione. Risultato il sistema non ripartiva e dopo un paio di lampeggi andava sul menù del BIOS del PC.

Seguendo l’intera procedura per il chroot, descritta prima ho aggiornato grub.

# sudo update-grub

Durante questa fase ho notato un messaggio di attenzione, che indicava una mancata corrispondenza per il disco luks-19b1352d-…-b5eee79586f7

Ho quindi editato il file /etc/crypttab, dove ho trovato la riga precedente di configurazione e ne ho cambiato l’identificativo, allineandolo a quello segnalato.

# cat /etc/crypttab 

luks-19b1352d-...-b5eee79586f7 UUID=19b1352d-...-b5eee79586f7 none luks,discard
#nvme0n1p3_crypt UUID=19b1352d-...-b5eee79586f7 none luks,discard

Riavviando il comando di aggiornamento di grub, la segnalazione di attenzione è sparita e il PC è tornato come prima.

Riattivazione dei repository di terze parti

Con la nuova versione di Ubuntu, è cambiata la sintassi dei file per i repository.

Ho preferito quindi visualizzare quelli che avevo in precedenza, contenuti in /etc/apt/sources.list.d/ e ri-aggiungerli a mano, seguendo le indicazioni dei siti specifici. Alcuni applicativi, come kdenlive non hanno più i repository, ma distribuiscono il pacchetto con i sistemi: appimage, flatpak.

Riferimenti

Ogni singolo comando, che trovate qui sopra, è stato cercato in internet. Ho preferito raggruppare le varie ricerche in un’unica pagina in modo da poter, ricordarmelo in futuro oppure per poter aiutare qualcun altro.

WordPress Appliance - Powered by TurnKey Linux