Delen via


Problemen met opstarten van Linux-VM's oplossen vanwege fstab-fouten

Opmerking

CentOS waarnaar in dit artikel wordt verwezen, is een Linux-distributie en bereikt end of life (EOL). Overweeg uw gebruik en plan dienovereenkomstig. Zie 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 een opstartprobleem en biedt richtlijnen voor het oplossen van problemen.

Hieronder vindt u enkele veelvoorkomende redenen die kunnen leiden tot problemen met het opstarten van virtuele machines vanwege onjuiste fstab-configuratie:

  • De naam van het traditionele bestandssysteem 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 fstab-configuratie.
  • Onjuiste vermelding in fstab-configuratie.

Fstab-problemen identificeren

Controleer de huidige opstartstatus van de VM in het seriële logboek in de blade [Diagnostische gegevens over opstarten] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) in de Azure Portal. De VM bevindt zich in de modus Noodgeval. 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. Een afhankelijkheidsfout voor het koppelpunt van het bestandssysteem verschilt op basis van de gebruikte namen.

Oplossing

Er zijn twee manieren om het probleem op te lossen:

De VM online herstellen

De seriële console gebruiken

  1. Maak verbinding met de seriële console van de VM vanuit Azure Portal.
  2. Handmatige toegang tot de modus voor één gebruiker is vereist om fstab opnieuw te configureren. De stappen kunnen variëren, afhankelijk van het type Linux-besturingssysteem dat wordt gebruikt en de 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.
Fstab probleemoplossingsstappen
  1. Zodra de vm is opgestart in de modus voor één gebruiker. Gebruik uw favoriete teksteditor om het fstab-bestand te openen.

    vi /etc/fstab
    
  2. Controleer de vermelde bestandssystemen in /etc/fstab. Elke regel in het fstab-bestand geeft een bestandssysteem aan dat is gekoppeld wanneer de VM wordt gestart. Voer de opdracht uit voor meer informatie over de syntaxis van het man fstab 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 er zeker van te zijn 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 worden niet verwerkt. We raden u aan fstab-regels waarover u twijfelt commentaar te geven in plaats van de regels te verwijderen.

    • Koppel de gegevensschijven op Azure-VM's met behulp van de UUID van de bestandssysteempartitie. Voer de opdracht uit om de UUID van het blkid bestandssysteem te bepalen. Voer de opdracht uit voor meer informatie over de man 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 door te laten gaan, zelfs nadat er fouten zijn opgetreden in partities voor de bijbehorende vermeldingen. Met de nofail optie kunt u ervoor zorgen dat de VM wordt gestart, zelfs als het bestandssysteem beschadigd is of niet bestaat bij het opstarten.

  3. Sla de wijzigingen in het fstab-bestand op.

  4. Gebruik mount -a als aanbevolen procedure na het aanbrengen van wijzigingen in de fstab-vermeldingen. Hiermee wordt de fstab-configuratie opnieuw uitgevoerd en worden de gebruikers op de hoogte gesteld van eventuele bestaande syntaxis- of invoerfouten.

  5. Zodra de syntaxis en vermeldingen zijn geverifieerd, start u de vm opnieuw op met behulp van de onderstaande opdracht.

    reboot -f
    
  6. Als de opmerking of oplossing van de vermelding is geslaagd, zou het systeem een bash-prompt in de portal moeten bereiken. Controleer of u verbinding kunt maken met de VM.

Opmerking

U kunt ook de opdracht 'ctrl+x' gebruiken waarmee de vm ook opnieuw wordt opgestart.

De virtuele machine offline herstellen

Als de seriële consoletoegang van de VM niet beschikbaar is, is een alternatieve oplossing om de vm offline te herstellen. Er zijn twee manieren om een offline benadering te kiezen:

Azure Linux Auto Repair (ALAR) gebruiken

Azure Linux Auto Repair (ALAR)-scripts is een onderdeel van de VM-reparatie-extensie die wordt beschreven in Een Linux-VM herstellen met behulp van de azure-opdrachten voor het herstellen van virtuele machines. ALAR behandelt automatisering van meerdere reparatiescenario's, inclusief /etc/fstab problemen.

De ALAR-scripts gebruiken de opdracht voor de reparatie-extensie run en de bijbehorende --run-id optie. De script-id voor het geautomatiseerde herstel is: linux-alar2. Implementeer de volgende stappen om fstab-fouten te automatiseren via een 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

Opmerking

De resourcegroepnaam '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 verwijder alle regels in het bestand /etc/fstab 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 toestaan.

Zodra een reparatie-VM is gemaakt, kunnen de wijzigingen ook worden geïmplementeerd door u handmatig aan te melden bij de reparatie-VM, de bijgevoegde 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 chroot te koppelen aan de bestandssystemen van de gekoppelde besturingssysteemschijf in een herstel-VM.
  • Volg vervolgens dezelfde fstab-stappen voor probleemoplossing als hierboven.
  • Zodra de wijzigingen zijn toegepast, az vm repair restore kan de opdracht worden gebruikt om automatisch wisselen van besturingssysteemschijf met de oorspronkelijke VM uit te voeren.

Handmatige methode gebruiken

Als zowel de seriële console als de ALAR-benadering niet mogelijk is 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:

Zodra de besturingssysteemschijf is gekoppeld aan de herstel-VM, volgt u de gedetailleerde chroot-instructies om en chroot te koppelen aan de bestandssystemen van de gekoppelde besturingssysteemschijf. 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 Feedback-community van Azure.