Ce document contient des informations de dépannage concernant les problèmes de démarrage de VM liés aux erreurs de quota et aux disques de démarrage.
Erreurs de quota
Si vous recevez une erreur de quota lorsque vous essayez de démarrer une instance, vous devez demander un quota de processeurs supplémentaires. Pour en savoir plus, consultez la section Instances de VM du document Quotas de ressources.
Disques de démarrage
Si votre instance ne démarre pas et que vous ne pouvez pas vous y connecter (y compris en passant par la console série interactive), identifiez la raison pour laquelle le disque de démarrage ne termine pas le processus de démarrage.
Identifier la raison pour laquelle le disque de démarrage ne fonctionne pas
Vérifiez que le disque de démarrage n'est pas saturé.
Si votre disque de démarrage est complètement saturé et que votre système d'exploitation n'accepte pas le redimensionnement automatique, vous ne pourrez pas vous connecter à votre instance. Vous devez créer une instance et recréer le disque de démarrage. Pour en savoir plus, consultez la section Récupérer des VM ou des disques de démarrage complets.
Vérifiez la sortie du port série de votre instance de machine virtuelle.
Le BIOS, le bootloader et le noyau d'une instance impriment leurs messages de débogage sur la sortie du port série de l'instance, ce qui représente une source d'informations précieuse sur les erreurs ou problèmes rencontrés par l'instance. Si vous activez la journalisation des données en sortie du port série sur Cloud Logging, vous pouvez accéder à ces informations même lorsque votre instance n'est pas en cours d'exécution.
Activez l'accès interactif à la console série.
Vous pouvez activer l'accès interactif à la console série d'une instance afin de pouvoir vous connecter et résoudre les problèmes de démarrage à partir de l'instance sans nécessiter son démarrage complet. Pour en savoir plus, consultez la section Dépannage à l'aide de la console série.
Vérifiez que le clonage du disque de démarrage n'est pas en cours
Vous ne pourrez pas démarrer la VM si le clonage du disque de démarrage est en cours, et une erreur semblable à celle-ci va s'afficher :
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'
Attendez la fin du clonage, puis démarrez la VM.
Vérifiez qu'un instantané du disque de démarrage n'est pas en cours de création
Vous ne pourrez pas démarrer la VM si un instantané du disque de démarrage est en cours de création, et une erreur semblable à celle-ci va s'afficher :
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'
Attendez la fin de la création de l'instantané, puis démarrez la VM.
Vérifiez que le disque dispose d'un système de fichiers valide.
Si le système de fichiers est corrompu ou présente d'autres problèmes, vous ne pourrez pas lancer votre instance. Validez le système de fichiers du disque :
Dissociez le disque en question des instances auxquelles il est associé, le cas échéant :
gcloud compute instances delete old-instance --keep-disks boot
Démarrez une nouvelle instance avec la dernière image fournie par Google :
gcloud compute instances create debug-instance
Associez votre disque en tant que disque non amorçable, mais ne l'installez pas. Remplacez
DISK
par le nom du disque qui ne démarre pas. Notez le nom de l'appareil qui identifie le disque sur l'instance :gcloud compute instances attach-disk debug-instance \ --disk DISK \ --device-name debug-disk
Connectez-vous à l'instance :
gcloud compute ssh debug-instance
Recherchez la partition racine du disque, identifiée par la notation
part1
. Ici, la partition racine du disque est sur/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 -> ../../sda1
Exécutez une vérification du système de fichiers sur la partition racine :
sudo fsck /dev/sdb1 fsck from util-linux 2.20.1 e2fsck 1.42.5 (29-Jul-2012) /dev/sdb1: clean, 19829/655360 files, 208111/2621184 blocks
Installez le système de fichiers :
sudo mkdir /mydisk
sudo mount /dev/sdb1 /mydisk
Vérifiez que le disque dispose des fichiers du noyau :
ls /mydisk/boot/vmlinuz-* /mydisk/boot/vmlinuz-3.2.0-4-amd64
Vérifiez que le disque dispose d'un MBR (enregistrement de démarrage maître) valide.
Exécutez la commande suivante sur l'instance de débogage à laquelle est associé le disque de démarrage persistant, tel que
/dev/sdb
:sudo parted /dev/sdb print
Si le MBR est valide, les informations sur le système de fichiers doivent être indiquées :
Disk /dev/sdb: 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
Corriger le problème lié au démarrage
Après avoir identifié l'endroit où le processus de démarrage a échoué, corrigez le problème via l'une de ces deux actions :
Utiliser l'image importée pour créer un disque de démarrage autonome
Recommencez et importez l'image du disque de démarrage de nouveau.
Créer un disque de démarrage autonome
Installez votre image importée sur un disque secondaire associé à une instance de VM temporaire. Utilisez la console Google Cloud ou la CLI gcloud pour créer un disque autonome à partir de l'image que vous avez importée et créez une VM temporaire avec le disque autonome associé. Vous pouvez vous servir de cette instance pour modifier des fichiers sur le disque autonome et résoudre les problèmes qui empêchent le démarrage de l'image.
Console
Créez un disque autonome à partir de l'image de disque de démarrage que vous avez importée. Vous pouvez également dissocier un disque de démarrage d'une instance et choisir de créer l'instance à l'aide de ce disque de démarrage dissocié.
- In the Google Cloud console, go to the Disks page.
- Click Create disk.
-
On the Create a disk page,
specify the following attributes:
-
Zone:
Select a zone near you. You must use this same zone when you create your temporary instance.
- Disk source type: Image
- Source image: Specify the name of the boot disk image that you imported.
-
Zone:
- To create the disk, click Create.
Créez une instance temporaire où vous pourrez associer le disque autonome et configurer le bootloader pour qu'il fonctionne dans un environnement de la console Google Cloud.
Dans Google Cloud Console, accédez à la page Instances de VM.
Cliquez sur le bouton Créer une instance.
Sur la page Créer une instance, spécifiez un nom d'instance et une zone dans laquelle l'instance sera située. La zone doit être la même que celle où vous avez créé votre disque autonome.
Développez la section Gestion, sécurité, disques, mise en réseau et location unique.
Dans l'onglet Disques de la section Disques supplémentaires, cliquez sur Associer un disque existant. Une nouvelle section s'affiche.
Dans la section Disque, sélectionnez le disque autonome que vous avez créé dans la liste déroulante. Vous allez ainsi associer le disque autonome à l'instance, et pourrez ensuite l'installer et modifier le contenu du disque.
Cliquez sur OK pour terminer l'association du disque.
Cliquez sur le bouton Créer pour créer l'instance.
gcloud
Créez un disque autonome à partir de l'image de disque de démarrage que vous avez importée. Vous pouvez également dissocier un disque de démarrage d'une instance et choisir de créer l'instance à l'aide de ce disque de démarrage dissocié.
gcloud compute disks create DISK_NAME \ --zone=ZONE \ --image=IMAGE_NAME
Remplacez les éléments suivants :
DISK_NAME
: nom du nouveau disque autonome.
: une zone à proximité. Vous devez utiliser cette zone lorsque vous créez l'instance temporaire :ZONE
IMAGE_NAME
: nom de l'image du disque de démarrage que vous avez importée.
Créez une instance temporaire où vous pourrez associer le disque autonome et configurer le bootloader pour qu'il fonctionne dans un environnement de la console Google Cloud.
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --disk name=DISK_NAME
Remplacez les éléments suivants :
INSTANCE_NAME
: nom unique de votre instance.ZONE
: zone dans laquelle vous avez créé le disque autonome.DISK_NAME
: nom du disque autonome que vous avez créé à partir de l'image du disque de démarrage importé.
Après avoir créé l'instance depuis le disque autonome associé, vous disposez d'un environnement virtuel dans lequel vous pouvez modifier le bootloader à partir de votre image de disque de démarrage d'origine.
Configurer le disque de démarrage
Connectez-vous à l'instance, installez le disque autonome et configurez le bootloader de sorte qu'il démarre correctement sur Compute Engine.
- Connectez-vous à l'instance temporaire à l'aide de SSH-in-browser ou de la commande
gcloud compute ssh
. Utilisez la commande
blkid
pour identifier le disque que vous souhaitez modifier et les partitions à installer. Dans cet exemple,/dev/sdb
correspond au disque que vous avez importé.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
Installez la partition racine du disque autonome dans le répertoire
/tmp
. Dans cet exemple,/dev/sdb1
est la partition racine. Les autres partitions ne nécessitent aucune modification. Votre schéma de partition peut nécessiter le montage de plusieurs partitions avant de pouvoir accéder à tous les fichiers à modifier.sudo mount /dev/sdb1 /tmp
Modifiez les fichiers susceptibles d'entraîner l'échec du processus de démarrage du disque. Pour plus d'informations, consultez les instructions de configuration du bootloader.
Désinstallez le disque de démarrage de l'instance temporaire.
sudo umount /tmp
Utiliser le disque de démarrage
Lorsque vous avez fini de configurer ce disque, dissociez-le et utilisez-le comme disque de démarrage pour une nouvelle instance.
Console
Dissociez le disque autonome de l'instance temporaire.
Dans la console Google Cloud, accédez à la page Instances de VM.
Dans la liste des instances, cliquez sur le nom de l'instance temporaire dans laquelle vous avez modifié le disque de démarrage autonome. La page des détails de l'instance s'affiche.
Cliquez sur Modifier en haut de la page des détails de l'instance.
Sous Disques supplémentaires, cliquez sur X à côté du disque autonome pour indiquer que vous souhaitez le dissocier de l'instance temporaire.
Cliquez sur Enregistrer pour enregistrer les modifications.
Utilisez le disque autonome dissocié pour créer une instance.
Dans la console Google Cloud, accédez à la page Instances de VM.
Cliquez sur le bouton Créer une instance.
Sur la page Créer une instance, spécifiez un nom d'instance et une zone dans laquelle l'instance sera située. La zone doit être la même que celle où vous avez créé votre disque autonome.
Sous Disque de démarrage, cliquez sur Modifier pour commencer à configurer le disque de démarrage.
Dans l'onglet Disques existants, choisissez le disque de démarrage autonome à utiliser comme disque de démarrage pour cette nouvelle instance.
Cliquez sur le bouton Créer pour créer l'instance.
gcloud
Dissociez le disque autonome de l'instance temporaire.
gcloud compute instances detach-disk INSTANCE_NAME \ --disk name=DISK_NAME
Remplacez les éléments suivants :
INSTANCE_NAME
: nom unique de l'instance.DISK_NAME
: nom du nouveau disque autonome.
Utilisez le disque autonome dissocié pour créer une instance.
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --disk name=DISK_NAME,boot=yes
Remplacez les éléments suivants :
INSTANCE_NAME
: nom unique de votre instance.ZONE
: zone dans laquelle se trouve le disque autonome.DISK_NAME
: nom du disque autonome que vous avez créé à partir de l'image du disque de démarrage importé.
Testez l'instance que vous avez créée à l'aide du disque de démarrage modifié. Si vous ne parvenez toujours pas à vous connecter à l'instance, affichez de nouveau la sortie de la console série pour identifier le point de défaillance dans le processus de démarrage. Répétez le processus de dépannage jusqu'à ce que vous ayez corrigé les problèmes liés à l'image de disque de démarrage.