我有一个EBS支持的Amazon EC2实例 . 我想在这个实例上更改根设备 . 你能告诉我最好的解决方法吗?
我只找到有关更改块设备的多个属性的文档,但它们似乎不包括将其设置为根设备 . 提前致谢 .
是的,这很简单:
停止实例 .
分离根EBS卷 .
将备用EBS卷作为根连接: /dev/sda1
启动实例 .
这预先假定您的备用EBS卷是可引导的 - 当然 - 它必须包含可引导的OS映像 .
我没有足够的代表为选定的答案添加评论,但我想指出,对我来说, /dev/sda1 不起作用(没有以root身份附加),但使用 /dev/xvda 工作(以root身份附加) . 该实例是使用HVM的较新的t2.micro之一 .
/dev/sda1
/dev/xvda
要在接受的答案的评论主题中详细说明Diomidis Spinellis的评论,检查您尝试作为新根设备切换的设备的文件系统标签非常重要 . 在对我自己的服务器迁移进行故障排除时,我必须在我的实例启动之前执行以下操作:
使用 e2label 命令更改为新根设备创建的ext2 / ext3 / ext4文件系统上的标签 .
e2label
首先,检查当前根设备的文件系统标签 .
$ sudo e2label /dev/xvda1 cloudimg-rootfs
将新设备设置为具有相同的文件系统标签 .
$ sudo e2label /dev/xvdg 'cloudimg-rootfs'
就我而言,标签是 cloudimg-rootfs . 有时它只是 / .
cloudimg-rootfs
/
了解e2label如何工作非常重要;检查您机器上的 man e2label 或访问http://linux.die.net/man/8/e2label以获取更多信息 .
man e2label
这是aws建议的解决方案您可以在停止后从原始实例中分离根卷 . 根卷附加在/ dev / sda1 . 分离后,请将其附加到新实例 . 连接卷后,您可能必须从操作系统安装它 . 安装完成后,您应该看到其中的数据 .
添加新密钥后,可以将其分离并附加到/ dev / sda1上的原始实例 .
我建议在进行任何更改之前创建根卷的快照 .
在尝试任何解决方案之前,只需尝试不重要的实例或现场实例
安装卷后,它会获得带有数字的后置修复,例如:安装 /dev/sda 时,根据您创建的分区将其挂载为 /dev/sda1, /dev/sda2 . 当我们正在安装根设备本身时,它假定设备已经安装,因此我们需要提供 /dev/sda1 来将卷安装为根设备 . 注意:不应附加任何根卷 .
/dev/sda
/dev/sda1, /dev/sda2
请执行以下步骤:1)转到卷,从“操作”中选择“附加卷” . 2)选择您的实例3)要以root用户身份安装,请将设备名称设为 /dev/sda1 4)启动您的实例 .
5 回答
是的,这很简单:
停止实例 .
分离根EBS卷 .
将备用EBS卷作为根连接: /dev/sda1
启动实例 .
这预先假定您的备用EBS卷是可引导的 - 当然 - 它必须包含可引导的OS映像 .
我没有足够的代表为选定的答案添加评论,但我想指出,对我来说,
/dev/sda1
不起作用(没有以root身份附加),但使用/dev/xvda
工作(以root身份附加) . 该实例是使用HVM的较新的t2.micro之一 .要在接受的答案的评论主题中详细说明Diomidis Spinellis的评论,检查您尝试作为新根设备切换的设备的文件系统标签非常重要 . 在对我自己的服务器迁移进行故障排除时,我必须在我的实例启动之前执行以下操作:
使用
e2label
命令更改为新根设备创建的ext2 / ext3 / ext4文件系统上的标签 .首先,检查当前根设备的文件系统标签 .
将新设备设置为具有相同的文件系统标签 .
就我而言,标签是
cloudimg-rootfs
. 有时它只是/
.了解e2label如何工作非常重要;检查您机器上的
man e2label
或访问http://linux.die.net/man/8/e2label以获取更多信息 .这是aws建议的解决方案您可以在停止后从原始实例中分离根卷 . 根卷附加在/ dev / sda1 . 分离后,请将其附加到新实例 . 连接卷后,您可能必须从操作系统安装它 . 安装完成后,您应该看到其中的数据 .
添加新密钥后,可以将其分离并附加到/ dev / sda1上的原始实例 .
我建议在进行任何更改之前创建根卷的快照 .
在尝试任何解决方案之前,只需尝试不重要的实例或现场实例
安装卷后,它会获得带有数字的后置修复,例如:安装
/dev/sda
时,根据您创建的分区将其挂载为/dev/sda1, /dev/sda2
. 当我们正在安装根设备本身时,它假定设备已经安装,因此我们需要提供/dev/sda1
来将卷安装为根设备 . 注意:不应附加任何根卷 .请执行以下步骤:1)转到卷,从“操作”中选择“附加卷” . 2)选择您的实例3)要以root用户身份安装,请将设备名称设为
/dev/sda1
4)启动您的实例 .