Rozwiązywanie problemów z rozruchem maszyny wirtualnej z systemem Linux z powodu błędów fstab
Uwaga
CentOS, do którego odwołuje się ten artykuł, jest dystrybucją systemu Linux i osiągnie koniec życia (EOL). Rozważ użycie i odpowiednio zaplanuj. Aby uzyskać więcej informacji, zobacz Wskazówki dotyczące końca życia systemu CentOS.
Tabela systemu plików systemu Linux, fstab to tabela konfiguracji, która jest 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 problemu z rozruchem i zawiera wskazówki dotyczące rozwiązywania problemów.
Poniżej wymieniono kilka typowych przyczyn, 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 uniwersalnie unikatowego identyfikatora (UUID) systemu plików.
- Używany jest nieprawidłowy identyfikator UUID.
- Istnieje wpis dla niedołączanego urządzenia bez
nofail
opcji w konfiguracji fstab. - Nieprawidłowy wpis w konfiguracji fstab.
Identyfikowanie problemów z kartą fstab
Sprawdź bieżący stan rozruchu maszyny wirtualnej w dzienniku szeregowym w bloku [Diagnostyka rozruchu] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) w Azure Portal. Maszyna wirtualna będzie w trybie awaryjnym. Zostaną wyświetlone 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ą 2 sposoby rozwiązania problemu:
- Naprawianie maszyny wirtualnej w trybie online
- Naprawianie maszyny wirtualnej w trybie offline
Naprawianie maszyny wirtualnej w trybie online
Korzystanie z konsoli szeregowej
- Połącz się z konsolą szeregową maszyny wirtualnej z Azure Portal.
- Ręczny dostęp do trybu pojedynczego użytkownika jest 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 pojedynczego użytkownika , aby uzyskać dostęp do trybu pojedynczego użytkownika dla każdego obsługiwanego obrazu partnera systemu Linux.
Fstab — kroki rozwiązywania problemów
Po uruchomieniu maszyny wirtualnej w trybie pojedynczego użytkownika. Użyj ulubionego edytora tekstów, aby otworzyć plik fstab.
vi /etc/fstab
Przejrzyj wymienione systemy plików w programie
/etc/fstab
. Każdy wiersz w pliku fstab wskazuje system plików, który jest instalowany podczas uruchamiania maszyny wirtualnej. Aby uzyskać więcej informacji na temat składni pliku fstab, uruchomman fstab
polecenie . Aby rozwiązać problem z niepowodzeniem rozruchu, przejrzyj wpis systemu plików, który nie został zainstalowany. Dobrym rozwiązaniem jest przejrzenie każdego wiersza w celu upewnienia się, że jest on poprawny zarówno w strukturze, jak i w zawartości. Kilka kwestii, które należy wziąć pod uwagę, aby poprawnie administrować plikiem fstab, jest następujących:Pola w każdym wierszu są oddzielone kartami lub spacjami. Puste wiersze są ignorowane. Wiersze, które mają znak liczbowy (#) jako pierwszy znak, to komentarze. Skomentowane wiersze mogą pozostać w pliku fstab, ale nie zostaną przetworzone. Zalecamy komentowanie wierszy fstab, 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, uruchomman blkid
polecenie . Przykład wpisu UUID w pliku fstab:UUID=<UUID number here> /data xfs defaults,nofail 0 0
nofail
Użyj opcji we wpisach systemu plików (dyskach danych), aby umożliwić uruchamianie, nawet po wystąpieniu błędów w partycjach dla odpowiednich wpisów. Tanofail
opcja pomaga upewnić się, że maszyna wirtualna jest uruchamiana nawet wtedy, gdy system plików jest uszkodzony lub nie istnieje podczas uruchamiania.
Zapisz zmiany w pliku fstab.
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 wpisów.Po zweryfikowaniu składni i wpisów uruchom ponownie maszynę wirtualną przy użyciu poniższego polecenia.
reboot -f
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 w trybie offline:
Używanie automatycznej naprawy systemu Azure Linux (ALAR)
Skrypty automatycznej naprawy systemu Azure Linux (ALAR) są częścią rozszerzenia naprawy maszyny wirtualnej opisanego w artykule Naprawianie maszyny wirtualnej z systemem Linux przy użyciu poleceń naprawy maszyny wirtualnej platformy Azure. ALAR obejmuje automatyzację wielu scenariuszy naprawy, w tym /etc/fstab
problemów.
Skrypty ALAR używają polecenia rozszerzenia run
naprawy i jego --run-id
opcji. Identyfikator skryptu automatycznego 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" są przykładami i wartości muszą zostać odpowiednio zmienione.
Skrypt naprawy fstab wykona kopię zapasową oryginalnego pliku i usunie wszystkie wiersze w pliku /etc/fstab, które nie są potrzebne do rozruchu systemu. Po pomyślnym uruchomieniu systemu operacyjnego ponownie edytuj fstab i popraw wszelkie błędy, które wcześniej nie zezwalają na ponowne uruchomienie systemu.
Alternatywnie po utworzeniu maszyny wirtualnej naprawy zmiany można również zaimplementować przez ręczne zalogowanie się do maszyny wirtualnej naprawy, zainstalowanie dołączonej kopii dysku systemu operacyjnego i wprowadzenie zmian w pliku fstab. Wykonaj następujące kroki:
- Utwórz maszynę wirtualną naprawy przy użyciu
az vm repair create
polecenia . - Aby zainstalować i chroot do systemów plików dołączonego dysku systemu operacyjnego na maszynie wirtualnej ratownictwa, postępuj zgodnie ze szczegółowymi instrukcjami chroot.
- Następnie wykonaj te same kroki rozwiązywania problemów z fstab jak powyżej.
- Po zastosowaniu
az vm repair restore
zmian można użyć polecenia do automatycznej wymiany dysku systemu operacyjnego z oryginalną maszyną wirtualną.
Używanie metody ręcznej
Jeśli zarówno konsola szeregowa, jak i metoda ALAR nie są możliwe lub nie powiodły się, naprawa musi zostać wykonana ręcznie. Wykonaj poniższe kroki, aby ręcznie dołączyć dysk systemu operacyjnego do maszyny wirtualnej odzyskiwania i zamienić dysk systemu operacyjnego z powrotem na oryginalną maszynę wirtualną:
- Dołącz dysk systemu operacyjnego do maszyny wirtualnej odzyskiwania przy użyciu Azure Portal
- Dołączanie dysku systemu operacyjnego do maszyny wirtualnej odzyskiwania przy użyciu interfejsu wiersza polecenia platformy Azure
Po pomyślnym dołączeniu dysku systemu operacyjnego do maszyny wirtualnej odzyskiwania postępuj zgodnie ze szczegółowymi instrukcjami chroot , aby zainstalować i chroot do systemów plików dołączonego dysku systemu operacyjnego. Następnie zaimplementuj kroki rozwiązywania problemów 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 platformy Azure.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla