Problemen met het opstarten van linux-VM's vanwege fstab-fouten oplossen
Van toepassing op: ✔️ Virtuele Linux-machines
Notitie
CentOS waarnaar in dit artikel wordt verwezen, is een Linux-distributie en bereikt het einde van de levensduur (EOL). Houd rekening met uw gebruik en plan dienovereenkomstig. Zie De richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.
De linux-bestandssysteemtabel fstab is een configuratietabel die is ontworpen om regels te configureren waarbij specifieke bestandssystemen worden gedetecteerd en op een ordelijke manier worden gekoppeld tijdens het systeemstartproces. In dit artikel worden meerdere voorwaarden besproken waarbij een verkeerde fstab-configuratie kan leiden tot opstartproblemen en richtlijnen voor probleemoplossing biedt.
Enkele veelvoorkomende redenen die kunnen leiden tot opstartproblemen met virtuele machines vanwege een onjuiste configuratie van fstab, worden hieronder vermeld:
- De traditionele bestandsnaam wordt gebruikt in plaats van de UUID (Universally Unique Identifier) van het bestandssysteem.
- Er wordt een onjuiste UUID gebruikt.
- Er bestaat een vermelding voor een niet-gekoppeld apparaat zonder
nofail
optie in de fstab-configuratie. - Onjuiste vermelding binnen fstab-configuratie.
Fstab-problemen identificeren
Controleer de huidige opstartstatus van de VIRTUELE machine in het seriële logboek in de blade [Diagnostische gegevens over opstarten] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) in Azure Portal. De VIRTUELE machine bevindt zich in een noodmodus. U ziet logboekvermeldingen die lijken op het volgende voorbeeld dat leidt tot de status Noodmodus:
[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)
Notitie
'/data' is een voorbeeld van het gebruikte koppelpunt. Afhankelijkheidsfout voor koppelpunt voor bestandssysteem verschilt op basis van de gebruikte namen.
Oplossing
Er zijn twee manieren om het probleem op te lossen:
- De virtuele machine online herstellen
- De virtuele machine offline herstellen
De virtuele machine online herstellen
Via de seriële console
- Maak verbinding met de seriële console van de VIRTUELE machine vanuit Azure Portal.
- Handmatige toegang tot de modus voor één gebruiker is vereist om fstab opnieuw te configureren. De stappen kunnen variëren op basis van het type Linux-besturingssysteem dat wordt gebruikt en toegang tot het hoofdaccount. Volg documentatie over de modus voor één gebruiker voor toegang tot de modus voor één gebruiker voor elke ondersteunde Installatiekopieën van Linux-partners.
Stappen voor het oplossen van problemen met Fstab
Zodra de vm is opgestart in de modus voor één gebruiker. Gebruik uw favoriete teksteditor om het fstab-bestand te openen.
vi /etc/fstab
Controleer de vermelde bestandssysteem in
/etc/fstab
. Elke regel in het fstab-bestand geeft een bestandssysteem aan dat wordt gekoppeld wanneer de virtuele machine wordt gestart. Voer deman fstab
opdracht uit voor meer informatie over de syntaxis van het fstab-bestand. Als u een opstartfout wilt oplossen, controleert u de vermelding voor het bestandssysteem dat niet kan worden gekoppeld. Het is een goede gewoonte om elke regel te controleren om ervoor te zorgen dat deze juist is in zowel de structuur als de inhoud. Enkele punten die u moet overwegen om een fstab-bestand correct te beheren, zijn als volgt:Velden op elke regel worden gescheiden door tabbladen of spaties. Lege regels worden genegeerd. Regels met een nummerteken (#) als eerste teken zijn opmerkingen. Regels met opmerkingen kunnen in het fstab-bestand blijven staan, maar ze worden niet verwerkt. We raden u aan fstab-lijnen te commentaar die u niet zeker weet in plaats van de regels te verwijderen.
Koppel de gegevensschijven op Virtuele Azure-machines met behulp van de UUID van de bestandssysteempartitie. Voer de
blkid
opdracht uit om de UUID van het bestandssysteem te bepalen. Voer de opdracht uit voor meer informatie over deman blkid
syntaxis. Voorbeeld van UUID-vermelding in fstab-bestand:UUID=<UUID number here> /data xfs defaults,nofail 0 0
Gebruik de
nofail
optie in de bestandssysteemvermeldingen (gegevensschijven) om het opstarten in te schakelen, zelfs nadat er fouten optreden in partities voor de bijbehorende vermeldingen. Denofail
optie helpt ervoor te zorgen dat de virtuele machine wordt gestart, zelfs als het bestandssysteem is beschadigd of als deze niet bestaat bij het opstarten.
Sla de wijzigingen op in het fstab-bestand.
Gebruik
mount -a
deze procedure als best practice nadat u wijzigingen hebt aangebracht in de fstab-vermeldingen. Hiermee wordt de fstab-configuratie opnieuw uitgevoerd en worden de gebruikers op de hoogte gebracht van eventuele bestaande syntaxis- of invoerfouten.Zodra de syntaxis en vermeldingen zijn geverifieerd, start u de vm opnieuw op met behulp van de onderstaande opdracht.
reboot -f
Als de opmerking of oplossing van de vermeldingen is geslaagd, moet het systeem een bash-prompt in de portal bereiken. Controleer of u verbinding kunt maken met de virtuele machine.
Notitie
U kunt ook de opdracht Ctrl+x gebruiken waarmee de vm ook opnieuw wordt opgestart.
De virtuele machine offline herstellen
Als de toegang tot de seriële console van de VIRTUELE machine niet beschikbaar is, kunt u de virtuele machine ook offline herstellen. Er zijn twee manieren om offline te gaan:
Automatisch herstellen van Azure Linux gebruiken (ALAR)
Azure Linux Auto Repair -scripts (ALAR) maakt deel uit van de VM-herstelextensie die wordt beschreven in Een Virtuele Linux-MACHINE herstellen met behulp van de Azure Virtual Machine-herstelopdrachten. ALAR behandelt automatisering van meerdere herstelscenario's, waaronder /etc/fstab
problemen.
De ALAR-scripts gebruiken de opdracht voor de reparatie-extensie run
en --run-id
de bijbehorende optie. De script-id voor het geautomatiseerde herstel is: linux-alar2. Implementeer de volgende stappen om fstab-fouten te automatiseren via offline ALAR-benadering:
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
Notitie
De naam van de resourcegroep 'centos7, vm-naam 'cent7' en --copy-disk-name 'repairdiskcopy' zijn voorbeelden en de waarden moeten dienovereenkomstig worden gewijzigd.
Het fstab-herstelscript maakt een back-up van het oorspronkelijke bestand en stript alle regels in het /etc/fstab-bestand die niet nodig zijn om een systeem op te starten. Nadat het besturingssysteem is gestart, bewerkt u de fstab opnieuw en corrigeert u eventuele fouten die het opnieuw opstarten van het systeem niet eerder hebben toegestaan.
Als u een herstel-VM hebt gemaakt, kunnen de wijzigingen ook worden geïmplementeerd door u handmatig aan te melden bij de herstel-VM, de gekoppelde kopie van de besturingssysteemschijf te koppelen en wijzigingen aan te brengen in het fstab-bestand. Volg de stappen hier:
- Maak een herstel-VM met behulp van de
az vm repair create
opdracht. - Volg de gedetailleerde chroot-instructies om de bestandssysteems van de gekoppelde besturingssysteemschijf in een reddings-VM te koppelen en te chroot.
- Volg vervolgens dezelfde fstab-probleemoplossingsstappen als hierboven.
- Zodra de wijzigingen zijn toegepast,
az vm repair restore
kan de opdracht worden gebruikt voor het automatisch wisselen van besturingssysteemschijven met de oorspronkelijke VM.
Handmatige methode gebruiken
Als zowel seriële console als ALAR-benadering niet mogelijk of mislukt, moet de reparatie handmatig worden uitgevoerd. Volg de stappen hier om de besturingssysteemschijf handmatig te koppelen aan een herstel-VM en de besturingssysteemschijf terug te wisselen naar de oorspronkelijke VM:
- De besturingssysteemschijf koppelen aan een herstel-VM met behulp van Azure Portal
- De besturingssysteemschijf koppelen aan een herstel-VM met behulp van Azure CLI
Zodra de besturingssysteemschijf is gekoppeld aan de herstel-VM, volgt u de gedetailleerde chroot-instructies om de bestandssysteems van de gekoppelde besturingssysteemschijf te koppelen en te chrooten. Implementeer vervolgens fstab-probleemoplossingsstappen om de juiste wijzigingen aan te brengen in het fstab-bestand van de problematische besturingssysteemschijf.
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.