Udostępnij za pośrednictwem


Rozwiązywanie problemów z rozruchem maszyny wirtualnej z systemem Linux z powodu błędów fstab

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).

Tabela systemu plików systemu linux fstab to tabela konfiguracji, która została zaprojektowana do konfigurowania reguł, w których określone systemy plików są wykrywane i instalowane w sposób uporządkowany podczas procesu rozruchu systemu. W tym artykule omówiono wiele warunków, w których nieprawidłowa konfiguracja fstab może prowadzić do problemu z rozruchem i zawiera wskazówki dotyczące rozwiązywania problemów.

Poniżej wymieniono kilka typowych powodów, które mogą prowadzić do problemów z rozruchem maszyny wirtualnej z powodu błędnej konfiguracji fstab:

  • Tradycyjna nazwa systemu plików jest używana zamiast uniwersalnego unikatowego identyfikatora (UUID) systemu plików.
  • Jest używany nieprawidłowy identyfikator UUID.
  • Wpis istnieje dla nieprzyłączonego urządzenia bez nofail opcji w ramach konfiguracji fstab.
  • Nieprawidłowy wpis w konfiguracji fstab.

Identyfikowanie problemów z fstab

Sprawdź bieżący stan rozruchu maszyny wirtualnej w dzienniku szeregowym w bloku [Diagnostyka rozruchu] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) w witrynie Azure Portal. Maszyna wirtualna będzie w trybie awaryjnym. Zobaczysz wpisy dziennika podobne do poniższego przykładu prowadzące do stanu trybu awaryjnego:

