在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进入实例。

我应该怎么做才能解决这个问题?

Answers:


11

我不知道您的问题的“简单”解决方案,但是有一个令人费解的(取决于您的根设备类型)解决方案。

如果您的实例具有EBS根目录,则解决方案非常简单:停止该实例,分离EBS驱动器,启动另一个实例,然后将EBS卷附加到该实例。根据需要编辑fstab文件,分离EBS卷,然后将其重新附加到原始实例。

如果您的实例具有S3支持的根(即实例存储),则解决方案会困难得多。您可以从AMI下载数据(使用ec2-download-bundle),然后将数据提取到单个文件中(使用ec2-unbundle)。然后,您可以挂载映像,进行必要的更改,然后重新绑定映像(使用ec2-bundle-vol,覆盖默认卷以与-v标志捆绑在一起)。这将为您提供一个新的,可行的AMI,除了您进行的修改之外,它与旧的AMI相同。或者,您可以使用dd将映像文件的内容复制到EBS卷,然后转换为EBS根支持的实例。


幸运的是,我的实例具有EBS根目录!非常感谢您的回答。我将尝试一下,并确认它可以工作。
ErJab 2011年

1
ErJab:我写了一篇文章介绍如何使用EBS引导进行此操作:alestic.com/2011/02/ec2-fix-ebs-root
Eric Hammond,

难道是谨慎的也添加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条目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.