System już nie uruchamia się, zrezygnował z oczekiwania na urządzenie root, (initramfs), / dev / mapper / gnome-root nie istnieje

10

Po zainstalowaniu aktualizacji mój system nie uruchamia się już. Mam włączone szyfrowanie całego dysku (tego, które instaluje dla ciebie instalator), więc zwykle prosi o klucz zaledwie kilka sekund po uruchomieniu z GRUB-a. Teraz pomija prośbę o klucz, próbuje załadować Gnome, a następnie przechodzi do ekranu pokazanego poniżej. System to 64-bitowe urządzenie System76 z systemem Ubuntu Gnome 13.04. Zdarzyło mi się to kiedyś w 64-bitowym komputerze Dell XPS 8300 z systemem Ubuntu Gnome Remix 12.10. W takim przypadku ponownie zainstalowałem system operacyjny. Jednak tym razem chcę rozwiązać problem, więc wiem, jak sobie z nim poradzić w przyszłości. Ponowna instalacja od zera jest niezwykle niewygodna.

Podejrzewam, że coś się zepsuło w pliku konfiguracyjnym w katalogu / boot, tak że nie zdaje sobie sprawy, że dysk jest zaszyfrowany, ale nic nie widziałem, gdy się tam bawiłem. Czy masz jakieś pomysły, jak to naprawić (oprócz ponownej instalacji systemu operacyjnego)?

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
źródło

Odpowiedzi:

9

Mam to naprawione !!! Dla przyszłych pokoleń, abyście nie musieli przechodzić męczących dni i niekończących się godzin, które zrobiłem:

Po pierwsze, udało mi się uruchomić system z (initramfs)wiersza polecenia, wpisując następujące polecenie (użyłem tej strony forum jako kuli):

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

Dzięki temu mój system uruchomił się poprawnie. Po uruchomieniu zmodyfikowałem, /etc/crypttababy wskazywać inny UUID niż wcześniej. Wybrałem UUID z mojego /etc/fstab. Zapisz oryginalną wartość UUID. Będziesz go potrzebował w kilku krokach. Następnie uruchomiłem (z terminala):

update-initramfs -k all -c

Jeśli pojawi się ostrzeżenie, które wygląda tak lub podobne:

WARNING: invalid line in /etc/crypttab

następnie wróć do początku i zamiast tego sda5_cryptużyj tego, co jest w twoim crypttab.

Następnie uruchomiłem ponownie. Tym razem dostałem monit o hasło! Ale nie denerwuj się zbytnio, bo to nie działało. Podałem prawidłowe hasło około 7 razy i wszystkie one odrzuciły. Następnie wrócił do (initramfs)monitu po około 90 sekundach.

Powtórzyłem krok pierwszy i uruchomiłem go ponownie. Następnie przywróciłem pierwotną wartość UUID do crypttabi przestawiłem krok drugi. Następnie uruchomiłem ponownie i SUKCES!

Freedom_Ben
źródło
5

Ponieważ w Ubuntu 14.04 jest dostępne szyfrowanie całego dysku, chciałem tylko wskazać, w jaki sposób rozwiązałem ten problem, ponieważ mój terminal initramfs nie pozwolił mi używać cryptsetup:

  1. Uruchom z Live DVD / USB (USB będzie znacznie szybszy).

  2. Otwórz terminal i wpisz następujące polecenie:

    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. Uruchom ponownie i mam nadzieję, że to zadziała.

k0ryfi
źródło
Bardziej podobało mi się to rozwiązanie, ponieważ nie musiałem wymyślić, jak uzyskać monit initramfs lub wykonać więcej niż jeden restart. W moim przypadku zaktualizowałem system z Ubuntu 15.04 do 15.10 i nie byłem już w stanie odblokować dysku podczas uruchamiania. Jednym z dodatków jest to, że odkryłem, że nazwa odwzorowania podana w linii 2 (np. Sda5_crypt) musi pasować do pliku crypttab.
Der Wolf
1
Powyższe działa tylko, jeśli masz wpis w /etc/crypttab. Po wejściu do chroot wykonaj powyższe kroki, ale przed uruchomieniem update-initramfsuruchom nano /etc/crypttabi upewnij się, że jest tam linia z nazwą mapera i UUID dysku. Jeśli plik nie istnieje lub jest pusty, update-initramfsnie rozwiąże problemu! Dodaj linię crypttab w środowisku chroot. Ta odpowiedź powinna być edytowana, aby to odzwierciedlić. Ponadto myślę, że cryptsetupistnieje tylko w wierszu initramfs, jeśli /etc/crypttabistnieje i zawiera wpisy po aktualizacji initramfs.
Nick
0

Napraw gruba poprzez bootowanie z live-cd / live-usb. Szczegółowe informacje na temat tego procesu znajdują się na tej stronie . Zobacz sekcję „przez terminal LiveCD” na stronie.

Naprawienie grub powinno naprawić każdy źle sformatowany plik, który możesz mieć w konfiguracji grub.

Bhavin Doshi
źródło
Dzięki za wskazówkę. Próbowałem wszystkiego, co zasugerowałeś, ale bezskutecznie. Właśnie to zrozumiałem. To dość szalone ...
Freedom_Ben 27.04.13
0

Sprawdź, czy masz cryptsetupzainstalowany w systemie, czy mógł zostać usunięty przez uruchomienie apt-get autoremove. Więcej informacji .

Arsen
źródło