Przestałem czekać na urządzenie root, ubuntu - vg-root nie istnieje

17

dzisiaj zainstalowałem Ubuntu 64-bit na netbooku. Po uruchomieniu tego netbooka pojawia się raport o błędzie. Myślę, że jest problem z partycjami.

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/ubuntu--vg-root does not exist. Dropping to a shell! 

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

(initramfs)

Wyjście lsblk zgodnie z żądaniem:

$ lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 232.9G  0 disk 
├─sda1   8:1    0   231G  0 part 
├─sda2   8:2    0     1K  0 part 
└─sda5   8:5    0     2G  0 part [SWAP]
sr0     11:0    1   1.2G  0 rom  /cdrom
loop0    7:0    0   1.1G  1 loop /rofs
Jonas Franz
źródło
1
uruchom lsblki dodaj wynik do swojego pytania.
psusi
6
@psusi Co jeśli lsblknie jest dostępny?
sitilge,

Odpowiedzi:

10

Dodaj wyniki lsblk -fs, fdisk / dev / sda z flagą p i raport naprawy gruba do pytania jako linki pastebin.

Na podstawie poszukiwań, nie wydaje się być podobne pytania dotyczące ASK Ubuntu, które nie ma odpowiedzi na bieżąco tutaj i tutaj jedna odpowiedź jest podana który wyjaśnia o nalocie i Ubuntu.

