Risolvere i problemi di avvio delle VM Linux dovuti a errori fstab


Fstab (tabella del file system) è un file di configurazione utilizzato per definire la modalità di persistenza dei mount 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
  • Un UUID errato
  • Esiste una voce per un dispositivo non collegato/non disponibile
  • Opzioni di montaggio ritirate come nobarrier per il file system xfs indicata nelle immagini SUSE o RHEL.

Prima di iniziare

  • Se vuoi registrare l'output della porta seriale in Cloud Logging, familiarizza 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. 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, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.

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 al messaggio di errore, si è verificato 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 rispetto al metodo manuale.

Per utilizzare i seguenti metodi per risolvere il problema 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 di 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 è scollegato dalla VM. Commenta la riga che fa riferimento al file system o rimuovi la voce fstab per il punto di montaggio /distribution.

    Consulta 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 reboot al prompt.

  6. Dopo aver risolto il problema, la procedura di avvio della VM dovrebbe essere completata e nella console seriale verrà visualizzata la richiesta 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 di root non è impostata.

Prerequisito: il parametro GRUB_TIMEOUT nel file di configurazione di 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 trovarsi 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 console Google Cloud.Console seriale 2

  3. Fai clic su RESET per la macchina virtuale dalla console Google Cloud.

    Reimposta file

  4. Nella finestra della console seriale, interrompi la procedura di avvio facendo clic sul pulsante di freccia per mettere in pausa la schermata o il menu Grub.

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

    file del bootloader

  6. Aggiungi il parametro rd.break alla fine della riga 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 maggiori 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, quindi commenta la riga o rimuovi la voce fstab per il punto di montaggio /distribution.

  9. Salva il file ed esci dall'editor. Se utilizzi l'editor vi, usa ESC + :wq! per salvare ed 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

Questa opzione può essere utilizzata se la password di root non è impostata o se non riesci a utilizzare la modalità singolo utente.

Per ulteriori informazioni, consulta Recupero di una VM inaccessibile.