How should I use the new AWS EC2 classes (r3, i2) with my existing AMI without recreating the whole system setup?
The new EC2 classes support only HVM based virtualization but I have only PVM AMI images.
The answer is that you cannot replace the AMI for an existing EC2 instance. However, you can replace the root volume with a new volume which is basically the same thing. That new root volume can come from another EC2 instance.
Linux Amazon Machine Images use one of two types of virtualization: paravirtual (PV) or hardware virtual machine (HVM). The main differences between PV and HVM AMIs are the way in which they boot and whether they can take advantage of special hardware extensions (CPU, network, and storage) for better performance.
Start an Ubuntu HVM linux, any version, new
Start an Ubuntu / with my existing AMI / PVM linux, and install grub packages on them: apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
Stop PVM linux
Detach root (/dev/sda1) partition at PVM linux
Attach PVM linux root partition to running HVM linux somewhere, e.g.: /dev/sdf
On 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
exit chroot: CTRL+D
stop HVM Linux
detach /dev/sda1 original root AND detach /dev/sdf PVM root
attach PVM root to HVM linux as /dev/sda1
Start HVM linux, voilà!
Create a new AMI image from the running HVM linux, it will be HVM virtualized.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With