Comment puis-je interagir avec la console pendant le démarrage sur Amazon EC2?

8

J'ai une instance qui est bloquée à cette invite de démarrage (en regardant le journal des instances depuis la console de gestion):

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

J'ai ajouté un volume EBS, je l'ai monté, puis j'ai supprimé le volume EBS et j'ai oublié de supprimer l'entrée de / etc / fstab et j'ai redémarré la machine. Maintenant, cela m'invite au démarrage et je ne parviens pas à SSH dans l'instance.

Que dois-je faire pour résoudre ce problème?

ErJab
la source

Réponses:

11

Je ne connais pas de solution «facile» à votre problème, mais il existe une solution quelque peu compliquée (selon votre type de périphérique racine).

Si votre instance a une racine EBS, la solution est assez simple: arrêtez l'instance, détachez le lecteur EBS, lancez une autre instance et attachez-y le volume EBS. Modifiez votre fichier fstab selon vos besoins, détachez le volume EBS et rattachez-le à l'instance d'origine.

Si votre instance a une racine S3 (c'est-à-dire un magasin d'instances), la solution est un peu plus difficile. Vous pouvez télécharger les données à partir de votre AMI (à l'aide d' ec2-download-bundle ), puis extraire ces données dans un seul fichier (à l'aide d' ec2-unbundle ). Vous pouvez ensuite monter l'image, apporter les modifications nécessaires et regrouper l'image (avec ec2-bundle-vol , en remplaçant le volume par défaut à regrouper avec l'indicateur -v). Cela devrait vous donner une nouvelle AMI viable, identique à votre ancienne, à l'exception des modifications que vous apportez. Alternativement, vous pouvez copier le contenu du fichier image sur un volume EBS à l'aide de dd - puis le convertir en une instance soutenue par racine EBS.

cyberx86
la source
Heureusement, mon instance a une racine EBS! Merci beaucoup pour la réponse. Je vais l'essayer et confirmer que cela fonctionne.
ErJab
1
ErJab: J'ai écrit un article décrivant comment faire cela avec le démarrage EBS: alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond
Serait-il prudent d'ajouter également nofailau /etc/fstabcas où vous feriez une faute de frappe? Peut-être pas, peut-être que les "erreurs" (comme décrit dans fstab(5)) ne retardent pas le processus de démarrage.
Adam Monsen
@AdamMonsen: c'est une bonne pratique pour certains lecteurs - par exemple les lecteurs éphémères, car le processus de démarrage sortira en mode de récupération si un disque n'est pas disponible. J'utilise généralement l'option nobootwait- je n'ai pas essayé avec nofail- je pense qu'il y a de subtiles différences entre eux.
cyberx86
0

Si votre ubuntu a systemd, vous pouvez modifier /lib/systemd/system/local-fs.targetet commenter les deux dernières lignes:

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

Je n'ai pas testé cela de manière approfondie et je ne sais pas s'il y a des risques ou des effets secondaires impliqués, mais jusqu'à présent, cela fonctionne comme un charme. Il monte le volume racine et tous les autres volumes (sauf ceux qui sont mal configurés, évidemment), puis il continue le processus de démarrage jusqu'à ce que SSH soit en place, afin que vous puissiez vous connecter à l'instance et corriger les fstabentrées incorrectes .

ThiagoAlves
la source