Risolvi i problemi di avvio della VM Linux dovuti a errori di fstab


Fstab (tabella del file system) è un file di configurazione utilizzato per definire la modalità di persistenza dei montaggi della partizione del disco, del file system e della condivisione file nella VM Linux durante i riavvii del sistema.

Questo documento illustra più condizioni in cui una configurazione errata di fstab può causare un problema di avvio e offre consigli per la risoluzione dei problemi.

Di seguito sono riportati alcuni dei problemi comuni relativi alla configurazione errata di fstab:

  • Errore di sintassi nel file di configurazione fstab
  • UUID errato
  • Esiste una voce per un dispositivo non collegato/non disponibile
  • Opzioni di montaggio deprecate come nobarrier per il file system xfs in immagini SUSE o RHEL.

Prima di iniziare

  • Se vuoi registrare l'output della porta seriale in Cloud Logging, acquisisci familiarità con Cloud Logging.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione è il processo mediante il quale la tua identità viene verificata per l'accesso a servizi e API di Google Cloud . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    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. Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.

    REST

    Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, devi utilizzare le credenziali che fornisci a gcloud CLI.

      Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    Per saperne di più, consulta Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .

Identificare i problemi di fstab

Per i problemi di avvio, Google consiglia vivamente di controllare i log di avvio nella console seriale della VM Linux. La VM entra in modalità di emergenza con un messaggio di errore che suggerisce che il problema riguarda fstab.

  [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)
  

In base a questo messaggio, si verifica un errore di dipendenza per il file system /distribution. L'errore di dipendenza per un punto di montaggio del file system varia in base ai nomi dei file system utilizzati.

Risoluzione

Utilizza le seguenti opzioni per risolvere l'errore fstab nelle VM Linux ospitate in Google Cloud. Puoi risolvere il problema più rapidamente utilizzando la console seriale al posto del metodo manuale.

Per utilizzare i seguenti metodi per risolvere il problema riguardante fstab, devi abilitare l'accesso alla porta seriale per la VM.

Opzione 1: utilizza la console seriale per accedere alla VM in modalità di emergenza

  1. Accedi alla console seriale della VM dalla console Google Cloud . Console seriale

  2. Nella modalità di emergenza attuale, inserisci la password root per accedere alla VM.

  3. Utilizza il tuo editor di testo preferito per aprire il file fstab. Apporta le modifiche necessarie e salvale nel file fstab. Nell'esempio seguente viene utilizzato l'editor vi.

    vi /etc/fstab

    File fstab

    Nell'esempio precedente, il dispositivo per /distribution è stato scollegato dalla VM. Commenta la linea che fa riferimento al file system o rimuovi la voce fstab per il punto di montaggio /distribution.

    Utilizza man fstab per maggiori dettagli sulla configurazione e sulla sintassi di fstab.

  4. Salva il file ed esci dall'editor. Se utilizzi l'editor vi, usa ESC + :wq! per salvare ed uscire dall'editor.

  5. Riprendi il processo di avvio inserendo Riavvia al prompt.

  6. Dopo aver risolto il problema, il processo di avvio della VM dovrebbe essere completato e nella console seriale viene visualizzato il prompt di accesso.

  7. Verifica di poter accedere di nuovo alla VM tramite SSH.

Opzione 2: utilizzo della modalità utente singolo nella console seriale

Questa opzione può essere utilizzata se la password root non è impostata.

Prerequisito: il parametro GRUB_TIMEOUT nel file di configurazione Grub deve essere impostato su un valore diverso da zero. In genere questo file si trova in /etc/default/grub, ma in alcune distribuzioni precedenti potrebbe essere situato in una directory non standard.

  1. Vai alla pagina Istanze VM nella console Google Cloud . Vai a Istanze VM

  2. Accedi alla console seriale della macchina virtuale dalla consoleGoogle Cloud . Console seriale2

  3. Dalla console Google Cloud, fai clic su RESET per la macchina virtuale.

    Reimposta file

  4. Nella finestra della console seriale, interrompi il processo di avvio facendo clic sul tasto Freccia per metterlo in pausa nella schermata o nel menu Grub.

  5. Nell'elenco dei kernel nella schermata del bootloader Grub, seleziona il kernel e premi e sulla tastiera.

    file del bootloader

  6. Aggiungi il parametro rd.break alla fine della linea del kernel e premi ctrl+x. In questo modo puoi avviare la VM in modalità utente singolo.

    Menu del bootloader

  7. Monta il file system principale in modalità di lettura/scrittura.

  8. Analizza, apporta le modifiche necessarie e salva il file fstab. Utilizza man fstab per ulteriori dettagli su configurazione e sintassi. Utilizza il tuo editor di testo preferito per aprire il file fstab. Nell'esempio seguente viene utilizzato l'editor vi.

    vi /etc/fstab

    File fstab2

    In questo esempio, il dispositivo per /distribution è scollegato dalla VM; commenta quindi la linea o rimuovi la voce fstab per il punto di montaggio /distribution.

  9. Salva il file ed esci dall'editor. Con l'editor vi, utilizza ESC + :wq! per salvare e uscire da fstab.

  10. Riprendi il processo di avvio inserendo reboot al prompt.

  11. Dopo aver risolto il problema, il processo di avvio della VM dovrebbe essere completato e dovresti visualizzare il prompt di accesso nella console seriale.

  12. Verifica di poter accedere alla VM utilizzando SSH.

Opzione 3: recupera la VM

Puoi avvalerti di questa opzione se la password root non è impostata o se non riesci a utilizzare la modalità singolo utente.

Per ulteriori informazioni, consulta Recupero di una VM inaccessibile.