Disk image adalah file yang berisi data dari sebuah disk virtual, sering digunakan untuk simulasi lingkungan komputasi dalam virtualisasi. Dalam konteks QEMU (Quick Emulator), dua format disk image yang paling umum digunakan adalah QCOW2 (QEMU Copy-On-Write version 2).
Salah satu konsep penting dalam disk image adalah virtual size. Virtual size mengacu pada ukuran total kapasitas disk yang terlihat oleh sistem operasi tamu (guest OS). Virtual size adalah batas maksimal ruang penyimpanan yang dapat digunakan oleh guest OS, meskipun file disk image itu sendiri mungkin tidak menggunakan semua ruang tersebut di host.
Menampilkan Informasi Virtual Size dan Actual Size
Untuk menampilkan informasi tentang virtual size dan actual size dari disk image, kita dapat menggunakan perintah qemu-img
yang merupakan utilitas bawaan QEMU.
qemu-img info ubuntu.img
Output:
image: ubuntu.img
file format: qcow2
virtual size: 3.5 GiB (3758096384 bytes)
disk size: 582 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
- virtual size: kapasitas maksimum disk yang terlihat oleh guest OS, 3.5GB.
- disk size: ukuran aktual file disk image di host, 582MB.
Contoh lain, disk image Rocky Linux:
image: rocky.qcow2
file format: qcow2
virtual size: 10 GiB (10737418240 bytes)
disk size: 582 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
Menaikkan Kapasitas Disk Image (Resize)
Jika memerlukan lebih banyak ruang untuk guest OS, kita dapat meningkatkan virtual size disk image menggunakan perintah qemu-img resize
. Proses ini hanya menambahkan ruang kosong; tetap perlu memperluas partisi di dalam guest OS setelahnya.
Menaikkan kapasitas disk menjadi 30GB:
qemu-img resize ubuntu.img 30G
Output:
Image resized.
Verifikasi hasil resize:
qemu-img info ubuntu.img
Output:
image: ubuntu.img
file format: qcow2
virtual size: 30 GiB (32212254720 bytes)
disk size: 582 MiB
cluster_size: 65536
Format specific information:
compat: 1.1
compression type: zlib
lazy refcounts: false
refcount bits: 16
corrupt: false
extended l2: false
Memperluas Partisi
Masuk ke guest OS atau virtual machine, lalu melihat partisi yang ada beserta kapasitasnya.
lsblk
Output:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 2.5G 0 part /
├─vda14 253:14 0 4M 0 part
├─vda15 253:15 0 106M 0 part /boot/efi
└─vda16 259:0 0 913M 0 part /boot
Dalam contoh ini, vda
memiliki ukuran 30GB, sementara ukuran partisi vda1
hanya 2.5G. Ruang disk yang tersisa mau dialokasikan seluruhnya ke partisi vda1
.
Memperluas partisi vda1
:
growpart /dev/vda 1
Output:
CHANGED: partition=1 start=2099200 old: size=5240799 end=7339998 new: size=60815327 end=62914526
Lalu resize2fs
:
resize2fs /dev/vda1
Output:
resize2fs 1.47.0 (5-Feb-2023)
Filesystem at /dev/vda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/vda1 is now 7601915 (4k) blocks long.
Verifikasi hasilnya dengan lsblk
atau df -h
:
root@ubuntu:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 30G 0 disk
├─vda1 253:1 0 29G 0 part /
├─vda14 253:14 0 4M 0 part
├─vda15 253:15 0 106M 0 part /boot/efi
└─vda16 259:0 0 913M 0 part /boot
root@ubuntu:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 97M 1.0M 96M 2% /run
/dev/vda1 29G 1.6G 27G 6% /
tmpfs 481M 0 481M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda16 881M 61M 758M 8% /boot
/dev/vda15 105M 6.1M 99M 6% /boot/efi
tmpfs 97M 12K 97M 1% /run/user/0
Ukuran disk dan partisi sudah berhasil dinaikkan kapasitasnya.