如何在不重建整个系统设置的情况下将新的AWS EC2类(r3,i2)与现有的AMI一起使用?
新的EC2类仅支持基于HVM的虚拟化,但我只有PVM AMI映像。
答案 0 :(得分:75)
启动Ubuntu HVM linux,任何版本,新
使用我现有的AMI / PVM linux启动Ubuntu,并在其上安装grub包:apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
停止PVM linux
在PVM linux上分离root(/ dev / sda1)分区
将PVM linux root分区附加到某处运行的HVM linux,例如:/ dev / sdf
在HVM linux上:mkdir -p /mnt/xvdf && mount /dev/xvdf /mnt/xvdf
rsync -avzXA /boot/ /mnt/xvdf/boot/
mount -o bind /dev /mnt/xvdf/dev && mount -o bind /dev/pts /mnt/xvdf/dev/pts && mount -o bind /proc /mnt/xvdf/proc && mount -o bind /sys /mnt/xvdf/sys
chroot /mnt/xvdf
grub-install --no-floppy --recheck --force /dev/xvdf
update-grub2
退出chroot:CTRL + D
停止HVM Linux
分离/ dev / sda1原始根和分离/ dev / sdf PVM root
将PVM root作为/ dev / sda1
启动HVM linux,voilà!
从正在运行的HVM linux创建一个新的AMI映像,它将被HVM虚拟化。
答案 1 :(得分:0)
@divyenduz的答案有效,但需要对现代(大约2019年)AWS EC2进行一些清理和澄清。重要的是,现代实例类对设备名称的翻译方式有所不同。
这是我修改过的步骤。
为清楚起见,节点为:
操作之前:备份原始节点PVM01
在节点PVM01上安装必备组件
在PVM01上安装grub软件包
apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
停止节点PVM01
将PVM01根分区(上一步中的新卷)附加到新的HVM01 / dev / sdf
ssh PVM01 须藤fdisk -l </ p>
在HVM01上:
# For xvdf, e.g. on C3.XLARGE
DEVNAME=xvdf1
# For nvme, e.g. on C5.XLARGE
DEVNAME=nvme1n1
mkdir -p /mnt/${DEVNAME} && mount /dev/${DEVNAME} /mnt/${DEVNAME}
rsync -avzXA /boot/ /mnt/${DEVNAME}/boot/
mount -o bind /dev /mnt/${DEVNAME}/dev && mount -o bind /dev/pts /mnt/${DEVNAME}/dev/pts && mount -o bind /proc /mnt/${DEVNAME}/proc && mount -o bind /sys /mnt/${DEVNAME}/sys
chroot /mnt/${DEVNAME}
grub-install --no-floppy --recheck --force /dev/${DEVNAME}
update-grub2
使用CTRL + D退出chroot