Dzisiaj widziałem ten sam błąd na laptopie z systemem Ubuntu 15.10, który zawsze aktualizowałem, ale nie restartowałem go przez miesiąc, dopóki nie chciałem przetestować bieżącego jądra (tj. Mogła nastąpić ostatnia zmiana).
W każdym razie okazało się, że w moim przypadku przyczyną była „brakująca” partycja wymiany z powodu usterki konfiguracji podczas wykonywania powyższego samouczka. W takim przypadku i / lub faktycznie używasz lvm
, możesz pominąć krok 2 poniżej. Oczywiście powyższy komunikat o błędzie może również zostać wyświetlony w przypadku, gdy partycja systemowa (lub dane dodatkowe) została uszkodzona lub nie można jej znaleźć (patrz krok 3).
Krok 1: Zamontuj system, uruchom partycje zgodnie z wyżej wymienionym samouczkiem
Powiedzmy, że twoją (ext2) partycją rozruchową jest / dev / sdX1, twoją (zaszyfrowaną) partycją wymiany jest / dev / sdX2, twoją (zaszyfrowaną) partycją danych jest / dev / sdX3 i pomyślnie ją odszyfrowałeś cryptsetup luksOpen /dev/sdX3 data
, a następnie montujesz to: mkdir /tmp/data; mount /dev/mapper/data /tmp/data
.
Zwróć uwagę na podłączenia mount w tutorialu i upewnij się, że zamontowałeś / dev / sdX1, abyś mógł uzyskać do niego dostęp z katalogu / boot partycji systemowej (jest to bardzo ważne, ponieważ musimy wykonać update-initramfs
).
Poniżej zakładamy, że pomyślnie wykonałeś chroot /tmp/data/@ubuntu1510
(lub jakkolwiek nazywa się zamontowana partycja systemowa)
Krok 2: Pozbądź się powyższego komunikatu o błędzie
Używam btrfs (jak można się domyślić na podstawie wspomnianej nazwy podobjętości), więc lvmetad można łatwo wyłączyć w następujący sposób bez utraty funkcjonalności:
- edytuj /etc/lvm/lvm.conf i zmień
use_lvmetad=1
nause_lvmetad=0
- wykonać
update-initramfs -k $(uname -r) -u ; sync
Teraz mógł restart i komunikat błędu powinien zniknąć. Jednak w moim przypadku następny komunikat o błędzie [1] wskazał mi na wspomniany wyżej problem podstawowy, więc skoro już go mamy, ...
Krok 3: Upewnij się, że / etc / crypttab wskazuje prawidłowe, nieuszkodzone partycje
Najpierw uruchom sfdisk --list /dev/sdX
i sprawdź, czy twoja zaszyfrowana partycja wymiany (w moim przypadku / dev / sdX2) faktycznie nie wyświetla się jako (normalna) partycja wymiany. Jeśli tak (jak w moim przypadku), oznaczało to, że podczas rozruchu, np. Z dysku ratunkowego, prawdopodobnie wykorzystana zostanie ta dostępna partycja wymiany, zastępując w ten sposób metadane związane z szyfrowaniem (hasło i UUID).
Następnie spójrz na / dev / disk / by-uuid i porównaj odpowiednie UUID twoich zaszyfrowanych partycji z tymi zawartymi w / etc / crypttab. Zgaduję w tym momencie: w twoim przypadku istnieje rozbieżność.
Jeśli dedykowanej zaszyfrowanej partycji wymiany nie ma nigdzie poniżej / dev / disk / by-uuid, dzieje się tak, ponieważ jest ona obecnie używana przez system ratunkowy. W takim przypadku wykonaj następujące czynności:
- upewnij się, że przestałeś używać partycji:
swapoff -a
- sformatuj go:
mkfs.ext2 /dev/sdX2
(jest to szczególnie ważne , szczególnie przy korzystaniu z partycji GPT [2], ponieważ usuwa usterkę, o której wspominałem wcześniej. Prawdopodobną przyczyną, dla której partycja pojawia się jako typ „swap” na liście sfdisk, jest to, że błędnie użyłeś / eś mkswap /dev/sdX2
podczas konfigurowania partycji na początku.)
- postępuj zgodnie z samouczkiem, aby zaszyfrować partycję i ustawić hasło; następnie otwórz go za pomocą cryptsetup i odpowiednio sformatuj teraz odszyfrowaną partycję (używając czegoś podobnego
mkswap /dev/mapper/swap
)
- upewnij się, że
sfdisk --list /dev/sdX
nie zidentyfikuje partycji wymiany jako takiej (w takim przypadku powtórz ostatnie kroki)
Teraz sprawdź ponownie, czy identyfikatory UUID wymienione w / etc / crypttab są zgodne z tym, co widzisz poniżej / dev / disk / by-uuid dla odpowiednich zaszyfrowanych partycji.
Ponownie, aby zmiany były trwałe, musisz wykonać update-initramfs
jak pokazano powyżej.
Jeśli jesteś zadowolony, upewnij się, że wszystko jest zapisane na dysku i uruchom ponownie system (nie musisz ręcznie odmontowywać wszystkiego). Potem twój problem powinien zniknąć.
[1] może nie zwracałem uwagi za pierwszym razem lub pierwszy komunikat o błędzie „zamaskował” drugi; tzn. dopiero po ponownym uruchomieniu (przy pomocy use_lvmetad=0
) został wyświetlony komunikat „ Odczytywanie wszystkich woluminów fizycznych. Może to chwilę potrwać ... ” (powtarzane wiele razy), a następnie „ ALERT! / dev / disk / by-uuid / .. . nie istnieje. " (Należy zauważyć, że update-initramfs
narzekał również na brakującą partycję).
[2], ponieważ ich typ jest odejmowany od analizy zawartości i nie jest ostatecznie określany przez flagę / bajt (dlatego nie ma łatwego sposobu np. Zmiany typu systemu plików GPT [g]parted
.)