Solucionar problemas de una VM Linux adjuntando el disco del sistema operativo a una VM de recuperación mediante el portal de Azure
Se aplica a: ✔️ Máquinas virtuales Linux
Si su máquina virtual Linux (VM) se encuentra con un error de arranque o de disco, es posible que tenga que realizar los pasos de solución de problemas en el propio disco duro virtual. Un ejemplo común sería una entrada no válida en /etc/fstab
que impide que la VM pueda arrancar correctamente. Este artículo detalla cómo utilizar el portal de Azure para conectar su disco duro virtual a otra máquina virtual Linux para corregir cualquier error y, a continuación, volver a crear su máquina virtual original.
Introducción al proceso de recuperación
El proceso de solución de problemas es el siguiente:
- Detenga la máquina virtual afectada.
- Tome una instantánea para el disco del sistema operativo de la máquina virtual.
- Cree un disco duro virtual a partir de la instantánea.
- Conecte y monte el disco duro virtual en otra máquina virtual Linux para solucionar problemas.
- Conéctese a la máquina virtual de solución de problemas. Editar archivos o ejecutar cualquier herramienta para solucionar problemas en el disco duro virtual original.
- Desmonte y separe el disco duro virtual de la máquina virtual de solución de problemas.
- Cambia el disco del sistema operativo por el de la máquina virtual.
Nota:
Este artículo no se aplica a la VM con disco no gestionado. Para un disco Linux cifrado, consulte Desbloqueo de un disco Linux cifrado para reparación sin conexión.
Determinación de los problemas de arranque
Examine los diagnósticos de arranque y la captura de pantalla de la VM para determinar por qué su VM no puede arrancar correctamente. Un ejemplo común sería una entrada no válida en /etc/fstab
, o un disco duro virtual subyacente que se elimina o se mueve.
Seleccione su máquina virtual en el portal y desplácese hasta la sección Soporte técnico y solución de problemas. Haga clic en Diagnóstico de arranque para ver los mensajes de consola transmitidos desde su máquina virtual. Revise los registros de la consola para ver si puede determinar por qué la máquina virtual tiene un problema. El siguiente ejemplo muestra una máquina virtual atascada en modo de mantenimiento que requiere interacción manual:
También puede hacer clic en Captura de pantalla en la parte superior del registro de diagnóstico de arranque para descargar una captura de la pantalla de la VM.
Tomar una instantánea del Disco del Sistema Operativo
Una instantánea es una copia completa y de sólo lectura de un disco duro virtual (VHD). Le recomendamos que apague completamente la máquina virtual antes de tomar una instantánea, para borrar cualquier proceso que esté en curso. Para tomar una instantánea de un disco OS, siga estos pasos:
Vaya a Azure Portal. Seleccione Máquinas virtuales en la barra lateral y, a continuación, seleccione la máquina virtual que tiene problemas.
En el panel izquierdo, seleccione Discos y, a continuación, seleccione el nombre del disco del SO.
En la página Vista general del disco OS y, a continuación, seleccione Crear instantánea.
Cree una instantánea en la misma ubicación que el disco del sistema operativo.
Creación de un disco a partir de la instantánea
Para crear un disco a partir de la instantánea, siga estos pasos:
Usar Azure Portal
En Azure Portal, vaya a la instantánea que desea usar para crear un disco.
En la página Información general , seleccione Crear disco.
Siga las instrucciones para completar el proceso de creación del disco.
Uso de CLI de Azure
Seleccione Cloud Shell en el portal de Azure.
Ejecute los siguientes comandos de PowerShell para crear un disco gestionado a partir de la instantánea. Debe sustituir estos nombres de muestra por los nombres apropiados.
#Provide the name of your resource group $resourceGroupName ='myResourceGroup' #Provide the name of the snapshot that will be used to create Managed Disks $snapshotName = 'mySnapshot' #Provide the name of theManaged Disk $diskName = 'newOSDisk' #Provide the size of the disks in GB. It should be greater than the VHD file size. In this sample, the size of the snapshot is 127 GB. So we set the disk size to 128 GB. $diskSize = '128' #Provide the storage type for Managed Disk. Premium_LRS or Standard_LRS. $storageType = 'Standard_LRS' #Provide the Azure region (e.g. westus) where Managed Disks will be located. #This location should be same as the snapshot location #Get all the Azure location using command below: #Get-AzLocation $location = 'westus' $snapshot = Get-AzSnapshot -ResourceGroupName $resourceGroupName -SnapshotName $snapshotName $diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id New-AzDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName -DiskName $diskName
Si los comandos se ejecutan correctamente, verá el nuevo disco en el grupo de recursos que proporcionó.
Adjuntar disco a otra máquina virtual
En los siguientes pasos, utilizará otra máquina virtual para solucionar problemas. Después de conectar el disco a la máquina virtual de resolución de problemas, puede examinar y editar el contenido del disco. Este proceso le permite corregir cualquier error de configuración o revisar archivos de registro adicionales de la aplicación o del sistema. Para conectar el disco a otra máquina virtual, siga estos pasos:
Seleccione su grupo de recursos en el portal y, a continuación, seleccione su máquina virtual de solución de problemas. Seleccione Discos, seleccione Editar y, a continuación, haga clic en Añadir disco de datos:
En la lista Discos de datos, seleccione el disco OS de la VM que identificó. Si no ve el disco del SO, asegúrese de que la máquina virtual de resolución de problemas y el disco del SO se encuentran en la misma región (ubicación).
Seleccione Guardar para aplicar los cambios.
Montar el disco de datos adjunto
Nota:
Los siguientes ejemplos detallan los pasos necesarios en una máquina virtual Ubuntu. Si utiliza una distribución de Linux diferente, como Red Hat Enterprise Linux o SUSE, las ubicaciones de los archivos de registro y los comandos mount
pueden ser un poco diferentes. Consulte la documentación de su distribución específica para conocer los cambios apropiados en los comandos.
Establezca una conexión SSH a la VM de solución de problemas con las credenciales apropiadas. Si este disco es el primer disco de datos conectado a su VM de solución de problemas, es probable que esté conectado a
/dev/sdc
. Utilicedmseg
para listar los discos conectados:dmesg | grep SCSI
El resultado es similar al siguiente ejemplo:
[ 0.294784] SCSI subsystem initialized [ 0.573458] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 7.110271] sd 2:0:0:0: [sda] Attached SCSI disk [ 8.079653] sd 3:0:1:0: [sdb] Attached SCSI disk [ 1828.162306] sd 5:0:0:0: [sdc] Attached SCSI disk
En el ejemplo anterior, el disco de SO está en
/dev/sda
y el disco temporal proporcionado para cada VM está en/dev/sdb
. Si tuvieras varios discos de datos, deberían estar en/dev/sdd
,/dev/sde
, etc.Cree un directorio para montar su disco duro virtual existente. El siguiente ejemplo crea un directorio llamado
troubleshootingdisk
:sudo mkdir /mnt/troubleshootingdisk
Si tiene varias particiones en el disco duro virtual existente, monte la partición necesaria. El siguiente ejemplo monta la primera partición primaria en
/dev/sdc1
:sudo mount /dev/sdc1 /mnt/troubleshootingdisk
Nota:
La mejor práctica es montar discos de datos en máquinas virtuales en Azure utilizando el identificador único universal (UUID) del disco duro virtual. Para este breve escenario de solución de problemas, no es necesario montar el disco duro virtual utilizando el UUID. Sin embargo, en condiciones normales de uso, la edición de
/etc/fstab
para montar discos duros virtuales utilizando el nombre del dispositivo en lugar del UUID puede hacer que la máquina virtual no arranque.
Solucionar problemas en el disco duro virtual original
Una vez montado el disco virtual existente, puede realizar todos los pasos de mantenimiento y solución de problemas según sea necesario. Una vez que se han resuelto los problemas, continúe con los pasos siguientes.
Desmontar y separar el disco duro virtual original
Una vez resueltos los errores, separe el disco duro virtual existente de su máquina virtual de solución de problemas. No se podrá usar el disco virtual en ninguna otra VM hasta que se libere la concesión que conecta el disco virtual a la VM de solución de problemas.
Desde la sesión SSH a su VM de solución de problemas, desmonte el disco duro virtual existente. Salga primero del directorio principal de su punto de montaje:
cd /
Ahora desmonte el disco duro virtual existente. El siguiente ejemplo desmonta el dispositivo en
/dev/sdc1
:sudo umount /dev/sdc1
Ahora desconecte el disco duro virtual de la máquina virtual. Seleccione su máquina virtual en el portal y haga clic en Discos. Seleccione el disco duro virtual existente y, a continuación, haga clic en Desvincular:
Espere hasta que la máquina virtual haya desconectado correctamente el disco de datos antes de continuar.
Cambiar el disco del sistema operativo por el de la máquina virtual
El portal Azure ahora permite cambiar el disco del sistema operativo de la máquina virtual. Para ello, siga estos pasos:
Vaya a Azure Portal. Seleccione Máquinas virtuales en la barra lateral y, a continuación, seleccione la máquina virtual que tiene problemas.
En el panel izquierdo, seleccione Discos y, a continuación, Intercambiar disco OS.
Elija el nuevo disco que ha reparado y, a continuación, escriba el nombre de la máquina virtual para confirmar el cambio. Si no ve el disco en la lista, espere de 10 a 15 minutos después de desconectar el disco de la máquina virtual de solución de problemas. Asegúrate también de que el disco está en la misma ubicación que la máquina virtual.
Seleccione Aceptar.
Pasos siguientes
Si tiene problemas para conectarse a la VM, consulte Solución de problemas de conexiones SSH a una VM de Azure. Para problemas relacionados con el acceso a aplicaciones que se ejecutan en su VM, consulte Solucionar problemas de conectividad de aplicaciones en una máquina virtual Linux.
Para más información sobre el uso de Resource Manager, consulte Información general de Azure Resource Manager.
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.