Table des matières

Dracut Warning: Could not boot - Comment réparer

Dracut vous informe qu'il est impossible de démarrer le système GNU/Linux, avec l'un des deux messages d'erreur suivant :

dracut Warning: Could not boot. dracut Warning: /dev/disk/by-uidd/a7ed7a37-282e-4c30-8e29-b775c9591c52 does not existe Generating “/run/initramfs/rdsosreport.txt” You might want to save “/run/initramfs/rdsosreport.txt” to a USB stick or /boot after mounting them and attach it to a bug report. To get more debug information in the report, reboot with “rd.debug” added to the kernel command line.Dropping to debug shelle. dracut:/#

La variante du message d'erreur est vraisemblablement, avec les 3 premières lignes différentes :

dracut Warning: Cancelling resume operation. Device not found. dracut Warning: Coul not boot. dracut Warning: /dev/resume does not exist

Pourquoi

Vous avez installé un nouveau système d'exploitation et, lors de cette installation, la (les) partition(s) swap ont probablement été formatée. Ce formatage a alors modifié le codage UUID de la partition. Or le codage UUID, une suite de caractères alphanumériques, est employé dans divers fichiers de configuration dans le but de bien cibler (identifier) les partitions. Ce codage étant devenus obsolète, le système cherche une partition devenue fantôme. D'où le démarrage rendu impossible.

Solution

La solution bête et méchante, ce serait la méthode bourrin utilisée massivement sous Windows. On rase tout et on réinstalle ! Sans même parler de l'aspect “finesse”, avec plusieurs systèmes, ce sera tout aussi bien pas mal de temps passé. Solution qui, évidemment, a fait ses preuves mais qui ne permet pas de comprendre et donc de réparer intelligemment !

Quels outils

Nous allons chrooter le système. Par conséquent, choisissez bien votre système de départ pour chrooter. Chrooter, c'est utiliser un système d’exploitation pour y enfermer un second à l'intérieur tout en faisant croire au second qu'il est tout seul. Or, pour chrooter un système 64 bits, il faut passer par un autre système 64 bits obligatoirement. Ne tentez pas de chrooter avec du 32 bits un OS 64 bits ; cela ne passera pas !

On prend quoi alors pour chrooter ? De fait, deux solutions :

Dans les LiveCD exploitables, je suis parti de l'idée qu'il vous faut une console (un terminal), un éditeur de texte et un explorateur de fichiers. Quelques solutions :

Chroot

Chrootons. Désormais, tout se fait par la ligne de commande.

On prépare le terrain :

On chroote :

Vous devez bien sûr adapter à votre cas sda3.

Trouver les valeurs UUID

Gparted peut donner les données UIDD mais ce sera alors assez long à faire dans le cas de plusieurs partitions.

La commande blkid fait aussi bien l'affaire en donnant les informations suivantes (exemple) :

Notez que la commande blkid requiert les droits root et peut être effectuée avant ou après avoir chrooter.

Modification des fichiers

Au moins trois fichiers sont concernés. Il suffit de trouver l'entrée UUID obsolète pour la remplacer par la nouvelle. L'entrée UUID périmée est celle donnée par le message d'erreur de dracut tandis que la nouvelle valeur a été fournie par la commande blkid.

Fichier de configuration de dracut

Le fichier /etc/dracut.conf.d/51-mageia-resume.conf contient la ligne suivante :

Vérifiez la référence UUID.

Attention : selon la distribution, il est possible que le chemin du fichier de configuration de dracut diffère !

Fichier fstab

Le fichier /etc/fstab contient probablement ceci :

Modifiez avec la nouvelle UUID.

Fichier grub.cfg

Le fichier /boot/grub2/grub.cfg est probablement à modifier si vous avez eu le second message d'erreur vu plus haut. Ce message disait « dracut Warning: Cancelling resume operation. Device not found. »

Vous devriez trouver plusieurs fois le texte ci-dessous :

Cette option « resume » cible la partition swap et son UUID est à modifier.

Régénération de dracut

Régénérez dracut avec la commande suivante (toujours dans le chroot) :

Démontage du chroot et redémarrage

Il est temps de démonter le chroot, soit, toujours en console :

Redémarrer pour vérifier.