[K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
[[1;33mDEPEND[0m] Dependency failed for /data.
[[1;33mDEPEND[0m] Dependency failed for Local File Systems.
…
Welcome to emergency mode! After logging in, type "journalctl -xb" to viewsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again to boot into default mode.
Give root password for maintenance
(or type Control-D to continue)

Uwaga

"/data" to przykład użycia punktu instalacji. Błąd zależności dla punktu instalacji systemu plików będzie się różnić w zależności od używanych nazw.

Rozwiązanie

Istnieją 2 sposoby rozwiązania problemu:

Naprawianie maszyny wirtualnej w trybie online

Korzystanie z konsoli szeregowej

  1. Połącz się z konsolą szeregową maszyny wirtualnej z witryny Azure Portal.
  2. Ręczne uzyskiwanie dostępu do trybu pojedynczego użytkownika jest wymagane do ponownej konfiguracji fstab. Kroki mogą się różnić w zależności od typu używanego systemu operacyjnego Linux i dostępu do konta głównego. Postępuj zgodnie z dokumentacją trybu pojedynczego użytkownika, aby uzyskać dostęp do trybu pojedynczego użytkownika dla każdego obsługiwanego obrazów partnerów systemu Linux.
Kroki rozwiązywania problemów z programem Fstab
  1. Po uruchomieniu maszyny wirtualnej w trybie pojedynczego użytkownika. Użyj ulubionego edytora tekstów, aby otworzyć plik fstab.

    vi /etc/fstab
    
  2. Przejrzyj wymienione systemy plików w pliku ./etc/fstab Każdy wiersz w pliku fstab wskazuje system plików zainstalowany podczas uruchamiania maszyny wirtualnej. Aby uzyskać więcej informacji na temat składni pliku fstab, uruchom man fstab polecenie . Aby rozwiązać problem z błędem rozruchu, zapoznaj się z wpisem systemu plików, który nie może zainstalować. Dobrym rozwiązaniem jest przejrzenie każdego wiersza w celu upewnienia się, że jest ona poprawna zarówno w strukturze, jak i w zawartości. Kilka punktów, które należy wziąć pod uwagę w celu poprawnego administrowania plikiem fstab, są następujące:

    • Pola w każdym wierszu są oddzielone tabulatorami lub spacjami. Puste wiersze są ignorowane. Wiersze, które mają znak numeru (#) jako pierwszy znak, to komentarze. Skomentowane wiersze mogą pozostać w pliku fstab, ale nie zostaną przetworzone. Zalecamy komentowanie wierszy fstab, o których nie masz pewności, zamiast usuwać wiersze.

    • Zainstaluj dyski danych na maszynach wirtualnych platformy Azure przy użyciu identyfikatora UUID partycji systemu plików. Aby określić identyfikator UUID systemu plików, uruchom blkid polecenie . Aby uzyskać więcej informacji na temat składni, uruchom man blkid polecenie . Przykład wpisu UUID w pliku fstab:

      UUID=<UUID number here>  /data      xfs    defaults,nofail 0  0
      
    • nofail Użyj opcji w wpisach systemu plików (dyskach danych), aby umożliwić uruchamianie, aby kontynuować nawet po wystąpieniu błędów w partycjach dla odpowiednich wpisów. Opcja nofail pomaga upewnić się, że maszyna wirtualna jest uruchamiana nawet wtedy, gdy system plików jest uszkodzony lub jeśli nie istnieje podczas uruchamiania.

  3. Zapisz zmiany w pliku fstab.

  4. Użyj mount -a jako najlepszego rozwiązania po wprowadzeniu zmian w wpisach fstab. Spowoduje to ponowne uruchomienie konfiguracji fstab i powiadomienie użytkowników o wszelkich istniejących błędach składni lub wpisu.

  5. Po zweryfikowaniu składni i wpisów uruchom ponownie maszynę wirtualną przy użyciu poniższego polecenia.

    reboot -f
    
  6. Jeśli komentarz lub poprawka wpisów zakończyła się pomyślnie, system powinien uzyskać monit powłoki bash w portalu. Sprawdź, czy możesz nawiązać połączenie z maszyną wirtualną.

Uwaga

Możesz również użyć polecenia "ctrl+x", które również spowoduje ponowne uruchomienie maszyny wirtualnej.

Naprawianie maszyny wirtualnej w trybie offline

Jeśli dostęp do konsoli szeregowej maszyny wirtualnej jest niedostępny, alternatywnym rozwiązaniem jest naprawa maszyny wirtualnej w trybie offline. Istnieją dwa sposoby podejścia do trybu offline:

Korzystanie z automatycznej naprawy systemu Linux platformy Azure (ALAR)

Skrypty automatycznej naprawy systemu Linux (ALAR) platformy Azure są częścią rozszerzenia naprawy maszyny wirtualnej opisanego w temacie Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure. Usługa ALAR obejmuje automatyzację wielu scenariuszy naprawy, w tym /etc/fstab problemów.

Skrypty ALAR używają polecenia naprawy rozszerzenia run i jego --run-id opcji. Identyfikator skryptu zautomatyzowanego odzyskiwania to: linux-alar2. Zaimplementuj następujące kroki, aby zautomatyzować błędy fstab za pośrednictwem podejścia ALAR w trybie offline:

az vm repair create --verbose -g centos7 -n cent7 --repair-username rescue --repair-password 'password!234' --copy-disk-name  repairdiskcopy
az vm repair run --verbose -g centos7 -n cent7 --run-id linux-alar2 --parameters fstab --run-on-repair
az vm repair restore --verbose -g centos7 -n cent7

Uwaga

Nazwa grupy zasobów "centos7, nazwa maszyny wirtualnej "cent7" i --copy-disk-name "repairdiskcopy" to przykłady, a wartości muszą odpowiednio ulec zmianie.

Skrypt naprawy fstab wykona kopię zapasową oryginalnego pliku i usuń wszystkie wiersze w pliku /etc/fstab, które nie są potrzebne do rozruchu systemu. Po pomyślnym uruchomieniu systemu operacyjnego ponownie zmodyfikuj plik fstab i popraw wszelkie błędy, które nie zezwalały na ponowne uruchomienie systemu.

Alternatywnie po utworzeniu maszyny wirtualnej naprawy zmiany można również zaimplementować ręcznie, logując się do maszyny wirtualnej naprawy, instalować dołączoną kopię dysku systemu operacyjnego i wprowadzać zmiany w pliku fstab. Wykonaj kroki opisane tutaj:

  • Utwórz maszynę wirtualną naprawy przy użyciu az vm repair create polecenia .
  • Aby zainstalować i chroot w systemach plików dołączonego dysku systemu operacyjnego na maszynie wirtualnej ratowniczej, postępuj zgodnie ze szczegółowymi instrukcjami chroot.
  • Następnie wykonaj te same kroki rozwiązywania problemów z usługą fstab, co powyżej.
  • Po zastosowaniu az vm repair restore zmian można użyć polecenia w celu przeprowadzenia automatycznej wymiany dysku systemu operacyjnego z oryginalną maszyną wirtualną.

Korzystanie z metody ręcznej

Jeśli zarówno konsola szeregowa, jak i metoda ALAR nie jest możliwa lub kończy się niepowodzeniem, naprawa musi zostać wykonana ręcznie. Wykonaj kroki opisane tutaj, aby ręcznie dołączyć dysk systemu operacyjnego do maszyny wirtualnej odzyskiwania i zamienić dysk systemu operacyjnego z powrotem na oryginalną maszynę wirtualną:

Po pomyślnym dołączeniu dysku systemu operacyjnego do maszyny wirtualnej odzyskiwania postępuj zgodnie ze szczegółowymi instrukcjami chroot, aby zainstalować i chroot w systemach plików dołączonego dysku systemu operacyjnego. Następnie zaimplementuj kroki rozwiązywania problemów z fstab, aby wprowadzić odpowiednie zmiany w pliku fstab problematycznego dysku systemu operacyjnego.

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.