Errores de cuota
Si recibes un error de cuota cuando inicias tu VM, significa que es posible que hayas alcanzado el valor de cuota para los recursos de tu proyecto. Para comprender el mensaje de error, identifica qué valor de cuota se superó y cómo solucionar el problema. Consulta la página Soluciona errores de cuota.
Discos de arranque
Si tu instancia no se inicia y no puedes conectarte a ella o acceder a través de la consola en serie interactiva, identifica el motivo por el que el disco de arranque no completa el proceso de inicio y arranque.
Identifica el motivo por el que el disco de arranque no se inicia
Verifica que el disco de arranque no esté lleno.
Si el disco de arranque está lleno por completo y el sistema operativo no admite el cambio de tamaño automático, no podrás conectarte a la instancia. Debes crear una nueva instancia y volver a crear el disco de arranque. Para obtener más información, consulta Recupera VM o discos de arranque completos.
Examina el resultado del puerto en serie de la instancia de máquina virtual.
El BIOS, el bootloader y el kernel de una instancia imprimirán sus mensajes de depuración en el resultado del puerto en serie de la instancia y proporcionarán información valiosa sobre los errores o problemas que experimentó la instancia. Si habilitas el registro de salida del puerto en serie en Cloud Logging, puedes acceder a esta información aunque la instancia no esté en ejecución.
Habilita el acceso interactivo a la consola en serie.
Puedes habilitar el acceso interactivo a la consola en serie de una instancia para poder acceder y depurar problemas de inicio desde la instancia, sin necesidad de que la instancia se inicie por completo. Para obtener más información, consulta Soluciona problemas con la consola en serie.
Verifica que no esté en curso la clonación del disco de arranque
Si la clonación del disco de arranque está en curso, no puedes iniciar la VM y verás un error similar al siguiente.
Failed to start example-vm: The instance resource 'projects/example-project/zones/us-central1-b/instances/example-vm' is already being used by 'projects/example-project/zones/us-central1-b/disks/clone'Espera a que se complete la clonación y, luego, inicia la VM.
Verifica que no esté en curso la instantánea del disco de arranque
Si una instantánea del disco de arranque está en curso, no puedes iniciar la VM y verás un error similar al siguiente:
The instance resource 'projects/example-project/zones/asia-east1-b/instances/example-vm' is already being used by 'projects/example-project/global/snapshots/example-vm-prod-asia-east1-b-abc'Espera a que se complete la instantánea y, luego, inicia la VM.
Verifica que el disco tenga un sistema de archivos válido.
Si el sistema de archivos está dañado o no es válido, no podrás iniciar la instancia. Valida el sistema de archivos del disco:
Desconecta el disco en cuestión de cualquier instancia a la que esté conectado, si corresponde:
gcloud compute instances delete old-instance --keep-disks boot
Inicia una nueva instancia con la última imagen proporcionada por Google:
gcloud compute instances create debug-instance
Conecta el disco como uno que no sea de arranque, pero no lo actives. Reemplaza
DISKcon el nombre del disco que no arrancará. Ten en cuenta el nombre del dispositivo que identifica el disco en la instancia:gcloud compute instances attach-disk debug-instance \ --disk DISK \ --device-name debug-diskConéctate a la instancia:
gcloud compute ssh debug-instance
Busca la partición raíz del disco, que se identifica con la notación
part1. En este caso, la partición raíz del disco está en/dev/sdb1:ls -l /dev/disk/by-id total 0 lrwxrwxrwx 1 root root 9 Jan 22 17:09 google-debug-disk -> ../../sdb lrwxrwxrwx 1 root root 10 Jan 22 17:09 google-debug-disk-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Jan 22 17:02 google-persistent-disk-0 -> ../../sda lrwxrwxrwx 1 root root 10 Jan 22 17:02 google-persistent-disk-0-part1 -> ../../sda1 lrwxrwxrwx 1 root root 9 Jan 22 17:09 scsi-0Google_PersistentDisk_debug-disk -> ../../sdb lrwxrwxrwx 1 root root 10 Jan 22 17:09 scsi-0Google_PersistentDisk_debug-disk-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 9 Jan 22 17:02 scsi-0Google_PersistentDisk_persistent-disk-0 -> ../../sda lrwxrwxrwx 1 root root 10 Jan 22 17:02 scsi-0Google_PersistentDisk_persistent-disk-0-part1 -> ../../sda1Ejecuta una verificación del sistema de archivos en la partición raíz. Para ello, completa los siguientes pasos:
Ejecuta
lsblk -fpara identificar el tipo de sistema de archivos de las particiones del disco:sudo lsblk -f
El resultado es similar a este:
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sdb └─sdb1 xfs 2e4f7b4e-9b0a-4b7c-8b8a-9b0a4b7c8b8c sda └─sda1 ext4 0e4f7b4e-9b0a-4b7c-8b8a-9b0a4b7c8b8a
Según el tipo de sistema de archivos, ejecuta uno de los siguientes comandos para verificar si hay errores en el sistema de archivos:
ext o vfat
Si el sistema de archivos de la partición raíz es
ext2,ext3,ext4ovfat, ejecuta el comandofsckde la siguiente manera:sudo fsck DEVICE_NAME
Reemplaza
DEVICE_NAMEpor el nombre del dispositivo de tu partición raíz, por ejemplo,/dev/sdb1.Si
fsckmuestra un error comoBad magic number in super-block, indica que tu sistema de archivos está dañado.xfs
Si el sistema de archivos de la partición raíz es
xfs, usa la herramientaxfs_repair.xfs_repairno funciona en un sistema de archivos activado. Antes de ejecutarxfs_repair, asegúrate de que la partición esté desactivada. Si la partición está activada, ejecuta el comandoumountpara desactivarla. ReemplazaDEVICE_NAMEpor el nombre del dispositivo de tu partición raíz, por ejemplo,/dev/sdb1.sudo umount DEVICE_NAME
Para analizar el sistema de archivos en busca de errores, ejecuta
xfs_repairen modo de ejecución de prueba con la opción-n.sudo xfs_repair -n DEVICE_NAME
- Si no se encuentran errores o si
xfs_repair -nse completa correctamente, esto sugiere que no hay daños. Debes investigar otras causas de la falla de inicio de la VM. - Si se informan errores o si
xfs_repair -nfalla con un mensaje comoIf you wish to clear the log, mount the file system with the norecovery option, continúa con el siguiente paso para intentar una reparación.
- Si no se encuentran errores o si
Para reparar el sistema de archivos, ejecuta el comando
xfs_repairsin la opción-n.sudo xfs_repair DEVICE_NAME
Si
xfs_repairfalla y sugiere usar la opción-L, ejecutaxfs_repaircon la opción-Lpara borrar el registro y volver a intentar la reparación del sistema de archivos.sudo xfs_repair -L DEVICE_NAME
Activa el sistema de archivos:
sudo mkdir MOUNT_POINT
sudo mount DEVICE_NAME MOUNT_POINT
Reemplaza lo siguiente:
DEVICE_NAME: el nombre del dispositivo de tu partición raíz, por ejemplo,/dev/sdb1.MOUNT_POINT: el directorio en el que deseas activar el disco, por ejemplo,/mydisk.
Verifica que el disco tenga archivos kernel:
ls MOUNT_POINT/boot/vmlinuz-*
El resultado es similar a este:
MOUNT_POINT/boot/vmlinuz-3.2.0-4-amd64
Comprueba que el disco tenga un registro de arranque principal (MBR) válido.
Ejecuta el siguiente comando en la instancia de depuración que conectó el disco de arranque persistente:
sudo parted DISK_DEVICE print
Reemplaza
DISK_DEVICEpor el nombre del dispositivo del disco de arranque persistente que deseas verificar, por ejemplo,/dev/sdb1.Si el MBR es válido, se incluye información sobre el sistema de archivos:
Disk DISK_DEVICE: 10.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 2097kB 10.7GB 10.7GB primary ext4 boot
Corrige el problema de arranque
Después de identificar dónde falla el proceso de inicio y arranque, puedes corregir el problema mediante una de las siguientes acciones:
Usa la imagen importada para crear un disco de arranque independiente
Vuelve a empezar y, luego, vuelve a importar la imagen del disco de arranque
Crea un disco de arranque independiente
Activa tu imagen importada en un disco secundario que esté conectado a una instancia de VM temporal. Usa la Google Cloud consola o la gcloud CLI para crear un disco independiente a partir de la imagen que subiste y crea una VM temporal con el disco independiente conectado. Puedes usar esta instancia para modificar archivos en el disco independiente y solucionar problemas que hacen que la imagen no se inicie.
Console
Crea un disco independiente a partir de la imagen de disco de arranque que importaste. Como alternativa, puedes separar un disco de arranque de una instancia y crear la instancia con ese disco de arranque separado.
- En la Google Cloud consola, ve a la página Discos.
- Haz clic en Crear disco.
-
En la página Crear un disco nuevo,
especifica los siguientes atributos:
-
Zona:
Select a zone near you. You must use this same zone when you create your temporary instance. - Tipo de disco de origen: Imagen
- Imagen de origen: Especifica el nombre de la imagen del disco de arranque que importaste.
-
Zona:
- Para crear el disco, haz clic en Crear.
Crea una instancia temporal a la que puedas conectar el disco independiente y configura el bootloader para que funcione en un entorno de Google Cloud consola.
En la Google Cloud consola, ve a la página Instancias de VM.
Haz clic en el botón Crear instancia.
En la página Crear una instancia, especifica un nombre de instancia y una zona para ubicarla. La zona debe ser la misma en la que creaste el disco independiente.
Expande la sección Administración, seguridad, discos, herramientas de redes, instancia única.
En la pestaña Discos de la sección Discos adicionales, haz clic en Adjuntar disco existente. Aparecerá una nueva sección.
En la sección Disco, selecciona el disco independiente que creaste en la lista desplegable. Esto adjunta el disco independiente a la instancia para que puedas activarlo y modificar su contenido más adelante.
Haz clic en Listo para terminar de adjuntar el disco.
Haz clic en el botón Crear para crear la instancia.
gcloud
Crea un disco independiente a partir de la imagen de disco de arranque que importaste. Como alternativa, puedes desconectar un disco de arranque de una instancia y crear la instancia con ese disco de arranque separado.
gcloud compute disks create DISK_NAME \
--zone=ZONE \
--image=IMAGE_NAME
Reemplaza lo siguiente:
DISK_NAME: Es el nombre del nuevo disco independiente: Es una zona cercana a ti Debes usar esta misma zona cuando crees la instancia temporal.ZONEIMAGE_NAME: Es el nombre de la imagen del disco de arranque que importaste
Crea una instancia temporal a la que puedas conectar el disco independiente y configura el bootloader para que funcione en un entorno de Google Cloud consola.
gcloud compute instances create INSTANCE_NAME \
--zone=ZONE \
--disk name=DISK_NAME
Reemplaza lo siguiente:
INSTANCE_NAME: Es un nombre único para tu instanciaZONE: Es la zona en la que creaste el disco independienteDISK_NAME: Es el nombre del disco independiente que creaste a partir de la imagen del disco de arranque importada
Después de crear la instancia con el disco independiente adjunto, tendrás un entorno virtual en el que podrás modificar el bootloader de la imagen de disco de arranque original.
Configura el disco de arranque
Conéctate a la instancia, activa el disco independiente y configura el bootloader para que se inicie correctamente en Compute Engine.
- Conéctate a la instancia temporal
mediante la conexión SSH en el navegador o el
comando
gcloud compute ssh. Usa el comando
blkidpara identificar el disco que deseas modificar y las particiones que necesitas activar. En este ejemplo,/dev/sdbes el disco que importaste.lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 10G 0 disk └─sda1 8:1 0 10G 0 part / sdb 8:16 0 100G 0 disk ├─sdb1 8:17 0 96G 0 part ├─sdb2 8:18 0 1K 0 part └─sdb5 8:21 0 4G 0 part
Activa la partición raíz desde el disco independiente al directorio
/tmp. En este ejemplo,/dev/sdb1es la partición raíz y las demás no requieren ninguna modificación. Es posible que tu esquema de partición requiera que actives varias particiones para acceder a todos los archivos que debes cambiar.sudo mount DEVICE_NAME /tmp
Reemplaza
DEVICE_NAMEpor el nombre del dispositivo de la partición raíz que deseas activar, por ejemplo,/dev/sdb1.Edita archivos que puedan hacer que el disco falle en el proceso de arranque. Para obtener más información, consulta las instrucciones de configuración del bootloader.
Desactiva el disco de arranque de la instancia temporal.
sudo umount /tmp
Usa el disco de arranque
Cuando termines de configurar este disco, desconéctalo y úsalo como disco de arranque para una nueva instancia.
Console
Desconecta el disco independiente de la instancia temporal.
En la Google Cloud consola, ve a la página Instancias de VM.
En la lista de instancias, haz clic en el nombre de la instancia temporal donde modificaste el disco de arranque independiente. Se abre la página de detalles de la instancia.
En la parte superior de esta página, haz clic en Editar.
En Discos adicionales, haz clic en la X junto al disco independiente para indicar que deseas desconectarlo de la instancia temporal.
Haz clic en Guardar para guardar los cambios.
Usa el disco independiente desconectado para crear una instancia.
En la Google Cloud consola, ve a la página Instancias de VM.
Haz clic en el botón Crear instancia.
En la página Crear una instancia, especifica un nombre de instancia y una zona para ubicarla. La zona debe ser la misma donde creaste tu disco independiente.
En Disco de arranque, haz clic en Cambiar para comenzar a configurar el disco de arranque.
En la pestaña Discos existentes, elige el disco de arranque independiente para usarlo como el disco de arranque de esta nueva instancia.
Haz clic en el botón Crear para crear la instancia.
gcloud
Desconecta el disco independiente de la instancia temporal.
gcloud compute instances detach-disk INSTANCE_NAME \
--disk name=DISK_NAME
Reemplaza lo siguiente:
INSTANCE_NAME: Un nombre único para tu instanciaDISK_NAME: Es el nombre del nuevo disco independiente
Usa el disco independiente desconectado para crear una instancia.
gcloud compute instances create INSTANCE_NAME \
--zone ZONE \
--disk name=DISK_NAME,boot=yes
Reemplaza lo siguiente:
INSTANCE_NAME: Es un nombre único para tu instanciaZONE: Es la zona en la que se encuentra el disco independienteDISK_NAME: Es el nombre del disco independiente que creaste a partir de la imagen del disco de arranque importada
Prueba la instancia que creaste con el disco de arranque modificado. Si aún no puedes conectarte a la instancia, vuelve a ver el resultado del puerto en serie para identificar dónde falla el proceso de inicio. Repite el proceso de solución de problemas hasta que corrijas los problemas de la imagen de disco de arranque.