我从哪个 AWS 卷启动?如有必要,如何更改它?

我从哪个 AWS 卷启动?如有必要,如何更改它?

我在 AWS 美国东部地区的 m1.small 上运行了一个 Ubuntu Lucid 10.04 实例。前段时间它出现了一些问题(我认为是 AWS 的问题),不管怎样,我们启动了一个新实例,将单独的数据卷附加到新实例上,一切恢复正常。

旧实例的启动卷上有一些文件我想访问,因此我停止了旧实例,分离了启动卷,并将这个旧启动卷安装到 /dev/sdg 上的新实例上以访问它。不幸的是,我之后没有整理,卷仍然连接并安装着。

昨天我不得不重新启动新实例(AWS 说一些计划维护需要这样做,我可以在他们这样做之前手动完成)

重新启动后,我注意到它存在一些问题。例如:最近添加的新用户未显示在 /etc/passwd 中,只有较老的用户显示在那里。

据我所知,该实例似乎已从旧的启动驱动器重新启动。

那么我该如何…

1)确定我实际上是从哪个卷启动的,以证实我的怀疑?

2)告诉实例从哪个卷启动(如果我是对的)?

问候

保罗

答案1

  1. 您可以使用以下方法确定根设备:

    ec2-describe-instance-attribute INSTANCE_ID --根设备名称

    示例输出:

    root设备名称 i-xxxxxx /dev/sda1

    然后,您可以使用以下方法确定映射到哪个“块设备”:

    ec2-describe-instance-attribute INSTANCE_ID --块设备映射

    示例输出:

    BLOCKDEVICE /dev/sda1 vol-xxxxxxxa 2011-11-13T21:09:53.000Z
    BLOCKDEVICE /dev/sdf vol-xxxxxxxb 2011-11-13T21:09:53.000Z
    BLOCKDEVICE /dev/sdg vol-xxxxxxxc 2011-11-13T21:09:53.000Z

    (当然,您可以只使用dfmount来确定根设备,然后查看块设备映射)。

  2. 要更改根设备,有两种方法:

    a. 停止实例,分离错误的根卷,将正确的根卷附加为同一设备(例如 /dev/sda1),然后重新启动实例。更改应在重新启动后持续存在,但不会持续存在,因为您尚未修改其所基于的映像。

    b. 修改映像并使用该映像启动新实例。为此,请运行:

    ec2-register -s snap-xxxxxxxa -name “AMI_NAME″ –root-device-name /dev/sda1 --block-device-mapping "/dev/sda1=snap-xxxxxxxa"

    据我所知,实例一旦启动就无法更改其“根设备名称”。

相关内容