Berikut merupakan cheatsheet atau referensi untuk semua perintah terkait qemu-img yang dapat digunakan berdasarkan syntax yang tersedia.
$ qemu-img --help
qemu-img version 6.2.0 (Debian 1:6.2+dfsg-2ubuntu6.15)
Copyright (c) 2003-2021 Fabrice Bellard and the QEMU Project developers
usage: qemu-img [standard options] command [command options]
QEMU disk image utility
'-h', '--help' display this help and exit
'-V', '--version' output version information and exit
'-T', '--trace' [[enable=]<pattern>][,events=<file>][,file=<file>]
specify tracing options
Command syntax:
amend [--object objectdef] [--image-opts] [-p] [-q] [-f fmt] [-t cache] [--force] -o options filename
bench [-c count] [-d depth] [-f fmt] [--flush-interval=flush_interval] [-i aio] [-n] [--no-drain] [-o offset] [--pattern=pattern] [-q] [-s buffer_size] [-S step_size] [-t cache] [-w] [-U] filename
bitmap (--merge SOURCE | --add | --remove | --clear | --enable | --disable)... [-b source_file [-F source_fmt]] [-g granularity] [--object objectdef] [--image-opts | -f fmt] filename bitmap
check [--object objectdef] [--image-opts] [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] [-U] filename
commit [--object objectdef] [--image-opts] [-q] [-f fmt] [-t cache] [-b base] [-r rate_limit] [-d] [-p] filename
compare [--object objectdef] [--image-opts] [-f fmt] [-F fmt] [-T src_cache] [-p] [-q] [-s] [-U] filename1 filename2
convert [--object objectdef] [--image-opts] [--target-image-opts] [--target-is-zero] [--bitmaps] [-U] [-C] [-c] [-p] [-q] [-n] [-f fmt] [-t cache] [-T src_cache] [-O output_fmt] [-B backing_file [-F backing_fmt]] [-o options] [-l snapshot_param] [-S sparse_size] [-r rate_limit] [-m num_coroutines] [-W] [--salvage] filename [filename2 [...]] output_filename
create [--object objectdef] [-q] [-f fmt] [-b backing_file] [-F backing_fmt] [-u] [-o options] filename [size]
dd [--image-opts] [-U] [-f fmt] [-O output_fmt] [bs=block_size] [count=blocks] [skip=blocks] if=input of=output
info [--object objectdef] [--image-opts] [-f fmt] [--output=ofmt] [--backing-chain] [-U] filename
map [--object objectdef] [--image-opts] [-f fmt] [--start-offset=offset] [--max-length=len] [--output=ofmt] [-U] filename
measure [--output=ofmt] [-O output_fmt] [-o options] [--size N | [--object objectdef] [--image-opts] [-f fmt] [-l snapshot_param] filename]
snapshot [--object objectdef] [--image-opts] [-U] [-q] [-l | -a snapshot | -c snapshot | -d snapshot] filename
rebase [--object objectdef] [--image-opts] [-U] [-q] [-f fmt] [-t cache] [-T src_cache] [-p] [-u] -b backing_file [-F backing_fmt] filename
resize [--object objectdef] [--image-opts] [-f fmt] [--preallocation=prealloc] [-q] [--shrink] filename [+ | -]size
Get Output in JSON #
Untuk mengubah format output menjadi json tambahkan parameter --output=json
$ qemu-img info cirros-0.6.2-x86_64-disk.img --output=json
{
"virtual-size": 117440512,
"filename": "cirros-0.6.2-x86_64-disk.img",
"cluster-size": 65536,
"format": "qcow2",
"actual-size": 50466816,
"format-specific": {
"type": "qcow2",
"data": {
"compat": "1.1",
"compression-type": "zlib",
"lazy-refcounts": false,
"refcount-bits": 16,
"corrupt": false,
"extended-l2": false
}
},
"dirty-flag": false
}
Get Full Chain #
Untuk mengetahui dimana letak backing file berada.
qemu-img info --backing-chain filename
Convert Image #
Anda dapat mengonversi image qcow2 ke format raw, qed, vdi, vmdk, vhd lalu menjalankannya di hypervisor yang mendukung format image tersebut.
| Image format | Argument to qemu-img |
|---|---|
| QCOW2 (KVM, Xen) | qcow2 |
| QED (KVM) | qed |
| raw | raw |
| VDI (VirtualBox) | vdi |
| VHD (Hyper-V) | vpc |
| VMDK (VMware) | vmdk |
Contoh perintah untuk mengonversi image qcow2 ke format vmdk
qemu-img convert -f qcow2 -O vmdk filename.qcow2 output_filename.vmdk
Resize/Expand Disk Image #
Untuk mengubah size disk image.
qemu-img resize -f fmt filename [+ | -]size
Gunakan perintah resize untuk memperbesar disk image. Apabila ingin memperkecil disk image, Anda perlu menggunakan tool untuk mengelola partisi
di dalam VM agar ukuran partisi bisa dikurangi lalu setelahnya Anda bisa menjalankan perintah resize untuk memperkecil disk image.
Selalu utamakan backup sebelum melakukan resize karena kegagalan dalam proses resize dapat mengakibatkan hilangnya data.
Merge Image Into Its Backing File - Commit #
Katakanlah Anda memiliki disk image bernama head.qcow2 dan base.qcow2 sebagai backing file. Jika Anda ingin menggabungkan keduanya, gunakan perintah commit agar
perubahan pada head.qcow2 dapat tersimpan di base.qcow2
qemu-img commit head.qcow2
Change Path Of Backing File #
Jika Anda memindahkan backing file base.qcow2 ke path lain, Gunakan perintah rebase pada head.qcow2 untuk mengubah path backing file agar menunjuk ke lokasi
yang baru.
qemu-img rebase -f qcow2 -u -b /path/to/base.qcow2 -F qcow2 head.qcow2
Perintah rebase hanya mendukung disk image dengan format qcow2 saja.
Collapse/Flatten All Images #
Jika perintah commit untuk menggabungkan perubahan pada head.qcow2 ke backing file base.qcow2. Lalu bagaimana jika Anda ingin membuat head.qcow2 sebagai disk image
yang utuh tanpa backing file ?
Untuk melakukan hal tersebut Anda bisa menggunakan perintah virsh blockpull
virsh blockpull domname vda --wait --verbose
Internal Snapshots #
List Snapshots
qemu-img snapshot -l filename
Create Snapshot
qemu-img snapshot -c snapshot1 filename
Restore (Apply) Snapshot
qemu-img snapshot -a snapshot1 filename
Delete Snapshot
qemu-img snapshot -d snapshot1 filename