Система больше не загружается, перестала ждать корневое устройство, (initramfs), / dev / mapper / gnome-root не существует

10

После установки обновления моя система больше не загружается. У меня включено полное шифрование диска (то, которое установщик установил для вас), поэтому обычно оно запрашивает ключ только через несколько секунд после загрузки после GRUB. Теперь он пропускает запрос ключа, пытается загрузить Gnome, а затем переходит на экран, показанный ниже. Система представляет собой 64-разрядную версию System76 под управлением Ubuntu Gnome 13.04. Это случилось со мной однажды в прошлом, на Dell XPS 8300 64-разрядной версии Ubuntu Gnome Remix 12.10. В этом случае я переустановил ОС. Однако на этот раз я хочу решить проблему, чтобы знать, как ее решить в будущем. Также крайне неудобно переустанавливать с нуля.

Я подозреваю, что что-то напортачило в файле конфигурации в / boot, так что он не понимает, что диск зашифрован, но я ничего не видел, когда выискал там. У вас есть идеи, как это исправить (кроме переустановки ОС)?

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
источник

Ответы:

9

Я исправил это !!! Для будущих поколений, так что вам не придется переживать мучительные дни и бесконечные часы, которые я делал:

Во-первых, я смог загрузить систему из (initramfs)командной строки, набрав следующее (я использовал эту страницу форума в качестве опоры):

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

Это заставило мою систему загрузиться правильно. После загрузки я изменил, /etc/crypttabчтобы указать на другой UUID, чем раньше. Я выбрал UUID из моего /etc/fstab. Сохраните исходное значение UUID. Вам понадобится это в несколько шагов. Затем я побежал (из терминала):

update-initramfs -k all -c

Если вы получите предупреждение, которое выглядит так или что-то похожее:

WARNING: invalid line in /etc/crypttab

затем вернитесь к началу и вместо того sda5_crypt, чтобы использовать то, что у вас есть crypttab.

Я тогда перезагрузил. На этот раз я получил приглашение для ключевой фразы! Но не слишком волнуйтесь, потому что это не сработало. Я ввел правильный пароль около 7 раз, и он отклонил их все. Затем он вернулся к (initramfs)приглашению примерно через 90 секунд.

Я повторил первый шаг и снова загрузился. Затем я восстановил исходное значение UUID в crypttabи повторил шаг два. Я тогда перезагрузился и УСПЕХА!

Freedom_Ben
источник
5

Поскольку в Ubuntu 14.04 была опция полного шифрования диска, я просто хотел указать, как я решил эту проблему, поскольку мой терминал initramfs не позволял мне использовать cryptsetup:

  1. Загрузитесь с Live DVD / USB (USB будет намного быстрее).

  2. Откройте Терминал и введите следующее:

    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. Перезагрузитесь и надеюсь, что это работает.

k0ryfi
источник
Мне это решение понравилось больше, потому что мне не нужно было выяснять, как получить приглашение initramfs или выполнить более одной перезагрузки. В моем случае я обновил Ubuntu 15.04 до 15.10 и больше не мог разблокировать диск во время загрузки. Одним из добавлений является то, что я обнаружил, что имя сопоставления, указанное в строке 2 (например, sda5_crypt), должно соответствовать вашему файлу crypttab.
Der Wolf
1
Выше работает только если у вас есть запись в /etc/crypttab. После ввода chroot в соответствии с шагами, описанными выше, но перед запуском update-initramfsзапустите nano /etc/crypttabи убедитесь, что там есть строка с именем устройства отображения и UUID диска. Если файл не существует или является пустым, update-initramfsне решит проблему! Добавьте строку crypttab в среде chroot. Этот ответ должен быть отредактирован, чтобы отразить это. Кроме того, я думаю, что cryptsetupсуществует только в приглашении initramfs, если /etc/crypttabсуществует и имеет записи при обновлении initramfs.
Ник
0

Исправьте ваш grub через загрузку через live-cd / live-usb. Обратитесь к этой странице за подробной информацией о процессе. Обратитесь к разделу «через терминал LiveCD» на странице.

Исправление grub должно исправить любой искаженный файл, который может быть в конфигурации grub.

Бхавин Доши
источник
Спасибо за совет. Я перепробовал все, что ты предложил, но безрезультатно. Я только что понял это, хотя. Это довольно безумно ...
Freedom_Ben