Wydaje się, że istnieje kilka sugestii, z których niektóre wydają się działać dla niektórych osób.

  1. W wierszu polecenia initframs spróbuj wpisać ls /dev/mapperi sprawdź, czy wolumin główny jest na liście. Jeśli nie ma go na liście, spróbuj poczekać 10 sekund i ponownie uruchom ls.

    Jeśli jest teraz na liście, wpisz exiti powinien teraz znaleźć urządzenie root i uruchomić (pobrane stąd

  2. Edytuj konfigurację rozruchową, naciskając klawisz ealertu grub, aby wybrać system operacyjny, i zamień root=UUID-6500...na miejsce , root=/dev/sdxgdzie sdx jest partycją rozruchową. Problem polega na tym, że identyfikator UUID jest niepoprawny lub /dev/disk/by-UUID...nie istnieje (1)

  3. Dodanie parametru all_generic_idena końcu linii rozruchowej kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=43206294-74ef-434d-aca2-db74b4257590 ro quiet splash all_generic_idewydaje się działać dla niektórych osób (2)
  4. Pytanie Super User tutaj wydaje się sugerować, że błąd jest spowodowany przez LVM. Rozwiązanie jest również podane w tym samym, co instalacja lvm2.
  5. Ta sama witryna Super User sugeruje także uruchamianie przy użyciu starszego jądra, jeśli jest dostępne. Wydaje się, że działa u niektórych osób. Próba uruchomienia przy użyciu tej Recoveryopcji może działać dla niektórych osób
  6. Post autorstwa nux_man777 tutaj wydaje się sugerować, że błąd może znajdować się na nośniku instalacyjnym.
  7. Błąd /dev/mapper/ubuntu-vg-rootwydaje się być związany z rajdem, jak opisano tutaj .

    „Na ekranie podsumowania instalatora tuż przed rozpoczęciem procesu kopiowania kliknij przycisk Zaawansowane. Zmień partycję rozruchową (jest to partycja„ macierzysta ”w stylu MSDOS, a nie partycje Linuksa) na / dev / mapper / pdc_feddabdf (lub dowolne listy dmraid jako twoja partycja fakeraid) Upewnij się, że pole wyboru zostało kliknięte, aby uruchomić z tego dysku. zauważ, że instalator zmodyfikuje grub2, aby wskazał prawidłową partycję logiczną / dev / mapper / pdc_feddabdf1 lub cokolwiek / jest włączony. "

    Szczegółowe instrukcje dotyczące instalacji znajdują się na wskazanej stronie. Sprawdź tam, aby uzyskać więcej informacji na temat instalacji grub.

  8. Uruchamianie na nośniku instalacyjnym na żywo i aktualizowanie ubuntu poprzez zmianę chrootrootowania wydaje się działać dla niektórych osób (sugerowane tutaj przez cpttripzz ). Instrukcja dotycząca chroot jest tutaj . Możesz również odnieść się do tego pytania w Unix i Linux. Więcej informacji można znaleźć na Arch Wiki i Gentoo Wiki .
  9. Zmiana kontrolera SATA na natywny IDE z RAID i wykonanie nowej instalacji wydaje się działać dla niektórych osób tu i tutaj
  10. Kabel IDE lub dysk twardy mogą być uszkodzone (to samo forum Ubuntu, jak powyżej strona 40)
Jedna twarz
źródło
Poprzedni OS był Win7
Jonas Franz
fdisk hastebin.com/wayiqowine.rib
Jonas Franz
lsblk --fs hastebin.com/vadapinoro.hs
Jonas Franz
Naprawa rozruchu: paste.ubuntu.com/9660149
Jonas Franz
Komunikat o błędzie: postimg.org/image/tzuyske3d
Jonas Franz
8

W niektórych wersjach Ubuntu (np. Xubuntu 18.10) ten problem może być spowodowany przez apt autoremove. Z powodu tego błędu apt zasugeruje usunięcie

cryptsetup cryptsetup-bin cryptsetup-initramfs cryptsetup-run dmeventd libdevmapper-event1.02.1 liblvm2app2.2 liblvm2cmd2.02 libreadline5 lvm2

co sprawia, że ​​system nie nadaje się do rozruchu (ponieważ partycji root nie można zamontować i odszyfrować za pomocą LVM).

Jeśli nie używasz LVM i szyfrowania dysku, ta odpowiedź prawdopodobnie nie jest dla Ciebie.

Udało mi się to naprawić, ponownie instalując cryptsetup i lvm2 w środowisku chroot: uruchom z pamięci USB na żywo, uruchom poniższe polecenia w terminalu, uruchom ponownie.

# find root partition
sudo fdisk -l

# unencrypt partition
#   Note: replace /dev/nvme0n1p3 with your disk
#         replace "nvme0n1p3_crypt" with the correct name 
#         check by running this in chroot:
#         $ cat /etc/crypttab | cut -f1 -d " "
#         nvme0n1p3_crypt
sudo cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

# mount root partition
sudo vgscan 
sudo vgchange -ay
sudo mount /dev/mapper/xubuntu--vg-root /mnt

# prepare chroot environment
sudo mount /dev/nvme0n1p2 /mnt/boot/   # replace nvme0n1p2 with your boot partition!
sudo mount -o rbind /dev/ /mnt/dev/
sudo mount -t proc proc /mnt/proc/
sudo mount -t sysfs sys /mnt/sys/

# make dns available in chroot
sudo cp /etc/resolv.conf  /mnt/etc/resolv.conf 

# enter chroot
sudo chroot /mnt /bin/bash

# re-install missing packages
apt install cryptsetup lvm2

# re-generate  (this might be done also by apt in the step before, I'm not sure)
update-initramfs -u -k all

# Leave chroot environment - not sure if the following is really necessary...
exit
# Write buffers to disk
sudo sync
# Unmount file systems
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/boot

Te pytania i odpowiedzi pomogły mi zebrać polecenia.

lędźwiowy
źródło
1
Och, właśnie zaoszczędziłeś mi około trzech dni pracy, którą poświęciłem na konfigurację nowego urządzenia. Działa idealnie! Zastępuje się nvme0n1p3z sda5i nvme0n1p2z sda1(strefa Linux wewnątrz LVM i małej partycji rozruchu na zewnątrz, odpowiednio) LVM
Oliver U
1
@OliverU świetnie, że działało! Nawet jeśli nie możesz go już uruchomić, powinieneś być w stanie skopiować katalog domowy i być może części / etc lub coś takiego do nowej instalacji. To powinno być prawdopodobnie mniej pracy niż początkowa konfiguracja.
lędźwiowy
1
Działa idealnie dla Ubuntu 18.10, gdzie problem przydarzył mi się po apt autoremovewydaniu. Podobnie jak powyżej Oliver, po prostu musiałem zastąpić następujące w instrukcjach: nvme0n1p3sda5, nvme0n1p3sda5_crypt, nvme0n1p2sda1. Rozumiem słuszne przypuszczenie, że nie trzeba chrootdwa razy wchodzić, ponieważ cat /etc/crypttab | cut -f1 -d " "wewnątrz chrootpotwierdzisz, że poprawnie zgadłeś. Jeśli musisz wejść dwukrotnie, zrób to po ponownym uruchomieniu, ponieważ zamknięcie i ponowne otwarcie środowiska crytpsetup + LVM2 bez ponownego uruchomienia wydaje się… skomplikowane.
tanius
Należy również zauważyć, że te instrukcje działały doskonale z dyskiem twardym, który nie uruchamia się, włożony do obudowy napędu i podłączony do innego (prawidłowo działającego) komputera Ubuntu przez USB. Nie ma wtedy potrzeby posiadania systemu na żywo.
tanius
Dzięki człowieku, pomogło to po 4 godzinach próby naprawienia tego. Działa nawet na Ubuntu 19.10
WellBloud,
3

Miałem ten problem i nic na żadnych postach tutaj ani gdzie indziej nie było w stanie pomóc. W szczególności w moim przypadku mogłem zobaczyć, że /dev/mappernie zawiera ubuntu--vg-rootani niczego innego w tym zakresie. Oznacza to, że coś poszło nie tak, gdy LVM próbował zamontować / zmapować woluminy LUB coś poszło nie tak na początku procesu rozruchu, a ten błąd jest tylko symptomem catch-all dla każdego wcześniejszego problemu.

Drugi z nich dotyczył mnie i tylko z powodu mojej lektury initramfsbyłem w stanie zrozumieć i zdiagnozować problem. Powinno to być pierwsze, co zrobisz, jeśli podejrzewasz, że coś poszło nie tak, zanim LVM to zrobi.

W moim przypadku (który może nie być taki sam jak ty, ale warto go udokumentować) miałem włączone pełne szyfrowanie dysku (LUKS) i w jakiś sposób cryptsetupusunięto narzędzia initramfs, dlatego nie zostałem poproszony o odblokowanie hasła i dyski nie były dostępne, co oznaczało, że /dev/sdaXnie można było ich zamontować, a zatem ubuntu--vg-rootnie można było w nich montować / mapować /dev/mapper. Jeśli spróbujesz uruchomić cryptsetupz wiersza polecenia BusyBox, nie ll know you have the same issue if themożesz znaleźć cryptsetup`.

Rozwiązaniem było uruchomienie komputera z LiveCD, ręczne odblokowanie napędu za pomocą cryptsetup, chrootdo głównego systemu plików, ponowna instalacja cryptsetupi wywołanie update-initramfs.

Cwilko
źródło
Witamy w Ask Ubuntu! :-) Czy możesz rozwinąć ostatni wiersz do rzeczywistych poleceń?
Fabby
1
Napisałem skrypt dla tego przypadku (LUKS + LVM) na dysku NVMe, ale mogę go również rozszerzyć do /dev/sd*stylów dysków. unix.stackexchange.com/a/467113/103652
dragon788
2

Dla osób cierpiących na problemy związane z szyfrowaniem, jak w odpowiedzi @ Zanna, musisz wykonać procedurę podobną do tej:

  1. Uruchom system za pomocą dystrybucji na żywo / USB.

  2. Zamontuj zaszyfrowaną partycję (w Ubuntu powinieneś zobaczyć zaszyfrowany wolumin dostępny na pulpicie; wystarczy dwukrotnie kliknąć i wprowadzić hasło). Partycja zostanie zamontowana na /media/ubuntu/[mount point]. (Nazwa użytkownika zmieni się w zależności od dystrybucji; np xubuntu. Używa Xubuntu .)

  3. Otwórz okno terminala i bourbon.

  4. Ustaw odpowiednie wiązania dla punktów montowania w systemie:

    sudo su -
    mount -t auto /dev/sdX /media/ubuntu/[mount point]/boot
    mount --bind /dev /media/ubuntu/[mount point]/dev
    mount --bind /dev/pts /media/ubuntu/[mount point]/dev/pts
    mount --bind /sys /media/ubuntu/[mount point]/sys
    
  5. chroot do katalogu głównego zaszyfrowanego dysku: chroot /media/ubuntu/[mount point]

  6. Upewnij się, że Twój system posiada odpowiednie initramfspakiety zainstalowane: sudo apt install cryptsetup-initramfs lvm2.

  7. Krytycznie musisz również upewnić się, że pliki konfiguracyjne wymuszają initramfswłączenie plików binarnych cryptsetup, które zostały w pewnym momencie usunięte, wydaje się : nano /etc/cryptsetup-initramfs/conf-hookusuń komentarz z CRYPTSETUPlinii i upewnij się, że czyta CRYPTSETUP=Y.

  8. Na koniec uruchom update-initramfs -u -k all, zamknij, wyciągnij media na żywo i zacznij od nowa.

Twój przebieg tutaj może się różnić w zależności od tego, co się stało z twoim systemem. Jeśli na przykład zmieniłeś nazwę grupy LVM lub UUID, może być konieczne wyrównanie /etc/crypttabi /etc/fstabużycie odpowiednich identyfikatorów. Jeśli, podobnie jak ja, przeprowadzałeś migrację z jednej wersji do drugiej, możesz odkryć, że masz dwa zaszyfrowane woluminy o tej samej nazwie grupy - utrudnia to montaż dysku (musisz jawnie użyć UUID).

Podsumowując, aktualizacja do Xubuntu 18.10 była z tego powodu okropna. (System podstawowy nie uruchomiłby się ponownie po pobraniu aktualizacji do jądra!) Przynajmniej w obecnej konfiguracji mam system stabilny po ponownym uruchomieniu.

Uwaga: błędy ACPI, które doprowadziły mnie w Internecie do szukania rozwiązania, były czerwonym śledziem: nie mają wpływu na to, czy można uruchomić komputer z zaszyfrowanego dysku.

Ethan
źródło
Co jest sdXw tym przypadku? Podczas uruchamiania z LiveCD nie ma /bootpartycji, więc nie jest jasne, co powinno się tam znaleźć.
ralien
@ralien - sdXto dysk przechowujący zaszyfrowaną partycję, prawdopodobnie sdaw większości systemów. W moim przypadku zaszyfrowałem główny dysk ( sda) podczas nowej instalacji.
Ethan
0

Spróbuj wykonać następujące czynności:

(initramfs) reboot

Następnie po wyświetleniu monitu systemu operacyjnego spróbuj uruchomić system ze starszym jądrem.

Jeśli ci się powiedzie, prawdopodobnie rozwiąże to problem, jak sugerowano w punktach 4 i 5 @One Face, oraz odnośnik:

sudo apt-get install lvm2
e18r
źródło
Jeśli lvm2 nie jest zainstalowany, starsze jądro nie uruchomi się. Pakiet lvm2 i jądro nie są połączonymi rzeczami. Należy uruchomić system Rescue System i zainstalować pakiet za pośrednictwem chroot.
PRIHLOP