Como interajo com o console durante o tempo de inicialização no Amazon EC2?

8

Eu tenho uma instância que está presa neste prompt de inicialização (olhando para o log da instância no console de gerenciamento):

The disk drive for /mydisk is not ready yet or not present
Continue to wait; or Press S to skip mounting or M for manual recovery

Adicionei um volume EBS, montei-o, excluí o volume EBS e esqueci de remover a entrada do / etc / fstab e reiniciei a máquina. Agora, isso é solicitado no momento da inicialização e não consigo fazer o SSH na instância.

O que devo fazer para resolver esse problema?

ErJab
fonte

Respostas:

11

Não conheço uma solução 'fácil' para o seu problema, mas existe uma solução um pouco complicada (dependendo do tipo de dispositivo raiz).

Se a sua instância tiver uma raiz do EBS, a solução é simples: pare a instância, desconecte a unidade EBS, inicie outra instância e anexe o volume EBS a ela. Edite seu arquivo fstab conforme necessário, desanexe o volume EBS e reconecte-o à instância original.

Se sua instância tiver uma raiz suportada pelo S3 (por exemplo, armazenamento de instância), a solução será um pouco mais difícil. Você pode fazer o download dos dados da sua AMI (usando o ec2-download-bundle ) e extrair esses dados em um único arquivo (usando o ec2-unbundle ). Em seguida, você pode montar a imagem, fazer as alterações necessárias e reorganizá-la (com ec2-bundle-vol , substituindo o volume padrão para agrupar com o sinalizador -v). Isso deve fornecer uma AMI nova e viável, idêntica à antiga, exceto pelas modificações que você fizer. Como alternativa, você pode copiar o conteúdo do arquivo de imagem para um volume EBS usando dd - e depois converter para uma instância suportada pela raiz do EBS.

cyberx86
fonte
Felizmente, minha instância tem uma raiz EBS! Muito obrigado pela resposta. Vou testá-lo e confirmar que funciona.
ErJab
1
ErJab: Eu escrevi um artigo que descreve como fazer isso com inicialização EBS: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond
Seria prudente adicionar também nofailse /etc/fstabvocê digitar um erro de digitação? Talvez não, talvez os "erros" (como descritos em fstab(5)) não atrasem o processo de inicialização.
Adam Monsen
@ AdamMonsen: essa é uma boa prática para algumas unidades - por exemplo, unidades efêmeras, já que o processo de inicialização será encerrado no modo de recuperação se um disco não estiver disponível. Eu costumo usar a opção nobootwait- ainda não tentei nofail- acredito que existem algumas diferenças sutis entre elas.
22812 cyberx86
0

Se o seu ubuntu tiver systemd, você pode editar /lib/systemd/system/local-fs.targete comentar as duas últimas linhas:

#OnFailure=emergency.target
#OnFailureJobMode=replace-irreversibly

Eu não testei isso extensivamente e não sei se há riscos ou efeitos colaterais envolvidos, mas até agora funciona como um encanto. Ele monta o volume raiz e todos os outros volumes (exceto os que estão configurados incorretamente, obviamente) e, em seguida, continua o processo de inicialização até que o SSH esteja ativo, para que você possa se conectar à instância e corrigir as fstabentradas incorretas .

ThiagoAlves
fonte