Solucionar problemas de inicio de máquinas virtuales Linux debido a errores de fstab


Fstab (tabla del sistema de archivos) es un archivo de configuración que se usa para definir cómo se conservan las particiones de disco, el sistema de archivos y los montajes de archivos compartidos en tu VM de Linux tras reiniciar el sistema.

En este documento se describen varias situaciones en las que una configuración incorrecta de fstab puede provocar un problema de arranque y se ofrecen consejos para solucionar el problema.

A continuación se indican algunos de los problemas habituales de configuración incorrecta de fstab:

  • Error de sintaxis en el archivo de configuración de fstab
  • Un UUID incorrecto
  • Hay una entrada para un dispositivo no conectado o no disponible
  • Opciones de montaje obsoletas, como nobarrier para el tipo de sistema de archivos xfs en imágenes de SUSE o RHEL.

Antes de empezar

  • Si quieres registrar la salida del puerto serie en Cloud Logging, familiarízate con Cloud Logging.
  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Identificar problemas de fstab

En caso de que haya problemas con el arranque, Google recomienda que consultes los registros de arranque en la consola en serie de la VM de Linux. La máquina virtual entra en modo de emergencia con un mensaje de error que indica que el problema está en 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)
  

Según el mensaje de error, se ha producido un fallo de dependencia en el sistema de archivos /distribution. El error de dependencia de un punto de montaje del sistema de archivos variará en función de los nombres de los sistemas de archivos utilizados.

Resolución

Usa las siguientes opciones para solucionar el error fstab en las VMs de Linux alojadas en Google Cloud. Puedes resolver el problema más rápido con la consola de serie que con el método manual.

Para usar los siguientes métodos y solucionar el problema de fstab, debes habilitar el acceso al puerto serie de tu VM.

Opción 1: Usar la consola serie para iniciar sesión en la VM en modo de emergencia

  1. Inicia sesión en la consola serie de la VM desde Google Cloud console. Consola en serie

  2. En el modo de emergencia actual, introduce la contraseña de raíz para acceder a tu VM.

  3. Abre el archivo fstab con tu editor de texto favorito. Haz los cambios necesarios y guárdalos en el archivo fstab. En el siguiente ejemplo, se usa el editor vi.

    vi /etc/fstab

    Archivo fstab

    En el ejemplo anterior, el dispositivo de /distribution se separa de la máquina virtual. Comenta la línea que hace referencia al sistema de archivos o elimina la entrada fstab del punto de montaje /distribution.

    Usa man fstab para obtener más información sobre la configuración y la sintaxis de fstab.

  4. Guarda el archivo y cierra el editor. Si usas el editor vi, pulsa ESC + :wq! para guardar los cambios y salir del editor.

  5. Reanuda el proceso de arranque introduciendo reboot en la petición.

  6. Después de solucionar el problema correctamente, el proceso de arranque de la VM debería completarse y aparecerá la petición de inicio de sesión en la consola serie.

  7. Comprueba que puedes volver a iniciar sesión en la VM mediante SSH.

Opción 2: Usar el modo de un solo usuario en la consola de serie

Esta opción se puede usar si no se ha definido la contraseña raíz.

Requisito previo: El parámetro GRUB_TIMEOUT del archivo de configuración de grub debe tener un valor distinto de cero. Normalmente, este archivo se encuentra en /etc/default/grub, pero en algunas distribuciones anteriores puede estar en un directorio no estándar.

  1. Ve a la página Instancias de VM de la Google Cloud consola. Ir a instancias de VM

  2. Inicia sesión en la consola en serie de la máquina virtual desde laGoogle Cloud consola. Consola serie 2

  3. Haz clic en RESTABLECER en la máquina virtual desde la consola de Google Cloud.

    Restablecer archivo

  4. En la ventana de la consola serie, interrumpe el proceso de arranque haciendo clic en la tecla de flecha para pausar en la pantalla o el menú de grub.

  5. En la lista de kernels de la pantalla del gestor de arranque grub, elige el kernel y pulsa e en el teclado.

    Archivo del bootloader

  6. Añade el parámetro rd.break al final de la línea del kernel y pulsa ctrl+x. Esto ayuda a arrancar la VM en modo de un solo usuario.

    Menú del bootloader

  7. Monta el sistema de archivos raíz en modo de lectura y escritura.

  8. Analiza el archivo fstab, haz los cambios necesarios y guárdalo. Consulta man fstab para obtener más información sobre la configuración y la sintaxis. Usa tu editor de texto favorito para abrir el archivo fstab. En el ejemplo siguiente, se usa el editor vi.

    vi /etc/fstab

    Archivo fstab2

    En este ejemplo, el dispositivo de /distribution se ha separado de la VM, por lo que debes comentar la línea o eliminar la entrada fstab del punto de montaje de /distribution.

  9. Guarda el archivo y sal del editor. Si usas el editor vi, utiliza ESC + :wq! para guardar y salir de fstab.

  10. Reanuda el proceso de arranque introduciendo reboot en la petición.

  11. Una vez que hayas solucionado el problema, el proceso de arranque de la VM debería completarse y deberías ver la petición de inicio de sesión en la consola serie.

  12. Comprueba que puedes iniciar sesión en la VM mediante SSH.

Opción 3: Recuperar la VM

Esta opción se puede usar si no se ha definido la contraseña de administrador o si no puedes usar el modo de un solo usuario.

Para obtener más información, consulta el artículo sobre cómo recuperar una VM a la que no se puede acceder.