Udostępnij za pośrednictwem


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

Dotyczy: ✔️ maszyny wirtualne z systemem Linux

Uwaga 16.

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 przeznaczona 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 problemów z rozruchem i zawiera wskazówki dotyczące rozwiązywania problemów.

Poniżej przedstawiono niektóre typowe przyczyny, 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.
  • Niepoprawny wpis w konfiguracji fstab.

Identyfikowanie problemów z fstab

Sprawdź bieżący stan rozruchu maszyny wirtualnej w dzienniku szeregowym w bloku Diagnostyka rozruchu 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 16.

/data jest przykładem używanego 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ą dwa 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 obrazu partnera 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, aby upewnić 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 następującego 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 16.

    Możesz również użyć ctrl+x polecenia , które spowoduje również 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 artykule Używanie usługi Azure Linux Auto Repair (ALAR) w celu naprawienia maszyny wirtualnej z systemem Linux. Usługa ALAR obejmuje automatyzację wielu scenariuszy naprawy, w tym /etc/fstab problemów.

Skrypty ALAR używają rozszerzenia repair-button naprawy, aby rozwiązać problemy z fstab, określając .--button-command fstab Ten parametr wyzwala automatyczne odzyskiwanie. Zaimplementuj następujące kroki, aby zautomatyzować błędy fstab za pośrednictwem podejścia ALAR w trybie offline:

az extension add -n vm-repair
az extension update -n vm-repair
az vm repair repair-button --button-command 'fstab' --verbose --resource-group $RGNAME --name $VMNAME

Uwaga 16.

Zastąp odpowiednio nazwę $RGTEST grupy zasobów i nazwę $VMNAME maszyny wirtualnej.

  • Skrypt naprawy maszyny wirtualnej w połączeniu ze skryptem ALAR tymczasowo utworzy grupę zasobów, naprawę maszyny wirtualnej i kopię dysku systemu operacyjnego maszyny wirtualnej, której dotyczy problem. Tworzy kopię zapasową oryginalnego /etc/fstab pliku i modyfikuje go, usuwając lub komentując wpisy systemu plików danych, które nie są wymagane do rozruchu systemu.
  • Po pomyślnym uruchomieniu systemu operacyjnego przejrzyj i zmodyfikuj /etc/fstab plik, aby naprawić wszelkie błędy, które mogły zapobiec prawidłowemu ponownemu rozruchowi.
  • repair-button Na koniec skrypt automatycznie usunie grupę zasobów zawierającą naprawę maszyny wirtualnej.

Korzystanie z metody ręcznej

Jeśli zarówno konsola szeregowa, jak i podejście ALAR nie są możliwe lub nie powiodły się, 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 pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.