Solución de problemas de arranque en las máquinas virtuales Linux por errores de fstab

Se aplica a: ✔️ Máquinas virtuales Linux

Nota

CentOS al que se hace referencia en este artículo es una distribución de Linux y llegará al final del ciclo de vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para obtener más información, consulte Guía de fin de vida de CentOS.

La tabla del sistema de archivos de Linux, fstab es una tabla de configuración diseñada para configurar reglas en las que se detectan y montan sistemas de archivos específicos de forma ordenada durante el proceso de arranque del sistema. En este artículo se describen varias condiciones en las que una configuración de fstab incorrecta puede provocar un problema de arranque y proporciona instrucciones para solucionar problemas.

A continuación se enumeran algunas razones comunes que pueden provocar problemas de arranque de máquina virtual debido a errores de configuración de fstab:

  • El nombre del sistema de archivos tradicional se usa en lugar del identificador único universal (UUID) del sistema de archivos.
  • Se usa un UUID incorrecto.
  • Existe una entrada para un dispositivo no conectado sin nofail opción dentro de la configuración de fstab.
  • Entrada incorrecta dentro de la configuración de fstab.

Identificación de problemas de fstab

Compruebe el estado de arranque actual de la máquina virtual en el registro serie dentro de la hoja [Diagnósticos de arranque] (/azure/virtual-machines/boot-diagnostics#boot-diagnostics-view) en Azure Portal. La máquina virtual estará en modo de emergencia. Verá entradas de registro que se asemejan al ejemplo siguiente que conduce al estado modo de emergencia:

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

Nota

"/data" es un ejemplo de punto de montaje usado. El error de dependencia del punto de montaje del sistema de archivos variará en función de los nombres usados.

Solución

Hay dos maneras de resolver el problema:

Reparación de la máquina virtual en línea

Uso de la consola serie

  1. Conéctese a la consola serie de la máquina virtual desde Azure Portal.
  2. Se requiere acceso manual al modo de usuario único para volver a configurar fstab. Los pasos pueden variar en función del tipo de sistema operativo Linux en uso y el acceso a la cuenta raíz. Siga la documentación del modo de usuario único para acceder al modo de usuario único para cada imagen de asociado de Linux compatible.
Pasos de solución de problemas de Fstab
  1. Una vez que la máquina virtual se haya iniciado en modo de usuario único. Use el editor de texto que prefiera para abrir el archivo fstab.

    vi /etc/fstab
    
  2. Revise los sistemas de archivos enumerados en /etc/fstab. Cada línea del archivo fstab indica un sistema de archivos montado cuando se inicia la máquina virtual. Para obtener más información sobre la sintaxis del archivo fstab, ejecute el man fstab comando . Para solucionar un error de arranque, revise la entrada del sistema de archivos que no se pudo montar. Se recomienda revisar cada línea para asegurarse de que es correcto tanto en estructura como en contenido. Algunos puntos que se deben tener en cuenta para administrar correctamente un archivo fstab son los siguientes:

    • Los campos de cada línea están separados por tabulaciones o espacios. Se omiten las líneas en blanco. Las líneas que tienen un signo de número (#) como primer carácter son comentarios. Las líneas comentadas pueden permanecer en el archivo fstab, pero no se procesarán. Se recomienda comentar las líneas fstab que no está seguro acerca de en lugar de quitar las líneas.

    • Monte los discos de datos en máquinas virtuales de Azure mediante el UUID de la partición del sistema de archivos. Para determinar el UUID del sistema de archivos, ejecute el blkid comando . Para obtener más información sobre la sintaxis, ejecute el man blkid comando . Ejemplo de entrada UUID en el archivo fstab:

      UUID=<UUID number here>  /data      xfs    defaults,nofail 0  0
      
    • Use la nofail opción en las entradas del sistema de archivos (discos de datos) para permitir que el inicio continúe incluso después de que se produzcan errores en particiones para las entradas correspondientes. La nofail opción ayuda a asegurarse de que la máquina virtual se inicia incluso si el sistema de archivos está dañado o si no existe en el inicio.

  3. Guarde los cambios en el archivo fstab.

  4. Use mount -a como procedimiento recomendado después de realizar cambios en las entradas fstab. Esto volverá a ejecutar la configuración de fstab y notificará a los usuarios cualquier error de entrada o sintaxis existente.

  5. Una vez que se comprueba la sintaxis y las entradas, reinicie la máquina virtual mediante el comando siguiente.

    reboot -f
    
  6. Si el comentario o la corrección de entradas se realizó correctamente, el sistema debe tener acceso al símbolo del sistema de bash en el portal. Compruebe si puede conectarse a la máquina virtual.

Nota

También puede usar el comando "Ctrl + X", que reiniciaría igualmente la máquina virtual.

Reparación de la máquina virtual sin conexión

Si el acceso a la consola serie de la máquina virtual no está disponible, una solución alternativa consiste en reparar la máquina virtual sin conexión. Hay dos maneras de desconectar un enfoque:

Uso de La reparación automática de Linux (ALAR) de Azure

Los scripts de reparación automática (ALAR) de Linux de Azure forman parte de la extensión de reparación de máquinas virtuales que se describe en Reparación de una máquina virtual Linux mediante los comandos de reparación de máquinas virtuales de Azure. ALAR cubre la automatización de varios escenarios de reparación, incluidos /etc/fstab los problemas.

Los scripts ALAR usan el comando de extensión run de reparación y su --run-id opción. El script-id para la recuperación automatizada es: linux-alar2. Implemente los pasos siguientes para automatizar los errores de fstab a través del enfoque ALAR sin conexión:

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

Nota

El nombre del grupo de recursos "centos7, nombre de máquina virtual "cent7" y --copy-disk-name "repairdiskcopy" son ejemplos y los valores deben cambiar en consecuencia.

El script de reparación de fstab realizará una copia de seguridad del archivo original y quitará las líneas del archivo /etcetera/fstab que no son necesarios para arrancar un sistema. Después de iniciar correctamente el sistema operativo, vuelva a editar fstab y corrija los errores que no permitieron reiniciar el sistema antes.

Como alternativa, una vez creada una máquina virtual de reparación, los cambios también se pueden implementar iniciando sesión manualmente en la máquina virtual de reparación, montando la copia adjunta del disco del sistema operativo y realizando cambios en su archivo fstab. Siga estos pasos:

  • Cree una máquina virtual de reparación mediante el az vm repair create comando .
  • Para montar y chroot en los sistemas de archivos del disco del sistema operativo conectado en una máquina virtual de rescate, siga las instrucciones detalladas de chroot.
  • A continuación, siga los mismos pasos de solución de problemas de fstab anteriores.
  • Una vez aplicados los cambios, az vm repair restore se puede usar el comando para realizar el intercambio automático de discos del sistema operativo con la máquina virtual original.

Usar el método manual

Si la consola serie y el enfoque ALAR no son posibles o se produce un error, la reparación debe realizarse manualmente. Siga estos pasos para conectar manualmente el disco del sistema operativo a una máquina virtual de recuperación y volver a intercambiar el disco del sistema operativo a la máquina virtual original:

Una vez que el disco del sistema operativo está conectado correctamente a la máquina virtual de recuperación, siga las instrucciones detalladas de chroot para montar y chroot en los sistemas de archivos del disco del sistema operativo conectado. A continuación, implemente los pasos de solución de problemas de fstab para realizar los cambios adecuados en el archivo fstab del disco del sistema operativo problemático.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.