Restaurer une partition /boot sur Ubuntu avec filesystem chiffré

La partition /boot a été formatée accidentellement par l’utilisateur, le PC ne démarre plus.
Symptôme : grub se lance, mais ne trouve plus le nécessaire pour démarrer.

Message d’erreur :

error : file ‘/grub/i386-pc/normal.mod’ not found.

Et pour compliquer un peu les choses, le disque dur est chiffré (LUKS / dm-crypt).

Voici comment je m’en suis finalement sorti (tout ça à distance, pour ne pas simplifier non plus).

Démarrer sur une clé live-USB, avec la même version d’Ubuntu. En l’occurrence, il s’agissait d’Ubuntu 18.04 (en 64 bits). A noter qu’on peut accéder à distance à un Ubuntu démarré en live-USB : il suffit de l’activer dans les paramètres (item « Partages »), puis d’y accéder avec un client VNC.

Vérifier (avec l’application Disques) que c’est bien uniquement cette partition qui a été formatée. La reformater en ext4, et noter son UUID.

Ouvrir les partitions chiffrées, et faire le chroot, comme expliqué dans un article précédent. Attention au piège sur le fait d’utiliser le bon nom de device LUKS, en l’ouvrant en ligne de commande (c’est écrit dans l’article, mais je me suis fait avoir … une deuxième fois). Il m’a également fallu écrire un fichier /mnt/etc/resolv.conf pour avoir accès à Internet :

Puis se placer dans le chroot, et modifier /etc/fstab pour y mettre le nouvel UUID sur la ligne correspondant à /boot.

Lancer ls -al /lib/modules pour connaître la dernière version du kernel (dans mon cas, il s’agissait de 4.15.0-38-generic), puis :

NB : le PC en question avait un BIOS classique, pas d’UEFI. Il est possible qu’il faille adapter un peu avec de l’UEFI.

Avec ces manipulations, le PC a pu redémarrer comme avant. Je n’ai mis que le minimum : pour faire plus propre, il aurait fallu également ajouter le binaire de memtest, le répertoire « locales » de grub etc.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *