AWS 实例:AMI 捆绑包、快照和熊,天哪

AWS 实例:AMI 捆绑包、快照和熊,天哪

我在 Google 上搜索了很多,但仍然很困惑,感觉好像我遗漏了或忽略了一些东西。我的目标是使用捆绑包恢复主机。

我有一个 AMI 捆绑包,其中包含一个现在不存在的实例,位于 S3 中。我已经注册了该捆绑包,可以使用 ec2-run-instance“启动”实例。但是,每个实例在 Web 界面上显示为正在运行后都无法访问。通过 Web 界面查看控制台日志,发现这是新实例上的文件系统的问题(以下错误)。

检查所有文件系统。

[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/sda1

/dev/sda1:干净,156721/1310720 个文件,1683095/2621440 个块

[/sbin/fsck.ext3 (1) -- /mnt] fsck.ext3 -a /dev/sdb

/dev/sdb 已挂载。e2fsck:无法继续,正在中止。

[失败的]

*** 文件系统检查期间发生错误。

*** 将你带入 shell;系统将重新启动

*** 当你离开壳的时候。

提供 root 密码进​​行维护

(或输入 Control-D 继续):

显然,我无法按 Control-D 或与其交互。是否可以将捆绑包挂载为 EBS 卷,或对捆绑包进行快照,然后检查文件系统?如果可以,我该怎么做?此外,虽然我没有看到任何错误,但有人知道捆绑过程中出了什么问题吗?

提前致谢!

答案1

要从 S3 支持的捆绑包创建 EBS 卷需要一些工作,但可以完成:

  • 启动新实例,并附加足够大小的 EBS 卷
    • 您还需要实例上有足够的可用空间来临时存储图像(小型实例上的临时存储应该足够)。

  • 将捆绑卷下载到实例:
    ec2-download-bundle -b BUCKET_NAME -m MANIFEST.xml -d 目标目录
    • 您还需要传递您的 ACCESS_KEY、SECRET_ACCESS_KEY 和 PRIVATE_KEY,或者将其设置为环境变量。

  • 解除卷捆绑:
    ec2-unbundle -m /local/path/to/manifest.xml -s 源目录 -d 目标目录
  • 复制到 EBS 卷:
    dd if=/path/to/image of=/dev/NAME

现在,您应该能够将该 EBS 卷作为根卷附加到实例(停止、分离原始根、附加新根、启动),或者从卷的快照创建新映像。当然,除非您修复现有问题,否则您会认为新实例中仍存在现有问题。

我建议,按照这个帖子,/etc/fstab 中有一个条目与所连接的设备不对应,导致 e2fsck 无法运行,启动过程失败。查找 /mnt 条目并删除(或更正)它以反映可用的卷。

相关内容