I have an EBS backed Amazon EC2 instance. I'd like to change the root device on this instance. Can you please advise the best way to go about this?
I only find documentation on changing several attributes of block devices, but they don't seem to include setting it as the root device. Thanks in advance.
Yep, it's dead easy:
/dev/sda1
This presupposes that your alternate EBS volume is bootable, of course - it has to contain the bootable OS image.
To elaborate on Diomidis Spinellis's comment in the the accepted answer's comments thread, it's important to check the filesystem label of the device you're attempting to switch in as your new root device. While troubleshooting my own server migration, I had to do the following before my instance would boot up:
Use the
e2label
command to change the label on the ext2/ext3/ext4 filesystem you've created for your new root device.First, check the filesystem label for your current root device.
Set the new device to have the same filesystem label.
In my case, the label was
cloudimg-rootfs
. Sometimes it will simply be/
.It's important to understand how e2label works; check
man e2label
on your machine or visit http://linux.die.net/man/8/e2label for more information.When your volume is mounted, it gets a post-fix with numbers, eg: when
/dev/sda
is mounted, its mounted as/dev/sda1, /dev/sda2
depending on the partitions you make. As we are mounting the root device itself, it assumes the device is already mounted, so we need to give/dev/sda1
for mounting the volume as root device. Note: There shouldn't be any root volume attached.Follow these steps: 1) Go to your volumes, select attach volumes from Action. 2) Select your instance 3) For mounting as root, give the device name as
/dev/sda1
4) Start your instance.This is the aws suggested solution You can detach the root volume from the original instance after stopping it. The root volume is attached at /dev/sda1. Once this is detached, please attach it to the new instance. After the volume is attached, you may have to mount it from the OS. After it's mounted, you should see the data within it.
After you've done adding the new key, you can detach it and attach to the original instance at /dev/sda1.
I suggest creating a snapshot of the root volume before making any changes.
Before trying out any solutions just try out in the not important instances or spot instances
I don't have enough rep to add a comment to the selected answer, but I do want to point out that for me,
/dev/sda1
did not work (did not attach as root), but using/dev/xvda
worked (attached as root). The instance is one of the newer t2.micro ones using HVM.