Felsöka startproblem för virtuella Linux-datorer på grund av fstab-fel
Gäller för: ✔️ Virtuella Linux-datorer
Kommentar
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. I den här artikeln beskrivs flera villkor där en felaktig fstab-konfiguration kan leda till startproblem och innehåller felsökningsvägledning.
Några vanliga orsaker som kan leda till problem med start av virtuella datorer på grund av felkonfiguration av fstab visas nedan:
- 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 ej ansluten enhet utan
nofail
alternativ i fstab-konfigurationen. - Felaktig post i fstab-konfigurationen.
Identifiera problem med fstab
Kontrollera den virtuella datorns aktuella starttillstånd i serieloggen på bladet [Startdiagnostik] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) på Azure-portalen. 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)
Kommentar
"/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 seriekonsolen för den virtuella datorn från Azure-portalen.
- 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 om enanvändarläge för att få åtkomst till enanvändarläge för varje Linux-partnerbilder 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-post 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 hjälp av kommandot nedan.
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.
Kommentar
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 Auto Repair-skript (ALAR) är en del av reparationstillägget för virtuella datorer som beskrivs i Reparera en virtuell Linux-dator med hjälp av reparationskommandona för Azure Virtual Machine. ALAR omfattar automatisering av flera reparationsscenarier, inklusive /etc/fstab
problem.
ALAR-skripten använder kommandot för reparationstillägget run
och dess --run-id
alternativ. Skript-ID:t för den automatiserade återställningen är: linux-alar2. Implementera följande steg för att automatisera fstab-fel via offline-ALAR-metod:
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
Kommentar
Resursgruppens namn "centos7, vm name "cent7" och --copy-disk-name "repairdiskcopy" är exempel och värdena måste ändras i enlighet med detta.
Reparationsskriptet för fstab tar en säkerhetskopia av den ursprungliga filen och tar bort alla rader i filen /etc/fstab som inte behövs för att starta ett system. När operativsystemet har startats redigerar du fstab igen och korrigerar eventuella fel som inte tillät en omstart av systemet tidigare.
När en virtuell reparationsdator har skapats kan ändringarna också implementeras genom att manuellt logga in på den virtuella reparationsdatorn, montera den anslutna kopian av OS-disken och göra ändringar i dess fstab-fil. Följ stegen här:
- Skapa en virtuell reparationsdator med kommandot
az vm repair create
. - Följ de detaljerade chroot-instruktionerna för att montera och chroot till filsystemen på den anslutna OS-disken på en virtuell räddningsdator.
- Följ sedan samma felsökningssteg för fstab som ovan.
- När ändringarna har tillämpats
az vm repair restore
kan kommandot användas för att utföra automatisk växling av OS-diskar med den ursprungliga virtuella datorn.
Använd manuell metod
Om både seriekonsolen och ALAR-metoden 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-portalen
- 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 fstab för att göra lämpliga ändringar i fstab-filen på den problematiska OS-disken.
Kontakta oss om du behöver hjälp
Om du har frågor eller behöver hjälp skapar du en supportbegäran eller frågar Azure Community-support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.