Compartir a través de


Solucionar problemas de arranque de máquinas virtuales Linux debido a errores 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 problemas de arranque y proporciona instrucciones para solucionar problemas.

Estas son algunas de las razones comunes que pueden provocar problemas de arranque de máquina virtual (VM) debido a errores de configuración de fstab:

  • Se utiliza el nombre tradicional del sistema de archivos en lugar del Identificador Único Universal (UUID) del sistema de archivos.
  • Se utiliza un UUID incorrecto.
  • Existe una entrada para un dispositivo no conectado sin la nofail opción dentro de la configuración de fstab.
  • Entrada incorrecta dentro de la configuración de fstab.

Identificar problemas de fstab

Compruebe el estado de arranque actual de la máquina virtual en el registro serie en la hoja Diagnósticos de arranque de Azure Portal. La VM estará en Modo de Emergencia. Verá entradas de registro que se asemejan al siguiente ejemplo que lleva al estado de 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 fallo de dependencia para el punto de montaje del sistema de archivos diferirá en función de los nombres utilizados.

Solución

Hay dos maneras de resolver este problema:

Reparar la VM en línea

Utilizar 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 usado 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 para solucionar problemas de Fstab
  1. Una vez que la máquina virtual ha arrancado en modo de usuario único. Utilice su editor de texto favorito para abrir el archivo fstab.

    vi /etc/fstab
    
  2. Revise los sistemas de archivos listados en /etc/fstab. Cada línea del archivo fstab indica un sistema de archivos que se monta cuando se inicia la máquina virtual. Para obtener más información sobre la sintaxis del archivo fstab, ejecute el comando man fstab. Para solucionar un fallo de arranque, revise la entrada del sistema de archivos que falló al 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 tabuladores o espacios. Las líneas en blanco se ignoran. 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 serán procesadas. Se recomienda comentar las líneas fstab sobre las que no está seguro en lugar de quitarlas.

    • 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 comando man blkid. Ejemplo de la entrada UUID en el archivo fstab:

      UUID=<UUID number here>  /data      xfs    defaults,nofail 0  0
      
    • Utilice la opción nofail 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 las particiones de las entradas correspondientes. La opción nofail ayuda a garantizar que la VM se inicie incluso si el sistema de archivos está dañado o si no existe al inicio.

  3. Guarde los cambios en el archivo fstab.

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

  5. Una vez comprobada la sintaxis y las entradas, reinicie la máquina virtual mediante el siguiente comando:

    reboot -f
    
  6. Si el comentario o la corrección de las entradas se ha realizado correctamente, el sistema debería llegar a un prompt bash en el portal. Compruebe si puede conectarse a la máquina virtual.

    Nota:

    También puede usar el ctrl+x comando que también reiniciará 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 adoptar un enfoque fuera de línea:

Utilice Azure Linux Auto Repair (ALAR)

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

Los scripts ALAR usan la extensión repair-button de reparación para corregir problemas de fstab especificando --button-command fstab. Este parámetro desencadena la recuperación automatizada. Implemente los pasos siguientes para automatizar los errores de fstab mediante el enfoque ALAR sin conexión:

az extension add -n vm-repair
az extension update -n vm-repair
az vm repair repair-button --button-command 'fstab' --verbose --resource-group $RGNAME --name $VMNAME

Nota:

Reemplace el nombre del grupo de recursos y el nombre $RGTEST$VMNAME de la máquina virtual en consecuencia.

  • El script de máquina virtual de reparación, junto con el script ALAR, creará temporalmente un grupo de recursos, una máquina virtual de reparación y una copia del disco del sistema operativo de la máquina virtual afectada. Realiza una copia de seguridad del archivo original /etc/fstab y lo modifica quitando o comentando entradas del sistema de archivos de datos que no son necesarias para arrancar el sistema.
  • Después de que el sistema operativo se inicie correctamente, revise y edite el /etc/fstab archivo para corregir los errores que podrían haber impedido un reinicio adecuado.
  • Por último, el repair-button script eliminará automáticamente el grupo de recursos que contiene la máquina virtual de reparación.

Usar el método manual

Si no se pueden realizar los enfoques de la consola serie y ALAR, 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 e intercambiar el disco del sistema operativo con la máquina virtual original:

Una vez que el disco del SO se haya conectado correctamente a la máquina virtual de recuperación, siga las instrucciones detalladas de chroot para montar y hacer chroot a los sistemas de archivos del disco del SO 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.