Eucalyptus Affected Versions: All
Resizing Root Filesystem for Machine Image
This guide illustrates how to create a larger root file system as needed for images. There are a couple of techniques to resize the root filesystem of an image. This guide will cover both.
Using tar to Copy Data from Old Image to New Image
Create a new image of the desired size (for example 4GB):
$ dd if=/dev/zero of=new.img bs=1M count=4096 # mkfs.ext3 -F new.img
Create temporary mount points for the images and to facilitate a copy between them:
$ mkdir old && mkdir new
Mount them respectively:
# mount -o loop old.img old # mount -o loop new.img new
Copy the data out of the old img and into the new:
# (cd old; tar czf - .) | (cd new; tar xzf -)
Then unmount the images:
# umount old # umount new
The new image now contains the same contents as the older, smaller image. Register and upload to the Eucalyptus cloud to begin using it.
$ sudo e2fsck -f centos-6.3-x86_64.img
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
_/: 24952/292032 files (1.6% non-contiguous), 258564/1167360 blocks
After the check has been executed, use resize2fs to resize the image to the desired size. In the example below, the image is resized to 10 Gigabytes:
$ sudo resize2fs centos-6.3-x86_64.img 10G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on centos-6.3-x86_64.img to 2621440 (4k) blocks.
The filesystem on centos-6.3-x86_64.img is now 2621440 blocks long.
The image is now ready to be bundled, uploaded and registered to Eucalyptus