How to use the command qemu-img (with examples)
QEMU-img is a tool for Quick Emulator Virtual HDD image creation and manipulation. It provides various functionalities for managing and manipulating disk images. This article will illustrate several use cases of the command qemu-img with examples.
Use case 1: Create disk image with a specific size (in gigabytes)
Code:
qemu-img create image_name.img gigabytesG
Motivation:
Creating disk images is essential for setting up virtual machines and running operating systems in a virtualized environment. By using the qemu-img create
command, we can create a disk image file with a specific size.
Explanation:
qemu-img create
: This is the command to create a disk image.image_name.img
: This is the name of the disk image file to be created.gigabytesG
: This specifies the size of the disk image in gigabytes. Replace ‘gigabytes’ with the desired size.
Example output:
Formatting 'image_name.img', fmt=qcow2 size=1073741824 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
Use case 2: Show information about a disk image
Code:
qemu-img info image_name.img
Motivation:
When working with disk images, it is often useful to gather information about the image file. The qemu-img info
command allows us to retrieve detailed information about a disk image.
Explanation:
qemu-img info
: This is the command to display information about a disk image.image_name.img
: This is the name of the disk image file for which we want to retrieve information.
Example output:
image: image_name.img
file format: qcow2
virtual size: 20G (21474836480 bytes)
disk size: 2.4G
cluster_size: 65536
Use case 3: Increase or decrease image size
Code:
qemu-img resize image_name.img gigabytesG
Motivation:
As disk images are used, the need to resize them may arise. The qemu-img resize
command allows us to increase or decrease the size of a disk image as per our requirements.
Explanation:
qemu-img resize
: This is the command to resize a disk image.image_name.img
: This is the name of the disk image file to be resized.gigabytesG
: This specifies the new size of the disk image in gigabytes. Replace ‘gigabytes’ with the desired size.
Example output:
Image resized.
Use case 4: Dump the allocation state of every sector of the specified disk image
Code:
qemu-img map image_name.img
Motivation:
To understand the allocation of sectors in a disk image, the qemu-img map
command is useful. It provides a detailed dump of the allocation state of every sector in the specified disk image.
Explanation:
qemu-img map
: This is the command to dump the allocation state of every sector in a disk image.image_name.img
: This is the name of the disk image file for which we want to dump the allocation state.
Example output:
sector 0: -> [unallocated]
sector 1: -> [allocation locked to unknown]
sector 2: -> [unallocated]
...
Use case 5: Convert a VMware .vmdk disk image to a KVM .qcow2 disk image
Code:
qemu-img convert -f vmdk -O qcow2 path/to/file/foo.vmdk path/to/file/foo.qcow2
Motivation:
When migrating virtual machines between different hypervisors, the disk image format may need to be converted. The qemu-img convert
command allows us to convert disk images from one format to another. In this example, we convert a VMware .vmdk disk image to a KVM .qcow2 disk image.
Explanation:
qemu-img convert
: This is the command to convert a disk image.-f vmdk
: This specifies the input format of the disk image as VMware .vmdk.-O qcow2
: This specifies the output format of the converted disk image as KVM .qcow2.path/to/file/foo.vmdk
: This is the path to the source .vmdk file.path/to/file/foo.qcow2
: This is the path to the destination .qcow2 file.
Example output:
Converting 'path/to/file/foo.vmdk'...
Conclusion:
The qemu-img
command is a powerful tool for creating, manipulating, and converting disk images in a virtualized environment. With its various options and functionalities, it provides a flexible and versatile way to manage disk images efficiently. Understanding the available use cases and their syntax can greatly enhance the virtualization experience.