Montée de version de Ubuntu de la 18.04 à la 20.04 (LTS)

La version LTS de la version 20.04 étant sortie depuis quelques mois maintenant, il étant temps de migrer mon poste pro. Et malgré quelques précautions, ça ne s’est pas passé tout seul.

Avant de me lancer, j’ai voulu prendre le temps de tester si la nouvelle version fonctionnait correctement sur mon PC. Sans doute pour des raisons de sécurité, mon PC ne boot pas sur une clé USB. Heureusement, ma partition /boot est excessivement généreuse (10 Go). Du coup, j’ai décidé de booter une ISO stockée sur /boot. Et en fouillant la doc, j’ai découvert grml-rescueboot qui se charge de configurer grub pour chacune des images ISO qu’il trouve dans /boot/grml. Ceci fait, j’ai pu booter la version live de Ubuntu 20.04 et valider que tout semblait fonctionner.

Il était donc temps de faire la montée de version.

J’ai lancé l’utilitaire de mise à jour, j’ai appliqué les dernières mises à jour, puis relancé cet utilitaire qui m’a proposé la montée de version. J’ai donc lancé la montée de version. Comme elle a pris un certain temps, très longtemps, je l’ai laissé tourner dans son coin. Et quand je suis revenu, l’écran était verrouillé avec le logo de focal.

Première réaction : Youpi !

Je tente de déverrouiller : ça part en sucette…

Ne pouvant rien faire, j’ai décidé de rebooter. Et là, panique : ça reboote pas. Le boot UEFI part en timeout. Je boot en Legacy et ça part en kernel panic direct car il ne trouve pas le root fs. Mais du coup premier indice : il ne me demande pas de déverrouiller mon disque. Et effectivement, pas de initrd dans l’entrée de grub.

Je reboote donc, mais cette fois j’utilise un ancien noyau (merci à celui qui a eu l’idée de garder plusieurs noyaux dans grub) et je prend l’option rescue (sans ça, ça ne va pas bien loin). Et là, je choisi l’entrée proposant de fixer les paquets cassés (une intuition). Bingo, ça corrige des trucs. Mais il me faut le lancer un certain nombre de fois, car à chaque coup il corrige d’autre paquets. Par contre, au bout d’un certain, j’ai un doute. D’autant que systématiquement ça me rend la main après une bidouille autour de update-grub et justement il me semble que j’ai un truc à corriger à cet endroit.

Je choisi donc l’entrée avec un prompt root. Pour créer le initramfs manquant, je lance update-initramfs -c -k 5.4.0-53-generic. Comme il m’alerte sur un problème de RESUME, je mets à jour le UUID de la partition de swap. Je relance, puis je lance update-grub qui, cette fois, me génère une entrée avec un initrd.

Et pour finir, je relance une correction des paquets cassés avec dpkg --configure -a et c’était pas du luxe.

Bref, cette fois ça passe. Et j’ai un système tout neuf.