Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ż swoje użycie i odpowiednio zaplanuj. Aby uzyskać więcej informacji, zobacz CentOS End Of Life guidance (Wskazówki dotyczące zakończenia życia systemu CentOS).
Podsumowanie
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 urządzenia, które nie jest podłączone, bez opcji
nofailw pliku konfiguracyjnym fstab. - Niepoprawny wpis w konfiguracji fstab.
Identyfikowanie problemów z fstab
Sprawdź bieżący stan rozruchu maszyny wirtualnej w dzienniku szeregowym w panelu Boot diagnostics w portalu Azure. 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 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:
- Napraw maszynę wirtualną w trybie online
- Naprawianie maszyny wirtualnej w trybie offline
Napraw maszynę wirtualną w trybie online
Korzystanie z konsoli szeregowej
- Połącz się z konsoli szeregowej maszyny wirtualnej z portalu Azure.
- Ręczny dostęp do trybu jednego użytkownika wymagany 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 jednego użytkownika, aby uzyskać dostęp do trybu jednego użytkownika dla każdego obsługiwanego obrazu partnerskiego systemu Linux.
Kroki rozwiązywania problemów z programem Fstab
Gdy maszyna wirtualna zostanie uruchomiona w trybie pojedynczego użytkownika. Użyj ulubionego edytora tekstów, aby otworzyć plik fstab.
vi /etc/fstabPrzejrzyj wymienione systemy plików w
/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, uruchomman fstabpolecenie . Aby rozwiązać problem z błędem rozruchu, sprawdź wpis dla systemu plików, który nie został zamontowany. 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, co do których nie masz pewności, zamiast je usuwać.
Zainstaluj dyski danych na maszynach wirtualnych Azure przy użyciu identyfikatora UUID partycji systemu plików. Aby określić identyfikator UUID systemu plików, uruchom
blkidpolecenie . Aby uzyskać więcej informacji na temat składni, uruchomman blkidpolecenie . Przykład wpisu UUID w pliku fstab:UUID=<UUID number here> /data xfs defaults,nofail 0 0Użyj opcji
nofailwe wpisach systemu plików (dyskach danych), aby umożliwić kontynuację uruchamiania nawet po wystąpieniu błędów w partycjach dla tych wpisów. Opcjanofailpomaga upewnić się, że maszyna wirtualna jest uruchamiana nawet wtedy, gdy system plików jest uszkodzony lub jeśli nie istnieje podczas uruchamiania.
Zapisz zmiany w pliku fstab.
Użyj
mount -ajako 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.Po zweryfikowaniu składni i wpisów uruchom ponownie maszynę wirtualną przy użyciu następującego polecenia:
reboot -fJeśli komentarz lub korekta 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ć
ctrl+xpolecenia , 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 Azure Linux Auto Repair (ALAR)
Skrypty Azure Linux Auto Repair (ALAR) są częścią rozszerzenia naprawy maszyny wirtualnej, opisanego w Użyj Azure Linux Auto Repair (ALAR) do naprawy maszyny wirtualnej z systemem Linux. Usługa ALAR obejmuje automatyzację wielu scenariuszy naprawy, w tym problemów /etc/fstab.
Skrypty ALAR używają rozszerzenia naprawczego repair-button, 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
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/fstabpliku 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/fstabplik, aby naprawić wszelkie błędy, które mogły zapobiec prawidłowemu ponownemu rozruchowi. - Na koniec skrypt automatycznie usunie grupę zasobów zawierającą maszynę wirtualną do naprawy.
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 ponownie zamontować dysk systemu operacyjnego do oryginalnej maszyny wirtualnej.
- Dołącz dysk systemu operacyjnego do maszyny wirtualnej w celu odzyskiwania, korzystając z portalu Azure
- Łącz dysk systemu operacyjnego do maszyny wirtualnej odzyskiwania przy użyciu Azure CLI
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.