![我从哪个 AWS 卷启动?如有必要,如何更改它?](https://linux22.com/image/569547/%E6%88%91%E4%BB%8E%E5%93%AA%E4%B8%AA%20AWS%20%E5%8D%B7%E5%90%AF%E5%8A%A8%EF%BC%9F%E5%A6%82%E6%9C%89%E5%BF%85%E8%A6%81%EF%BC%8C%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%E5%AE%83%EF%BC%9F.png)
我在 AWS 美国东部地区的 m1.small 上运行了一个 Ubuntu Lucid 10.04 实例。前段时间它出现了一些问题(我认为是 AWS 的问题),不管怎样,我们启动了一个新实例,将单独的数据卷附加到新实例上,一切恢复正常。
旧实例的启动卷上有一些文件我想访问,因此我停止了旧实例,分离了启动卷,并将这个旧启动卷安装到 /dev/sdg 上的新实例上以访问它。不幸的是,我之后没有整理,卷仍然连接并安装着。
昨天我不得不重新启动新实例(AWS 说一些计划维护需要这样做,我可以在他们这样做之前手动完成)
重新启动后,我注意到它存在一些问题。例如:最近添加的新用户未显示在 /etc/passwd 中,只有较老的用户显示在那里。
据我所知,该实例似乎已从旧的启动驱动器重新启动。
那么我该如何…
1)确定我实际上是从哪个卷启动的,以证实我的怀疑?
2)告诉实例从哪个卷启动(如果我是对的)?
问候
保罗
答案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
(当然,您可以只使用
df
或mount
来确定根设备,然后查看块设备映射)。要更改根设备,有两种方法:
a. 停止实例,分离错误的根卷,将正确的根卷附加为同一设备(例如 /dev/sda1),然后重新启动实例。更改应在重新启动后持续存在,但不会持续存在,因为您尚未修改其所基于的映像。
b. 修改映像并使用该映像启动新实例。为此,请运行:
ec2-register -s snap-xxxxxxxa -name “AMI_NAME″ –root-device-name /dev/sda1 --block-device-mapping "/dev/sda1=snap-xxxxxxxa"
据我所知,实例一旦启动就无法更改其“根设备名称”。