Le système ne démarre plus, a abandonné l'attente du périphérique racine, (initramfs), / dev / mapper / gnome-root n'existe pas

10

Après avoir installé une mise à jour, mon système ne démarre plus. J'ai le chiffrement complet du disque (celui que le programme d'installation a configuré pour vous) activé, il demande généralement la clé quelques secondes seulement après le démarrage de GRUB. Maintenant, il ignore la demande de la clé, essaie de charger Gnome, puis passe à l'écran illustré ci-dessous. Le système est une boîte System76 64 bits exécutant Ubuntu Gnome 13.04. Cela m'est cependant arrivé une fois dans le passé, sur un Dell XPS 8300 64 bits exécutant Ubuntu Gnome Remix 12.10. Dans ce cas, j'ai réinstallé le système d'exploitation. Cependant, je veux résoudre le problème cette fois-ci, donc je sais comment le gérer à l'avenir. De plus, il est extrêmement gênant de réinstaller à partir de zéro.

Je soupçonne que quelque chose a été foiré dans un fichier de configuration dans / boot de telle sorte qu'il ne réalise pas que le disque est crypté, mais je n'ai rien vu en fouillant là-dedans. Avez-vous des idées sur la façon de le réparer (en plus de réinstaller le système d'exploitation)?

Gave up waiting for root device. Common problems:
  — Boot args (cat /proc/cmdline)
    — Check rootdelay= (did the system wait long enough?)
    — Check root= (did the system wait for the right device?)
  — Missing modules (cat /proc/modules; ls /dev)
ALERT! /dev/mapper/gnome-root does not exist.   
Dropping to a shell! 

BusyBox v.1.20.2 (Ubuntu 1:1.20.2-1ubuntu1) built-in shell (ash)   
Enter 'help' for list of built-in commands.  

(initramfs)
Freedom_Ben
la source

Réponses:

9

Je l'ai réparé !!! Pour les générations futures afin que vous n'ayez pas à passer par les jours angoissants et les heures interminables que j'ai faites:

Tout d'abord, j'ai pu obtenir le système pour démarrer à partir de l' (initramfs)invite en tapant ce qui suit (j'ai utilisé cette page de forum comme une béquille):

cryptsetup luksOpen /dev/sda5 sda5_crypt
lvm vgchange -a y
exit

Cela a permis à mon système de démarrer correctement. Une fois démarré, j'ai modifié /etc/crypttabpour pointer vers un UUID différent qu'auparavant. J'ai choisi l'UUID de mon /etc/fstab. Enregistrez la valeur UUID d'origine. Vous en aurez besoin en quelques étapes. J'ai ensuite couru (depuis un terminal):

update-initramfs -k all -c

Si vous recevez un avertissement qui ressemble à ceci ou quelque chose de similaire:

WARNING: invalid line in /etc/crypttab

puis retournez au début et au lieu de sda5_crypt, utilisez ce qui est dans votre crypttab.

J'ai ensuite redémarré. Cette fois, j'ai reçu l'invite pour la phrase de passe! Mais ne vous excitez pas trop, car cela n'a pas fonctionné. J'ai entré le bon mot de passe environ 7 fois et il les a tous rejetés. Il est ensuite revenu à l' (initramfs)invite après environ 90 secondes.

J'ai répété la première étape et l'ai redémarré. J'ai ensuite restauré la valeur UUID d' origine dans la crypttabdeuxième étape, puis réexécutée. J'ai ensuite redémarré, et SUCCÈS!

Freedom_Ben
la source
5

Le chiffrement intégral du disque étant une option dans Ubuntu 14.04, je voulais juste souligner comment j'ai résolu ce problème, car mon terminal initramfs ne me permettait pas d'utiliser cryptsetup:

  1. Démarrez à partir d'un Live DVD / USB (l'USB sera beaucoup plus rapide).

  2. Ouvrez un terminal et tapez ce qui suit:

    sudo -i
    cryptsetup luksOpen /dev/sda5 sda5_crypt
    # (do any lvm management you need here, I didn't need any.)
    mkdir /mnt/system
    mount /dev/mapper/ubuntu--vg-root /mnt/system
    mount /dev/sda2 /mnt/system/boot
    mount /dev/sda1 /mnt/system/boot/efi (May or may not be needed.)
    for i in /dev/pts /dev /proc /sys; do mount -B $i /mnt/system$i; done
    chroot /mnt/system
    update-initramfs -k all -c
    exit
    for i in /dev/pts /dev /proc /sys; do umount /mnt/system$i; done
    umount /mnt/system/boot/efi # (If you have UEFI.)
    umount /mnt/system/boot
    umount /mnt/system
  3. Redémarrez et espérez que cela fonctionne.

k0ryfi
la source
J'ai mieux aimé cette solution, car je n'avais pas à trouver comment obtenir une invite initramfs ou faire plus d'un redémarrage. Dans mon cas, j'étais passé d'Ubuntu 15.04 à 15.10 et je ne pouvais plus déverrouiller mon disque au démarrage. Un ajout est que j'ai trouvé que le nom de mappage fourni sur la ligne 2 (par exemple sda5_crypt) doit correspondre à votre fichier crypttab.
Der Wolf
1
Ce qui précède ne fonctionne que si vous avez une entrée dans /etc/crypttab. Après avoir entré le chroot selon les étapes ci-dessus, mais avant d'exécuter update-initramfs, exécutez nano /etc/crypttabet assurez-vous qu'il y a une ligne avec le nom du mappeur et l'UUID du lecteur. Si le fichier n'existe pas ou est vide, update-initramfsne résoudra pas le problème! Ajoutez la ligne crypttab dans l'environnement chroot. Cette réponse doit être modifiée pour refléter cela. En outre, je pense que cela cryptsetupn'existe que sur l'invite initramfs s'il /etc/crypttabexiste et a des entrées lorsque initramfs est mis à jour.
Nick
0

Corrigez votre grub via le démarrage via un live-cd / live-usb. Reportez - vous à cette page pour plus de détails sur le processus. Reportez-vous à la section "via le terminal LiveCD" sur la page.

La correction de grub devrait corriger tout fichier mal formé que vous pourriez avoir dans la configuration de grub.

Bhavin Doshi
la source
Merci pour le conseil. J'ai essayé tout ce que vous avez suggéré mais en vain. Je viens juste de le comprendre. C'est assez fou ...
Freedom_Ben
0

Vérifiez si vous avez cryptsetupinstallé sur votre système, il a peut-être été supprimé en exécutant apt-get autoremove. Plus d'infos .

Arseny
la source