I recently needed to convert an AWS instance-store AMI to an EBS backed AMI. Here’s the steps I took in order to fix that. It’s a
ext3 file system in this example, but it should work fine with an
ext4 as well.
- Launch your instance-store AMI
- Create a new EBS in the same availability zone
- Attach the EBS to the instance-store instance on `/dev/sdh`
- Create the file system
- Mount the device
- Shut down any running applications or databases that you have
- rsync your system to the EBS volume
- Label the device
- Sync and unmount the device
- In the AWS Console, make a snapshot of the EBS drive
- Make a note of the AKI and ARI of the currently running instance (skip this if none are set)
- When the snapshot is complete, right click on it and choose "Create Image from Snapshot"
- Use the wizard to set an name and description of your new AMI. Also choose the right AKI etc.
- You should now be able to start a new instance from the newly created AMI.
mkdir /mnt/ebs mount /dev/sdh /mnt/ebs
rsync -avHx / /mnt/ebs rsync -avHx /dev /mnt/ebs
tune2fs -L '/' /dev/sdh
sync;sync;sync;sync && umount /mnt/ebs