Как мне взаимодействовать с консолью во время загрузки на Amazon EC2?

8

У меня есть экземпляр, который застрял в этом приглашении загрузки (глядя на журнал экземпляра из консоли управления):

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

Я добавил том EBS, установил его, затем удалил том EBS и забыл удалить запись из / etc / fstab и перезагрузил компьютер. Теперь мне это подсказывает во время загрузки, и я не могу войти в экземпляр по SSH.

Что я должен сделать, чтобы решить эту проблему?

ErJab
источник

Ответы:

11

Я не знаю «легкого» решения вашей проблемы, но есть несколько запутанное (в зависимости от типа вашего корневого устройства) решение.

Если у вашего экземпляра есть корень EBS, решение достаточно простое: остановите экземпляр, отсоедините диск EBS, запустите другой экземпляр и подключите к нему том EBS. При необходимости измените файл fstab, отсоедините том EBS и заново присоедините его к исходному экземпляру.

Если у вашего экземпляра есть корневой каталог с поддержкой S3 (то есть хранилище экземпляров), решение будет немного сложнее. Вы можете загрузить данные из своего AMI (используя ec2-download-bundle ), а затем извлечь эти данные в один файл (используя ec2-unbundle ). Затем вы можете смонтировать образ, внести необходимые изменения и пересобрать образ (с помощью ec2-bundle-vol , переопределяя том по умолчанию для объединения с флагом -v). Это должно дать вам новый жизнеспособный AMI, идентичный вашему старому, за исключением изменений, которые вы делаете. В качестве альтернативы вы можете скопировать содержимое файла образа на том EBS с помощью dd, а затем преобразовать его в экземпляр с корневым резервным копированием EBS.

cyberx86
источник
К счастью, мой экземпляр имеет корень EBS! Большое спасибо за ответ. Я попробую это и подтвердлю, что это работает.
ErJab
1
ErJab: я написал статью, описывающую, как сделать это с загрузкой EBS: alestic.com/2011/02/ec2-fix-ebs-root
Эрик Хаммонд
Было бы целесообразно добавить nofailк /etc/fstabв случае , если вы сделаете опечатку? Может быть, нет, может быть, «ошибки» (как описано в fstab(5)) не задерживают процесс загрузки.
Адам Монсен
@AdamMonsen: это хорошая практика для некоторых накопителей - например, для кратковременных накопителей, поскольку процесс загрузки выйдет в режим восстановления, если диск недоступен. Я обычно использую опцию nobootwait- не пробовал nofail- я считаю, что между ними есть некоторые тонкие различия.
cyberx86
0

Если у вас есть Ubuntu systemd, вы можете редактировать /lib/systemd/system/local-fs.targetи комментировать последние две строки:

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

Я не проверял это подробно и не знаю, есть ли какие-либо риски или побочные эффекты, но пока он работает как шарм. Он монтирует корневой том и все остальные тома (за исключением явно неправильно настроенных), затем продолжает процесс загрузки до тех пор, пока не активируется SSH, поэтому вы можете подключиться к экземпляру и исправить неправильные fstabзаписи.

ThiagoAlves
источник