Problemen met het opstarten van linux-VM's vanwege fstab-fouten oplossen
Van toepassing op: ✔️ Virtuele Linux-machines
Opmerking
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 opstartproces van het systeem.
In dit artikel worden meerdere voorwaarden besproken waarbij een verkeerde fstab-configuratie kan leiden tot opstartproblemen en richtlijnen voor probleemoplossing biedt.
Hier volgen enkele veelvoorkomende redenen die kunnen leiden tot opstartproblemen met virtuele machines (VM' s) vanwege onjuiste configuratie van fstab:
- 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 de
nofail
optie in de fstab-configuratie. - Onjuiste vermelding in de 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 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)
Opmerking
/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 de documentatie voor de modus voor één gebruiker voor toegang tot de modus voor één gebruiker voor elke ondersteunde Linux-partnerinstallatiekopieën.
Stappen voor het oplossen van problemen met Fstab
Zodra de VIRTUELE machine 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. Een paar 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 de UUID-vermelding in het 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 volgende 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.
Opmerking
U kunt ook de
ctrl+x
opdracht gebruiken waarmee de virtuele machine 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)
ALAR-scripts (Azure Linux Auto Repair) maken deel uit van de VM-herstelextensie die wordt beschreven in Azure Linux Auto Repair (ALAR) gebruiken om een Virtuele Linux-machine te herstellen. ALAR behandelt de automatisering van meerdere herstelscenario's, waaronder /etc/fstab
problemen.
De ALAR-scripts gebruiken de reparatie-extensie repair-button
om fstab-problemen op te lossen door op --button-command fstab
te geven. Met deze parameter wordt het geautomatiseerde herstel geactiveerd. Implementeer de volgende stappen om fstab-fouten te automatiseren via de offline ALAR-benadering:
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
Opmerking
Vervang de naam $RGTEST
van de resourcegroep en de NAAM van $VMNAME
de VM dienovereenkomstig.
- Het herstel-VM-script, in combinatie met het ALAR-script, maakt tijdelijk een resourcegroep, een herstel-VM en een kopie van de besturingssysteemschijf van de betreffende VM. Het maakt een back-up van het oorspronkelijke
/etc/fstab
bestand en wijzigt het door gegevensbestandssysteemvermeldingen te verwijderen of commentaar te geven die niet nodig zijn om het systeem op te starten. - Nadat het besturingssysteem is gestart, controleert en bewerkt u het
/etc/fstab
bestand om eventuele fouten op te lossen die mogelijk hebben voorkomen dat het systeem opnieuw wordt opgestart. - Ten slotte verwijdert het
repair-button
script automatisch de resourcegroep met de herstel-VM.
De handmatige methode gebruiken
Als zowel de seriële console als de ALAR-benaderingen niet mogelijk zijn of mislukken, moet het herstel 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 de 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 de fstab-stappen voor probleemoplossing 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.