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
flowchart 561572("head.qcow2") --> 429380("commit") 429380 --> 482324("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