Bootprobleme einer Linux-VM aufgrund von fstab-Fehlern beheben


Fstab (Dateisystemtabelle) ist eine Konfigurationsdatei, mit der Sie definieren, wie die Laufwerkspartition, das Dateisystem und die Dateifreigabenbereitstellungen in Ihrer Linux-VM bei einem Systemneustart beibehalten werden.

In diesem Dokument werden mehrere Bedingungen beschrieben, unter denen eine falsche fstab-Konfiguration zu einem Startproblem führen kann. Außerdem werden Tipps zur Fehlerbehebung gegeben, um das Problem zu beheben.

Im Folgenden sind einige häufige Probleme mit der Fehlkonfiguration von fstab aufgeführt:

  • Syntaxfehler in der Konfigurationsdatei fstab
  • Eine falsche UUID
  • Es ist ein Eintrag für ein nicht angeschlossenes/nicht verfügbares Gerät vorhanden
  • Eingestellte Bereitstellungsoptionen wie nobarrier für den Dateisystemtyp „xfs“ in SUSE- oder RHEL-Images.

Vorbereitung

  • Wenn Sie Cloud Logging zum Logging der Ausgabe des seriellen Ports verwenden möchten, machen Sie sich mit Cloud Logging vertraut.
  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud -Dienste und APIs überprüft. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    2. Set a default region and zone.

    REST

    Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.

      Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:

      gcloud init

      Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

    Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.

Probleme mit „fstab“ erkennen

Bei Bootproblemen empfiehlt Google dringend, die Bootlogs in der seriellen Konsole der Linux-VM zu prüfen. Die VM wechselt in den Notfallmodus und es wird eine Fehlermeldung angezeigt, die darauf hinweist, dass das Problem mit „fstab“ zusammenhängt.

  [K[[1;31m TIME [0m] Timed out waiting for device dev-incorrect.device.
  [[1;33mDEPEND[0m] Dependency failed for /distribution.
  [[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)
  

Laut der Fehlermeldung liegt ein Abhängigkeitsfehler für das /distribution-Dateisystem vor. Der Abhängigkeitsfehler für einen Dateisystem-Mountpunkt hängt von den verwendeten Dateisystemnamen ab.

Lösung

Mit den folgenden Optionen können Sie den Fehler fstab in Linux-VMs beheben, die in Google Cloudgehostet werden. Mit der seriellen Konsole lässt sich das Problem schneller beheben als mit der manuellen Methode.

Wenn Sie das fstab-Problem mit den folgenden Methoden beheben möchten, müssen Sie den Zugriff auf den seriellen Port für Ihre VM aktivieren.

Option 1: Mit der seriellen Konsole im Notfall-Modus in der VM anmelden

  1. Melden Sie sich über die serielle Konsole der VM an: Google Cloud console. Serielle Konsole

  2. Geben Sie im aktuellen Notfallmodus das Root-Passwort ein, um auf Ihre VM zuzugreifen.

  3. Öffnen Sie die Datei fstab mit Ihrem bevorzugten Texteditor. Nehmen Sie die erforderlichen Änderungen vor und speichern Sie sie in der Datei fstab. Im folgenden Beispiel wird der Editor vi verwendet.

    vi /etc/fstab

    Fstab-Datei

    Im vorherigen Beispiel ist das Gerät für /distribution von der VM getrennt. Kommentieren Sie die Zeile, die auf das Dateisystem verweist, oder entfernen Sie den fstab-Eintrag für den Bereitstellungspunkt /distribution.

    Verwenden Sie man fstab für Weitere Informationen zur Konfiguration und Syntax von fstab.

  4. Speichern Sie die Datei und beenden Sie den Editor. Wenn Sie den vi-Editor verwenden, verwenden Sie ESC + :wq!, um zu speichern und den Editor zu beenden.

  5. Setzen Sie den Bootvorgang fort, indem Sie bei der Eingabeaufforderung reboot eingeben.

  6. Nachdem das Problem erfolgreich behoben wurde, sollte der Bootvorgang der VM abschließen und die Anmeldeaufforderung wird in der seriellen Konsole angezeigt.

  7. Prüfen Sie, ob Sie sich wieder über SSH bei der VM anmelden können.

Option 2: Einzelnutzermodus in der seriellen Konsole verwenden

Diese Option kann verwendet werden, wenn das Root-Passwort nicht festgelegt ist.

Voraussetzung: Der Parameter GRUB_TIMEOUT in der GRUB-Konfigurationsdatei muss auf einen Wert ungleich null gesetzt sein. Im Allgemeinen ist diese Datei unter /etc/default/grub gespeichert. Bei einigen älteren Distributionen kann sie jedoch in einem nicht standardmäßigen Verzeichnis gespeichert sein.

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen“ auf. Zu Seite „VM-Instanzen“

  2. Melden Sie sich über dieGoogle Cloud KonsoleSerielle Konsole2 in der seriellen Konsole der VM an.

  3. Klicken Sie in der Google Cloud Console für die VM auf RESET.

    Datei zurücksetzen

  4. Unterbrechen Sie im Fenster der seriellen Konsole den Bootvorgang, indem Sie im grub-bildschirm oder im Menü auf den Pfeil klicken, um zu pausieren.

  5. Wählen Sie in der Liste der Kernel auf dem Bildschirm des GRUB-Bootloaders den Kernel aus und drücken Sie e auf der Tastatur.

    Bootloader-Datei

  6. Fügen Sie den Parameter rd.break am Ende der Kernelzeile hinzu und drücken Sie ctrl + x. So kann die VM im Einzelnutzermodus gestartet werden.

    Bootloader-Menü

  7. Das Root-Dateisystem im Lese-/Schreibmodus bereitstellen.

  8. Analysieren Sie die Datei fstab, nehmen Sie die erforderlichen Änderungen vor und speichern Sie sie. Weitere Informationen zur Konfiguration und Syntax finden Sie unter man fstab. Öffnen Sie die Datei fstab mit Ihrem bevorzugten Texteditor. Im folgenden Beispiel wird der vi-Editor verwendet.

    vi /etc/fstab

    Fstab-Datei2

    In diesem Beispiel ist das Gerät für /distribution von der VM getrennt. Kommentieren Sie daher die Zeile oder entfernen Sie den fstab-Eintrag für den Bereitstellungspunkt /distribution.

  9. Speichern Sie die Datei und beenden Sie den Editor. Wenn Sie den vi-Editor verwenden, speichern Sie mit ESC + :wq! und verlassen Sie damit fstab.

  10. Setzen Sie den Bootvorgang fort, indem Sie bei der Eingabeaufforderung reboot eingeben.

  11. Nachdem das Problem erfolgreich behoben wurde, sollte der Bootvorgang der VM abschließen und die Anmeldeaufforderung wird in der seriellen Konsole angezeigt.

  12. Prüfen Sie, ob Sie sich über SSH bei der VM anmelden können.

Option 3: VM wiederherstellen

Diese Option kann verwendet werden, wenn das Root-Passwort nicht festgelegt ist oder wenn Sie den Einzelnutzermodus nicht verwenden können.

Weitere Informationen finden Sie unter Auf eine unzugängliche VM zugreifen.