Rozruch maszyny wirtualnej z systemem Linux platformy Azure kończy się niepowodzeniem i przechodzi do powłoki awaryjnej dracut
Dotyczy: ✔️ maszyny wirtualne z systemem Linux
Uwaga
CentOS, do których odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ odpowiednie użycie i zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).
Ten artykuł zawiera rozwiązania problemu, w którym nie można uruchomić maszyny wirtualnej z systemem Linux platformy Azure, ponieważ system plików systemu operacyjnego (OS) nie jest dostępny z dysku RAMdisk. Maszyna wirtualna ląduje w powłoce awaryjnej dracut.
Wymagania wstępne
Upewnij się, że konsola szeregowa jest włączona i funkcjonalna na maszynie wirtualnej z systemem Linux.
Jak zidentyfikować problem z rozruchem dracut
Aby zidentyfikować problem z rozruchem dracut, użyj witryny Azure Portal, aby wyświetlić dane wyjściowe dziennika konsoli szeregowej maszyny wirtualnej w okienku diagnostyki rozruchu, okienku konsoli szeregowej lub użyć interfejsu wiersza polecenia AZ.
Wszystkie maszyny wirtualne z problemem z rozruchem wylądowają w powłoce awaryjnej dracut lub initramfs i będą wyświetlane na końcu dziennika konsoli szeregowej:
RHEL/CentOS/SLES/Oracle Linux:
[ 201.935612] dracut-initqueue[455]: Warning: dracut-initqueue timeout - starting timeout scripts [ 201.941153] dracut-initqueue[455]: Warning: Could not boot. Starting Setup Virtual Console... [[0;32m OK [0m] Started Setup Virtual Console. Starting Dracut Emergency Shell... Warning: /dev/mapper/rootvg-rootlv does not exist Generating "/run/initramfs/rdsosreport.txt" Entering emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might want to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report. dracut:/#
Ubuntu:
mdadm: No arrays found in config file or automatically done. Gave up waiting for root file system device. Common problems: - Boot args (cat /proc/cmdline) - Check rootdelay= (did the system wait long enough?) - Missing modules (cat /proc/modules; ls /dev) ALERT! /dev/mapper/osencrypt does not exist. Dropping to a shell! BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.4) built-in shell (ash) Enter 'help' for a list of built-in commands. (initramfs)
Rozwiązywanie problemów w trybie online
Napiwek
Jeśli masz najnowszą kopię zapasową maszyny wirtualnej, przywróć maszynę wirtualną z kopii zapasowej, aby rozwiązać problem z rozruchem.
Konsola szeregowa to najszybsza metoda rozwiązywania problemów. Umożliwia bezpośrednie rozwiązanie problemu bez konieczności prezentowania dysku systemowego na maszynie wirtualnej odzyskiwania. Upewnij się, że spełniasz niezbędne wymagania wstępne dotyczące dystrybucji. Aby uzyskać więcej informacji, zobacz Konsola szeregowa maszyny wirtualnej dla systemu Linux.
Określ, czy maszyna wirtualna ląduje w powłoce awaryjnej dracut.
Spróbuj rozwiązać ten problem przy użyciu konsoli szeregowej platformy Azure.
Uwaga
Nie każdy problem można rozwiązać przy użyciu konsoli szeregowej platformy Azure.
- Wyzwól ponownie uruchomić maszynę wirtualną (hard) z konsoli szeregowej.
- Przerwij maszynę wirtualną w menu GRUB za pomocą ESC .
- Wybierz pozycję E , aby zmodyfikować pierwszy wpis jądra w menu GRUB.
- Przejdź do wiersza, a następnie zweryfikuj
linux16
i popraw błędną konfigurację GRUB w następujący sposób:- Nieprawidłowa ścieżka urządzenia głównego w pliku konfiguracji GRUB, nieprawidłowa nazwa UUID lub woluminu głównego.
- Nieprawidłowa ścieżka urządzenia wymiany w pliku konfiguracji GRUB.
- Zduplikowane parametry w pliku konfiguracji GRUB.
- Wszelkie oczywiste literówki.
Po ręcznym zmodyfikowaniu ustawień GRUB wybierz Ctrl+X , aby uruchomić maszynę wirtualną.
Wszelkie modyfikacje wprowadzone na tym etapie są nietrwale modyfikacją. Jeśli maszyna wirtualna jest w stanie uruchomić, rozwiąż ten problem w pliku konfiguracji GRUB lub wystąpi ponownie.
Gdy maszyna wirtualna wróci do trybu online, rozwiąż problemy z konfiguracją w
/etc/default/grub
pliku konfiguracji i zaktualizuj konfigurację GRUB. Aby to zrobić, zobacz Ponowne instalowanie pliku konfiguracji GRUB i ponowne generowanie go.Uruchom ponownie maszynę wirtualną, aby upewnić się, że można ją uruchomić bez żadnej interwencji ręcznej.
Rozwiązywanie problemów w trybie offline
Napiwek
Jeśli masz najnowszą kopię zapasową maszyny wirtualnej, przywróć maszynę wirtualną z kopii zapasowej, aby rozwiązać problem z rozruchem.
Jeśli konsola szeregowa platformy Azure nie działa na określonej maszynie wirtualnej lub nie jest opcją w ramach subskrypcji, rozwiąż ten problem przy użyciu maszyny wirtualnej ratowniczej/naprawy. Użyj poleceń naprawy maszyny wirtualnej, aby utworzyć maszynę wirtualną naprawy, która ma kopię dołączonego dysku systemu operacyjnego maszyny wirtualnej, której dotyczy problem. Zainstaluj kopię systemów plików systemu operacyjnego na maszynie wirtualnej naprawy przy użyciu katalogu chroot.
Uwaga
Alternatywnie możesz ręcznie utworzyć ratunkową maszynę wirtualną przy użyciu witryny Azure Portal. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z maszyną wirtualną z systemem Linux przez dołączenie dysku systemu operacyjnego do maszyny wirtualnej odzyskiwania przy użyciu witryny Azure Portal.
Przejdź do następujących sekcji, aby rozwiązać określone problemy:
- Nie można uruchomić zaszyfrowanej maszyny wirtualnej programu ADE, ponieważ program VFAT jest wyłączony.
- Brak sterowników funkcji Hyper-V.
- Błędna konfiguracja programu GRUB.
- Nieprawidłowa ścieżka urządzenia głównego w pliku konfiguracji GRUB.
- Nieprawidłowa ścieżka urządzenia wymiany w pliku konfiguracji GRUB.
- Zduplikowane parametry w pliku konfiguracji GRUB.
- Uszkodzenie głównego systemu plików.
- Problemy z aktywacją LVM.
- Brak partycji głównej.
- Uszkodzenie initrd lub initramfs.
Po rozwiązaniu problemu z rozruchem związany z dracut/initramfs wykonaj następujące czynności:
- Zamknij plik chroot.
- Odinstalowywanie kopii systemów plików z maszyny wirtualnej ratownictwa/naprawy.
- Uruchom polecenie ,
az vm repair restore
aby zamienić naprawiony dysk systemu operacyjnego na oryginalny dysk systemu operacyjnego maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Krok 5 w temacie Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure. - Sprawdź, czy maszyna wirtualna może uruchomić się, przeglądając konsolę szeregową platformy Azure lub próbując nawiązać połączenie z maszyną wirtualną.
Nie można uruchomić zaszyfrowanej maszyny wirtualnej programu ADE, ponieważ program VFAT jest wyłączony
Aby uzyskać więcej informacji, zobacz Nie można uruchomić zaszyfrowanych maszyn wirtualnych programu ADE.
Brak sterowników funkcji Hyper-V
Jeśli sterowniki funkcji Hyper-V zawarte w jądrze systemu Linux wszystkich nowoczesnych dystrybucji systemu Linux są wyłączone, włącz je ponownie i ponownie wygeneruj obraz initramfs/initrd. Aby uzyskać więcej informacji, zobacz Scenariusz 3: Inne sterowniki funkcji Hyper-V są wyłączone.
Jeśli maszyna wirtualna jest systemem Red Hat i jest migrowana ze środowiska lokalnego, włącz wymagane sterowniki funkcji Hyper-V na obrazie initramfs. Aby uzyskać więcej informacji, zobacz Sterownik funkcji Hyper-V nie może być dołączony do początkowego dysku PAMIĘCI RAM w przypadku korzystania z funkcji hypervisor innej niż hypervisor funkcji Hyper-V.
Błędna konfiguracja GRUB
Parametr rd.break
wymusza uruchomienie maszyny wirtualnej w powłoce awaryjnej dracut. Upewnij się, że ten parametr nie jest zakodowany w pliku konfiguracji GRUB.
Nieprawidłowa ścieżka urządzenia głównego w pliku konfiguracji GRUB
Sprawdź, czy ścieżka root=/dev/***
główna w pliku konfiguracji GRUB jest poprawna. Upewnij się, że jest używana właściwa ścieżka urządzenia.
Jeśli jesteś w folderze chroot na maszynie wirtualnej naprawy/ratownictwa:
- Wykonaj krok 1 w temacie Rozwiązywanie problemów z trybem offline.
- Zweryfikuj
/etc/default/grub
GRUB_CMDLINE_LINUX
plik, wpis i poszukaj parametruroot=
w przypadku, gdy jest on zakodowany w pliku konfiguracji. - Zainstaluj ponownie program GRUB i ponownie wygeneruj plik konfiguracji GRUB.
Jeśli jesteś w konsoli szeregowej platformy Azure:
- Wykonaj krok 3 w temacie Rozwiązywanie problemów w trybie online.
- Zweryfikuj
linux16
wiersz, a następnie wyszukajroot=
parametr i napraw go. - Naciśnij Ctrl+X, aby uruchomić maszynę wirtualną.
- Po pomyślnym uruchomieniu maszyny wirtualnej zmodyfikuj
/etc/default/grub
plik, poprawroot
parametr i zaktualizuj plik konfiguracji GRUB, zgodnie z instrukcją w temacie Zainstaluj ponownie program GRUB i ponownie wygeneruj plik konfiguracji GRUB.
Podczas tej weryfikacji upewnij się, że są następujące elementy:
- Na maszynach wirtualnych z systemem Ubuntu z szyfrowaniem systemu operacyjnego upewnij się, że nazwa urządzenia to
/dev/mapper/osencrypt
. - Na maszynach wirtualnych z menedżerem woluminów logicznych (LVM) na dysku systemu operacyjnego wolumin główny to
/dev/mapper/rootvg-rootlv
. Ta sama ścieżka jest używana na maszynach wirtualnych RHEL z zaszyfrowanym dyskiem systemu ADE OS. - Upewnij się, że nazwy urządzeń w postaci nie są używane, ponieważ zmienią się w przypadku ponownych
/dev/sdX
uruchomień i nie są trwałe w systemie Linux. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów ze zmianami nazwy urządzenia maszyny wirtualnej z systemem Linux. - Jeśli są używane identyfikatory UUID interfejsu użytkownika, upewnij się, że jest używany prawidłowy identyfikator UUID głównego systemu plików, a składnia to
root=UUID=xxx-yyy-zzz
.
Nieprawidłowa ścieżka urządzenia wymiany w pliku konfiguracji GRUB
W tym scenariuszu maszyna wirtualna nie może ukończyć procesu rozruchu i przechodzi do powłoki awaryjnej dracut z błędem podobnym do następującego:
[ 188.000765] dracut-initqueue[324]: Warning: /dev/VG/SwapVol does not exist
Starting Dracut Emergency Shell...
Warning: /dev/VG/SwapVol does not exist
Plik konfiguracji GRUB w tym przykładzie jest ustawiony tak, aby załadować wolumin logiczny (LV) jako zamianę z parametrem rd.lvm.lv=VG/SwapVol
. Jednak maszyna wirtualna nie może zlokalizować tego lv podczas procesu rozruchu.
Należy pamiętać, że używanie urządzenia wymiany w ten sposób na maszynach wirtualnych z systemem Linux platformy Azure nie jest zalecane. Aby uzyskać więcej informacji, zobacz Tworzenie pliku SWAP dla maszyny wirtualnej z systemem Linux platformy Azure.
Aby rozwiązać ten problem, znajdź ścieżkę rd.lvm.lv=VG/SwapVol
wymiany w pliku konfiguracji GRUB (/etc/default/grub
) i usuń go. W tym celu użyj jednej z następujących metod:
Jeśli jesteś w folderze chroot na maszynie wirtualnej naprawy/ratownictwa:
- Wykonaj krok 1 w temacie Rozwiązywanie problemów z trybem offline.
/etc/default/grub
Edytuj plik, przejdź doGRUB_CMDLINE_LINUX
wpisu, znajdźrd.lvm.lv=VG/SwapVol
parametr, a następnie usuń go z konfiguracji.- Zainstaluj ponownie program GRUB i ponownie wygeneruj plik konfiguracji GRUB.
Jeśli jesteś w konsoli szeregowej platformy Azure:
- Wykonaj krok 3 w temacie Rozwiązywanie problemów w trybie online.
- Przejdź do wiersza rozpoczynającego się od
linux
, znajdźrd.lvm.lv=VG/SwapVol
parametr i usuń go. - Naciśnij Ctrl+X, aby uruchomić maszynę wirtualną.
- Po pomyślnym uruchomieniu maszyny wirtualnej zmodyfikuj
/etc/default/grub
plik, usuńrd.lvm.lv=VG/SwapVol
parametr, a następnie zaktualizuj plik konfiguracji GRUB, zgodnie z instrukcjami w sekcji Zainstaluj ponownie program GRUB i ponownie wygeneruj plik konfiguracji GRUB.
Zduplikowane parametry w pliku konfiguracji GRUB
Sprawdź, czy w pliku konfiguracji GRUB istnieją zduplikowane parametry:
Jeśli jesteś w folderze chroot na maszynie wirtualnej naprawy/ratownictwa:
- Wykonaj krok 1 w temacie Rozwiązywanie problemów z trybem offline.
- Zweryfikuj
/etc/default/grub
GRUB_CMDLINE_LINUX
plik i wpis. - Wyszukaj zduplikowane parametry i usuń je.
- Zaktualizuj plik konfiguracji GRUB. Aby uzyskać więcej informacji, zobacz Ponowne instalowanie pliku konfiguracji GRUB i ponowne generowanie pliku konfiguracji GRUB.
Jeśli jesteś w konsoli szeregowej platformy Azure:
- Wykonaj krok 3 w temacie Rozwiązywanie problemów w trybie online.
- Zweryfikuj
linux16
wiersz, poszukaj zduplikowanych parametrów i usuń je. - Naciśnij Ctrl+X, aby uruchomić maszynę wirtualną.
- Po pomyślnym uruchomieniu maszyny wirtualnej zmodyfikuj
/etc/default/grub
odpowiednio plik, rozwiąż wcześniej zidentyfikowane problemy z konfiguracją i zaktualizuj plik konfiguracji GRUB, zgodnie z instrukcją w temacie Zainstaluj ponownie plik GRUB i ponownie wygeneruj plik konfiguracji GRUB.
Uszkodzenie głównego systemu plików
Gdy główny system plików jest uszkodzony, nie można go zainstalować z obrazu initrd/initramfs.
Aby rozwiązać problem z uszkodzeniem głównego systemu plików, postępuj zgodnie z instrukcjami w temacie Rozwiązywanie problemów z rozruchem maszyny wirtualnej z systemem Linux z powodu błędów systemu plików — Wykonaj naprawę systemu plików.
Problemy z aktywacją LVM
Niektóre problemy mogą wystąpić podczas uzyskiwania dostępu do woluminu fizycznego LVM (PV), grupy woluminów (VG) i/lub woluminu logicznego (LV). Nie można ich rozwiązać z poziomu konsoli szeregowej platformy Azure. Aby je rozwiązać, użyj maszyny wirtualnej naprawy/ratownictwa.
Wykonaj krok 1 w temacie Rozwiązywanie problemów z trybem offline.
Aby zidentyfikować problemy, uruchom następujące polecenia i zapoznaj się z danymi wyjściowymi poleceń.
Zidentyfikuj, które urządzenie odpowiada dyskowi systemu operacyjnego, i sprawdź, czy wykryto je jako pv:
lsblk pvs
Sprawdź, czy sieć wirtualna
rootvg
została wykryta:vgs
Sprawdź, czy wykryto lv:
lvs
Rozwiąż następujące typowe błędy LVM, które powodują problemy z uzyskiwaniem dostępu do woluminu głównego:
Nieznany pv, gdy grupa wirtualna rootvg ma tylko jeden pv (jest to standardowa konfiguracja platformy Azure)
Partycja przechowując pv jest niepoprawnie usuwana, zmieniana lub utworzona. Aby rozwiązać ten problem, zobacz Brak partycji głównej.
Nieznany serwer pv, gdy grupa wirtualna rootvg jest modyfikowana i podzielona na więcej niż jeden dysk
Posiadanie 2 woluminów infrastruktury wirtualnej rootvg nie jest zalecaną konfiguracją. W tym scenariuszu dysk danych może zostać odłączony od maszyny wirtualnej, a woluminy logiczne rootvg nie są już dostępne. Aby rozwiązać ten problem, ponownie dołącz oryginalny dysk do maszyny wirtualnej i uruchom go ponownie.
Jeśli pv jest nieodwracalne, wykonaj przywracanie z kopii zapasowej.
Brak partycji głównej
Główny system plików może być niedostępny z powodu niektórych problemów występujących na poziomie partycji podczas operacji zmiany rozmiaru partycji lub innych.
W tym scenariuszu, jeśli udokumentowano oryginalny układ tabeli partycji, z dokładnymi sektorami początkowymi i końcowymi dla każdej z oryginalnych partycji (i nie są wykonywane żadne dalsze modyfikacje w systemie, takie jak tworzenie nowych systemów plików), utwórz ponownie partycje przy użyciu tego samego oryginalnego układu. Można to zrobić za pomocą narzędzi, takich jak fdisk
(w przypadku tabel partycji MBR) lub gdisk
(w przypadku tabel partycji GPT), aby uzyskać dostęp do niedostępnego systemu plików. Postępuj zgodnie z tą operacją odzyskiwania z maszyny wirtualnej naprawy/ratownictwa. Aby uzyskać więcej informacji, zobacz sekcję Rozwiązywanie problemów w trybie offline.
Jeśli takie podejście nie działa, zalecamy wykonanie przywracania z kopii zapasowej.
Uszkodzenie initrd lub initramfs
Obraz initrd/initramfs ma pewien poziom uszkodzenia, co powoduje zainstalowanie woluminu głównego i uruchomienie procesu uruchamiania systemu operacyjnego kończy się niepowodzeniem.
Aby rozwiązać ten problem, wykonaj następujące kroki z poziomu katalogu chroot na maszynie wirtualnej naprawy/ratowania:
- Wykonaj krok 1 w temacie Rozwiązywanie problemów z trybem offline.
- Ponowne generowanie brakujących initramfs ręcznie.
- Uruchom ponownie maszynę wirtualną, aby potwierdzić, czy można ją uruchomić.
Następne kroki
Jeśli określony błąd rozruchu nie jest problemem dracut lub initramfs, zobacz Rozwiązywanie problemów z błędami rozruchu maszyn wirtualnych z systemem Linux na platformie Azure, aby uzyskać dalsze opcje rozwiązywania problemów.
Skontaktuj się z nami, aby uzyskać pomoc
Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pomoc techniczną społeczności platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.