我可以更改我的亚马逊EC2实例的根EBS设备吗?

con*_*one 97 amazon-ec2 amazon-web-services

我有一个EBS支持的Amazon EC2实例.我想在这个实例上更改根设备.你能告诉我最好的解决方法吗?

我只找到有关更改块设备的多个属性的文档,但它们似乎不包括将其设置为根设备.提前致谢.

Eig*_*uru 176

是的,这很简单:

  1. 停止实例.
  2. 分离根EBS卷.
  3. 将备用EBS卷作为根连接: /dev/sda1
  4. 启动实例.

这预先假定您的备用EBS卷是可引导的 - 当然 - 它必须包含可引导的OS映像.

  • 关键是"作为根" - "/ dev/sda1"确实! (46认同)
  • `/ dev/sda`对我不起作用但`/ dev/sda1`没有. (17认同)
  • `/ dev/sda`和`/ dev/sda1`都不适合我,但是`/ dev/xvda`没有. (12认同)
  • 您应该使用的名称是此命令的结果:`aws ec2 describe-instances --instance-id i-XXXXXXX | 我的情况是`/ dev/xvda`中的grep -i rootDeviceName` (11认同)
  • 谢谢,这很棒.一个问题是DNS/IP可以在发生这种情况时发生变化,因此请确保更新任何DNS /弹性IP等等.我花了一段时间试图找出为什么我不能再进入它了,这就是原因. (6认同)
  • 伙计,那太可怕了.`/ dev/sda` - 没用.`/ dev/sda1`,`dev/sdf` - 工作,但实例没有启动.`/ dev/xvda`工作. (5认同)

byl*_*l83 41

我没有足够的代表为选定的答案添加评论,但我想指出,对我来说,/dev/sda1没有工作(没有以root身份附加),而是使用/dev/xvda工作(以root身份附加).该实例是使用HVM的较新的t2.micro之一.


Joe*_*oey 16

要在接受的答案的评论主题中详细说明Diomidis Spinellis的评论,检查您尝试作为新根设备切换的设备的文件系统标签非常重要.在对我自己的服务器迁移进行故障排除时,我必须在我的实例启动之前执行以下操作:

使用该e2label命令更改为新根设备创建的ext2/ext3/ext4文件系统上的标签.

首先,检查当前根设备的文件系统标签.

$ sudo e2label /dev/xvda1
cloudimg-rootfs
Run Code Online (Sandbox Code Playgroud)

将新设备设置为具有相同的文件系统标签.

$ sudo e2label /dev/xvdg 'cloudimg-rootfs'
Run Code Online (Sandbox Code Playgroud)

就我而言,标签是cloudimg-rootfs.有时它只是/.

了解e2label如何工作非常重要; 检查man e2label您的机器或访问http://linux.die.net/man/8/e2label获取更多信息.


rak*_*aka 6

  1. 停止 EC2 实例。
  2. 在导航面板上,单击“弹性块存储”下的“” 。
  3. 选择现有卷,单击“操作”和“分离卷”。完成确认。
  4. 选择新卷,单击“操作”>>“附加卷
    • 附加卷对话框中,
    • 实例:输入实例 ID
    • 设备:输入/dev/sda1

  • 另请注意,该对话框暗示无法使用 /dev/sda1,但忽略它并继续,它可以工作 (4认同)