Felsök startproblem för virtuella Linux-datorer på grund av fstab-fel
Gäller för: ✔️ Virtuella Linux-datorer
Obs!
CentOS som refereras i den här artikeln är en Linux-distribution och kommer att nå End Of Life (EOL). Överväg att använda och planera i enlighet med detta. Mer information finns i CentOS End Of Life-vägledning.
Linux-filsystemtabellen fstab är en konfigurationstabell som är utformad för att konfigurera regler där specifika filsystem identifieras och monteras på ett ordnat sätt under systemstarten.
Den här artikeln beskriver flera villkor där en felaktig fstab-konfiguration kan leda till startproblem och ger felsökningsvägledning.
Här följer några vanliga orsaker som kan leda till startproblem för virtuella datorer på grund av felkonfiguration av fstab:
- Traditionellt filsystemnamn används i stället för UUID (Universally Unique Identifier) för filsystemet.
- Ett felaktigt UUID används.
- Det finns en post för en enhet som inte är ansluten utan
nofail
alternativet i fstab-konfigurationen. - Felaktig post i fstab-konfigurationen.
Identifiera problem med fstab
Kontrollera den virtuella datorns aktuella starttillstånd i serieloggen på bladet Startdiagnostik i Azure Portal. Den virtuella datorn är i nödläge. Du ser loggposter som liknar följande exempel som leder till tillståndet Nödläge:
[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)
Obs!
/data
är ett exempel på monteringspunkten som används. Beroendefel för filsystemmonteringspunkten skiljer sig beroendet från de namn som används.
Åtgärd
Det finns två sätt att lösa problemet:
- Reparera den virtuella datorn online
- Reparera den virtuella datorn offline
Reparera den virtuella datorn online
Använda seriekonsolen
- Anslut till den virtuella datorns seriekonsol från Azure Portal.
- Manuell åtkomst till enanvändarläge krävs för att konfigurera om fstab. Stegen kan variera beroende på vilken typ av Linux-operativsystem som används och åtkomst till rotkontot. Följ dokumentationen för enanvändarläge för att få åtkomst till enanvändarläge för varje Linux-partnerbild som stöds.
Felsökningssteg för Fstab
När den virtuella datorn har startats i enanvändarläge. Använd din favorittextredigerare för att öppna fstab-filen.
vi /etc/fstab
Granska de angivna filsystemen i
/etc/fstab
. Varje rad i fstab-filen anger ett filsystem som monteras när den virtuella datorn startar. Kör kommandot för mer information om syntaxen för fstab-filenman fstab
. Om du vill felsöka ett startfel läser du posten för filsystemet som inte kunde monteras. Det är en bra idé att granska varje rad för att säkerställa att den är korrekt i både struktur och innehåll. Några saker att tänka på för att administrera en fstab-fil korrekt är följande:Fält på varje rad avgränsas med flikar eller blanksteg. Tomma rader ignoreras. Rader som har ett taltecken (#) som det första tecknet är kommentarer. Kommenterade rader kan finnas kvar i fstab-filen, men de bearbetas inte. Vi rekommenderar att du kommenterar fstab-rader som du är osäker på i stället för att ta bort raderna.
Montera datadiskarna på virtuella Azure-datorer med hjälp av UUID för filsystempartitionen. Kör kommandot för att fastställa filsystemets
blkid
UUID. Kör kommandot för mer information om syntaxenman blkid
. Exempel på UUID-posten i fstab-filen:UUID=<UUID number here> /data xfs defaults,nofail 0 0
Använd alternativet
nofail
i filsystemposterna (datadiskar) för att aktivera start för att fortsätta även efter att fel inträffar i partitioner för motsvarande poster. Alternativetnofail
hjälper dig att se till att den virtuella datorn startar även om filsystemet är skadat eller om det inte finns vid start.
Spara ändringarna i fstab-filen.
Använd
mount -a
som bästa praxis när du har gjort ändringar i fstab-posterna. Detta kör fstab-konfigurationen igen och meddelar användarna om eventuella befintliga syntax- eller inmatningsfel.När syntaxen och posterna har verifierats startar du om den virtuella datorn med följande kommando:
reboot -f
Om postkommentaren eller korrigeringen lyckades bör systemet nå en bash-prompt i portalen. Kontrollera om du kan ansluta till den virtuella datorn.
Obs!
Du kan också använda kommandot
ctrl+x
som även startar om den virtuella datorn.
Reparera den virtuella datorn offline
Om den virtuella datorns seriekonsolåtkomst inte är tillgänglig är en alternativ lösning att reparera den virtuella datorn offline. Det finns två sätt att använda en offlinemetod:
Använda Azure Linux Auto Repair (ALAR)
Azure Linux-skript för automatisk reparation (ALAR) är en del av reparationstillägget för virtuella datorer som beskrivs i Använda Azure Linux Auto Repair (ALAR) för att åtgärda en virtuell Linux-dator. ALAR omfattar automatisering av flera reparationsscenarier, inklusive /etc/fstab
problem.
ALAR-skripten använder reparationstillägget repair-button
för att åtgärda fstab-problem genom att --button-command fstab
ange . Den här parametern utlöser den automatiserade återställningen. Implementera följande steg för att automatisera fstab-fel via ALAR-offlinemetoden:
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
Obs!
Ersätt resursgruppens namn $RGTEST
och VM-namn $VMNAME
i enlighet med detta.
- Skriptet för den virtuella reparationsdatorn, tillsammans med ALAR-skriptet, skapar tillfälligt en resursgrupp, en virtuell reparationsdator och en kopia av den berörda virtuella datorns OS-disk. Den säkerhetskopierar den ursprungliga
/etc/fstab
filen och ändrar den genom att ta bort eller kommentera ut datafilsystemposter som inte krävs för att starta systemet. - När operativsystemet har startats granskar och redigerar
/etc/fstab
du filen för att åtgärda eventuella fel som kan ha förhindrat en korrekt omstart. - Slutligen tar skriptet
repair-button
automatiskt bort resursgruppen som innehåller den virtuella reparationsdatorn.
Använd den manuella metoden
Om både seriekonsolen och ALAR-metoderna inte är möjliga eller misslyckas måste reparationen utföras manuellt. Följ stegen här för att manuellt koppla OS-disken till en återställnings-VM och växla tillbaka OS-disken till den ursprungliga virtuella datorn:
- Koppla OS-disken till en virtuell återställningsdator med hjälp av Azure Portal
- Koppla OS-disken till en virtuell återställningsdator med hjälp av Azure CLI
När OS-disken har anslutits till den virtuella återställningsdatorn följer du de detaljerade chroot-instruktionerna för att montera och chroot till filsystemen på den anslutna OS-disken. Implementera sedan felsökningsstegen för fstab för att göra lämpliga ändringar i fstab-filen för den problematiska OS-disken.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.