Este documento inclui informações sobre solução de problemas de inicialização de VM devido a erros de cota e discos de inicialização .
Erros de cota
Se você receber um erro de cota ao tentar iniciar uma instância, deverá solicitar uma cota de CPU adicional. Para obter mais informações, consulte a seção Instâncias de VM da documentação sobre Cotas de recursos.
Discos de inicialização
Se sua instância não iniciar e você não conseguir se conectar a ela ou fazer login por meio do console serial interativo, identifique o motivo pelo qual o disco de inicialização não está concluindo o processo de inicialização.
Identifique o motivo pelo qual o disco de inicialização não está inicializando
Verifique se o seu disco de inicialização não está cheio.
Se o seu disco de inicialização estiver completamente cheio e o seu sistema operacional não suportar o redimensionamento automático, você não conseguirá se conectar à sua instância. Você deve criar uma nova instância e recriar o disco de inicialização. Para obter mais informações, consulte Recuperando VMs ou discos de inicialização completos .
Examine a saída da porta serial da sua instância de máquina virtual.
O BIOS, o bootloader e o kernel de uma instância imprimem suas mensagens de depuração na saída da porta serial da instância, fornecendo informações valiosas sobre quaisquer erros ou problemas enfrentados pela instância. Se você ativar o registro de saída da porta serial no Cloud Logging, poderá acessar essas informações mesmo quando a instância não estiver em execução.
Habilite o acesso interativo ao console serial.
Você pode ativar o acesso interativo ao console serial de uma instância para poder fazer login e depurar problemas de inicialização de dentro da instância sem exigir que ela seja totalmente inicializada. Para obter mais informações, consulte Solução de problemas usando o console serial .
Verifique se a clonagem do disco de inicialização não está em andamento
Se a clonagem do disco de inicialização estiver em andamento, você não poderá iniciar a VM e verá um erro semelhante ao seguinte.
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'
Aguarde a conclusão do clone e inicie a VM.
Verifique se o instantâneo do disco de inicialização não está em andamento
Se um instantâneo do disco de inicialização estiver em andamento, você não poderá iniciar a VM e verá um erro semelhante ao seguinte:
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'
Aguarde a conclusão do instantâneo e inicie a VM.
Verifique se o seu disco possui um sistema de arquivos válido.
Se o seu sistema de arquivos estiver corrompido ou inválido, você não poderá iniciar sua instância. Valide o sistema de arquivos do seu disco:
Desanexe o disco em questão de qualquer instância à qual ele esteja anexado, se aplicável:
gcloud compute instances delete old-instance --keep-disks boot
Inicie uma nova instância com a imagem mais recente fornecida pelo Google:
gcloud compute instances create debug-instance
Anexe seu disco como um disco que não seja de inicialização, mas não o monte. Substitua
DISK
pelo nome do disco que não inicializa. Observe o nome do dispositivo que identifica o disco na instância:gcloud compute instances attach-disk debug-instance \ --disk DISK \ --device-name debug-disk
Conecte-se à instância:
gcloud compute ssh debug-instance
Procure a partição raiz do disco, que é identificada com a notação
part1
. Neste caso, a partição raiz do disco está em/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
Execute uma verificação do sistema de arquivos na partição raiz:
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
Monte seu sistema de arquivos:
sudo mkdir /mydisk
sudo mount /dev/sdb1 /mydisk
Verifique se o disco possui arquivos de kernel:
ls /mydisk/boot/vmlinuz-* /mydisk/boot/vmlinuz-3.2.0-4-amd64
Verifique se o disco possui um registro mestre de inicialização (MBR) válido.
Execute o seguinte comando na instância de depuração que possui o disco de inicialização persistente anexado, como
/dev/sdb
:sudo parted /dev/sdb print
Se o seu MBR for válido, ele listará informações sobre o sistema de arquivos:
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
Corrija o problema de inicialização
Depois de identificar onde o processo de inicialização está falhando, você poderá corrigir o problema concluindo uma das seguintes ações:
Use sua imagem importada para criar um disco de inicialização independente
Recomece e importe a imagem do disco de inicialização novamente
Criando um disco de inicialização independente
Monte sua imagem importada em um disco secundário anexado a uma instância de VM temporária. Use o console do Google Cloud ou a CLI gcloud para criar um disco autônomo com base na imagem que você enviou e criar uma VM temporária com o disco autônomo anexado. Você pode usar esta instância para modificar arquivos no disco independente e corrigir problemas que fazem com que a imagem falhe ao iniciar.
Console
Crie um disco independente a partir da imagem do disco de inicialização importada. Como alternativa, você pode desanexar um disco de inicialização de uma instância e criar a instância usando esse disco de inicialização desanexado.
- 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.
Crie uma instância temporária onde você possa anexar o disco independente e configurar o bootloader para funcionar em um ambiente do console do Google Cloud.
No console do Google Cloud, acesse a página de instâncias de VM .
Clique no botão Criar instância .
Na página Criar uma instância , especifique um nome de instância e uma zona na qual localizar a instância. A zona deve ser a mesma onde você criou seu disco independente.
Expanda a seção Gerenciamento, segurança, discos, rede, locatário individual .
Na guia Discos na seção Discos adicionais , clique em Anexar disco existente . Uma nova seção aparece.
Na seção Disco , selecione o disco autônomo que você criou na lista suspensa. Isso anexa o disco independente à instância para que você possa montá-lo e modificar o conteúdo do disco posteriormente.
Clique em Concluído para terminar de anexar o disco.
Clique no botão Criar para criar a instância.
gcloud
Crie um disco independente a partir da imagem do disco de inicialização importada. Como alternativa, você pode desanexar um disco de inicialização de uma instância e criar a instância usando esse disco de inicialização desanexado.
gcloud compute disks create DISK_NAME \ --zone=ZONE \ --image=IMAGE_NAME
Substitua o seguinte:
DISK_NAME
: o nome do novo disco independente.
: uma zona perto de você. Você deve usar essa mesma zona ao criar a instância temporária.ZONE
IMAGE_NAME
: o nome da imagem do disco de inicialização que você importou.
Crie uma instância temporária onde você possa anexar o disco independente e configurar o bootloader para funcionar em um ambiente do console do Google Cloud.
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --disk name=DISK_NAME
Substitua o seguinte:
INSTANCE_NAME
: um nome exclusivo para sua instânciaZONE
: a zona onde você criou o disco independenteDISK_NAME
: o nome do disco independente que você criou a partir da imagem de disco de inicialização importada
Depois de criar a instância com o disco independente anexado, você terá um ambiente virtual onde poderá modificar o carregador de inicialização a partir da imagem do disco de inicialização original.
Configurando o disco de inicialização
Conecte-se à instância, monte o disco independente e configure o carregador de inicialização para que ele inicialize corretamente no Compute Engine.
- Conecte-se à instância temporária usando SSH no navegador ou o comando
gcloud compute ssh
. Use o comando
blkid
para identificar o disco que você deseja modificar e as partições que você precisa montar. Neste exemplo,/dev/sdb
é o disco que você importou.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
Monte a partição raiz do disco independente no diretório
/tmp
. Neste exemplo/dev/sdb1
é a partição raiz e as outras partições não requerem nenhuma modificação. Seu esquema de partição pode exigir que você monte várias partições antes de poder acessar todos os arquivos que precisa alterar.sudo mount /dev/sdb1 /tmp
Edite os arquivos que podem fazer com que o disco falhe no processo de inicialização. Para obter mais informações, consulte as instruções de configuração do bootloader .
Desmonte o disco de inicialização da instância temporária.
sudo umount /tmp
Usando o disco de inicialização
Quando terminar de configurar este disco, desconecte-o e use-o como disco de inicialização para a nova instância.
Console
Desconecte o disco independente da instância temporária.
No console do Google Cloud, acesse a página de instâncias de VM .
Na lista de instâncias, clique no nome da instância temporária onde você modificou o disco de inicialização independente. A página de detalhes da instância é aberta.
Na parte superior da página de detalhes da instância, clique em Editar .
Em Discos adicionais , clique no X ao lado do disco autônomo para indicar que deseja desanexá-lo da instância temporária.
Clique em Salvar para salvar suas alterações.
Use o disco independente desanexado para criar uma instância.
No console do Google Cloud, acesse a página de instâncias de VM .
Clique no botão Criar instância .
Na página Criar uma instância , especifique um nome de instância e uma zona na qual localizar a instância. A zona deve ser a mesma onde você criou seu disco independente.
Em Disco de inicialização , clique em Alterar para começar a configurar seu disco de inicialização.
Na guia Discos existentes , escolha o disco de inicialização independente a ser usado como disco de inicialização para esta nova instância.
Clique no botão Criar para criar a instância.
gcloud
Desconecte o disco independente da instância temporária.
gcloud compute instances detach-disk INSTANCE_NAME \ --disk name=DISK_NAME
Substitua o seguinte:
-
INSTANCE_NAME
: um nome exclusivo para sua instância. -
DISK_NAME
: o nome do novo disco independente.
Use o disco independente desanexado para criar uma instância.
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --disk name=DISK_NAME,boot=yes
Substitua o seguinte:
-
INSTANCE_NAME
: um nome exclusivo para sua instância -
ZONE
: a zona onde o disco independente está localizado -
DISK_NAME
: o nome do disco independente que você criou a partir da imagem de disco de inicialização importada
Teste a instância criada usando o disco de inicialização modificado. Se ainda não conseguir se conectar à instância, visualize a saída da porta serial novamente para identificar onde o processo de inicialização está falhando. Repita o processo de solução de problemas até corrigir os problemas com a imagem do disco de inicialização.