Creating and Manipulating Disk Image Files

Tools such as virt-install will create disks as needed when installing a new virtual server, but you might want to add a disk to an existing server. One common form of disk image for virtual machines is a sparse file. The simplest tool for creating this is the dd command documented in Chapter 3. For instance, to create a 10,000 MB sparse file suitable for use as a disk image you can use the following command:

# dd if=/dev/zero of=newdisk.img bs=1M seek=10000 count=1

Change the system’s configuration file to add the new drive. You can use the guest’s system tools (such as fdisk) to configure the new disk.

You can easily increase the size of a sparse file by using dd to create a new sparse file then append the existing file with the new file. Don’t try this with an image file currently in use by a running guest, though: shut down the guest system first. Here we use dd and cat to add a 5000 MB extension to the original image.

# dd if=/dev/zero of=diskextension.img bs=1M seek=5000 count=1
# cat diskextension.img >> newdisk.img

You will need to use a tool appropriate to the guest operating system to take advantage of the new space. For example, resize2fs makes the space available to an ext3 filesystem.

For more advanced features on a disk image, you can use qemu-img, a tool we don’t document here. It can create and convert disk images to a several different formats, including to VMware’s .vmdk format. If you are using KVM you should already have it ...

Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.