Si, por algún motivo, no se puede acceder a la VM de Linux, puedes intentar recuperarla mediante los siguientes pasos.
Roles obligatorios
Para obtener los permisos que necesitas a fin de recuperar una VM, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
-
Administrador de instancias de Compute (v1) (
roles/compute.instanceAdmin.v1) -
VMs que usan una cuenta de servicio:
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para recuperar una VM. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para recuperar una VM:
-
compute.instances.createen el proyecto -
compute.disks.createen el proyecto -
compute.instances.geten el proyecto -
compute.disks.createSnapshoten discos -
compute.instances.attachDisken una VM nueva -
compute.disks.useen el disco -
compute.instances.starten una VM nueva e inaccesible -
compute.instances.stopen una VM nueva e inaccesible
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Recupera una VM
Si no puedes conectarte a la VM o el disco de arranque está lleno, debes crear una VM temporal para recuperar la VM inaccesible.
- Detén la VM inaccesible (opcional).
- Crea una instantánea desde el disco de arranque de la VM inaccesible. Si el sistema de archivos raíz está dividido en varios discos, debes tomar una instantánea de cada disco.
- Crea una VM temporal con una imagen pública más cercana al SO de la VM inaccesible. En algunos casos, una política de imágenes confiables puede impedir que crees discos de arranque a partir de imágenes públicas. En esos casos, debes pedirle a un administrador que quite temporalmente esta restricción antes de que puedas crear una VM de recuperación. Consulta Establece restricciones de acceso a imágenes para obtener más información.
Para cada una de las instantáneas de los discos de arranque de la VM inaccesible que creaste anteriormente, crea un disco nuevo a partir de la instantánea y conéctalo a la VM de recuperación siguiendo estos pasos:
En la Google Cloud consola de, ve a la página Instancias de VM.
Haz clic en el nombre de la VM temporal que creaste.
Haz clic en Editar.
En Discos adicionales, haz clic en Agregar disco nuevo y, luego, haz lo siguiente:
- Agrega el nombre del disco, como my-recovery-disk
- En Tipo de fuente, selecciona la pestaña Instantánea.
- En el menú desplegable Instantánea de origen, selecciona la instantánea de la VM de origen que creaste antes en estos pasos.
- Haz clic en Listo.
Haz clic en Guardar.
Conéctate a la VM temporal mediante SSH.
Para identificar el nombre de cada uno de los discos que conectaste anteriormente a la VM, ejecuta el siguiente comando:
lsblk -d -o NAME,SERIAL
El resultado es similar a este:
NAME SERIAL sda rescue-vm sdb my-recovery-disk
En este ejemplo,
rescue-vmes el disco de arranque de la VM de recuperación ymy-recovery-diskes el disco de arranque de la instantánea de la VM inaccesible VM. Toma nota delNAMEde la VM inaccesible para usarla en el siguiente paso.Para cada uno de los discos que conectaste anteriormente a la VM, haz lo siguiente:
Para identificar el sistema de archivos de cada partición, ejecuta el siguiente comando:
fdisk -l /dev/NAME -o Device,Size,Type
Reemplaza
NAMEpor el nombre del disco de arranque de la VM inaccesible del paso anterior. En este ejemplo, el nombre seríasdb.El resultado es similar a este:
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk model: PersistentDisk Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disklabel type: gpt Disk identifier: B31430F1-F041-4555-96B9-B2F43DC057AD Device Size Type /dev/sdb1 2M BIOS boot /dev/sdb2 20M EFI System /dev/sdb3 10G Linux filesystem
En la columna
Type, se muestra el sistema de archivos de cada partición. Si falta el tipo de sistema de archivos para alguna partición, ejecuta el siguiente comando:file -sL /dev/PARTITION_NAME
Reemplaza
NAMEpor el nombre de la partición.El resultado difiere según el tipo de sistema de archivos:
Sin sistema de archivos: Si el resultado solo muestra
data, la partición no contiene un sistema de archivos. Resultado de ejemplo:/dev/sdb1: data
Sistema de archivos EFI: Si el resultado describe un sector de arranque DOS/MBR, la partición tiene un sistema de archivos EFI. Resultado de ejemplo:
dev/sdb2: DOS/MBR boot sector, code offset 0x3c+2, OEM-ID "mkfs.fat", sectors/cluster 4, reserved sectors 4, root entries 512, sectors 40960 (volumes <=32 MB), Media descriptor 0xf8, sectors/FAT 40, sectors/ track 32, heads 64, serial number 0xf2af2664, label: "EFI ", FAT (16 bit)
Sistema de archivos Linux: Si el resultado describe datos del sistema de archivos, la partición es un sistema de archivos Linux. Resultado de ejemplo:
/dev/sdb3: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
Toma nota del nombre de la partición del sistema de archivos Linux.
Crea un punto de activación en
/rescue:sudo mkdir /rescue
Activa la partición del sistema de archivos Linux en
/rescue:sudo mount PARTITION_NAME /rescue
Reemplaza PARTITION_NAME por el nombre del sistema de archivos Linux que anotaste anteriormente.
Si deseas modificar el directorio raíz del sistema de archivos con el comando
chroot, también debes activar el sistema de archivos y los dispositivos virtuales ejecutando los siguientes comandos:sudo mount -t proc /proc /rescue/proc sudo mount -t sysfs /sys /rescue/sys sudo mount -o bind /dev /rescue/dev sudo mount -o bind /dev/pts /rescue/dev/pts sudo mount -o bind /run /rescue/run
El sistema de archivos del disco de arranque inaccesible ahora está activado en
/rescue. Puedes navegar por el sistema de archivos, cambiar los archivos de configuración, solucionar problemas o recuperar los datos.
Revierte los cambios y, luego, inicia la VM inaccesible
Una vez que se soluciona el problema o se recuperan los datos, debes recuperar la VM real. Sigue estos pasos para restablecer la VM original:
Desactiva el disco adicional que está activado en
/rescueen la VM temporal:cd ~ sudo umount /rescue
En la Google Cloud consola de, ve a la página Instancias de VM.
Selecciona la VM temporal que creaste.
Haz clic en Editar.
En Discos adicionales, haz clic en en el disco que creaste en pasos anteriores para desconectar el disco adicional de la VM temporal.
Haz clic en Guardar.
Ve a la página Instancias de VM en la Google Cloud consola de.
Si la VM inaccesible aún se está ejecutando, detenla.
Haz clic en el nombre de la VM que acabas de detener y, luego, en Editar.
En Disco de arranque, haz clic en Desconectar disco de libro para desconectar el disco de arranque saliente de la VM inaccesible.
A continuación, haz clic en CONFIGURAR DISK BOOT para conectar el disco que creaste y corregiste antes en Recupera una VM en esta página.
- En la sección Disco de arranque, haz clic en la pestaña Discos existentes.
- En la lista desplegable, selecciona el disco que creaste en la sección anterior, por ejemplo,
my-recovery-disk. - Haz clic en Seleccionar y, luego, en Guardar.
Ahora deberías poder conectarte a la VM con SSH.