Menjalankan VM pertama dari ISO installer dengan qemu-system-x86_64 -cdrom dan -boot order=d, menyelesaikan instalasi OS di dalam guest, partisi disk dengan parted dan LVM, hingga boot pertama dari hard disk

Momentum yang kalian tunggu akhirnya tiba: booting VM pertama dari ISO. Semua teori episode 0-5 akan dipakai sekaligus — image qcow2 dari episode 5, parameter vCPU/RAM dari episode 4, dan machine type q35. Di akhir episode ini, kalian akan punya guest OS yang berjalan dan bisa diakses.
Konsep yang wajib dipahami: QEMU tidak peduli apa pun yang ada di dalam image — ia hanya mengekspos disk, CD-ROM, dan device ke guest. Installer di dalam guest yang menulis sistem operasi ke disk virtual. QEMU hanyalah "hardware", dan guest adalah "tukang instalasinya".
Pertama, siapkan bahan: ISO installer (misal Ubuntu/Debian/Rocky) dan image disk kosong.
qemu-img create -f qcow2 ubuntu-vm.qcow2 20GDownload ISO installer ke direktori kerja:
wget https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.isoNote
Selalu unduh ISO dari situs resmi distribusi dan verifikasi checksum. ISO yang dimodifikasi adalah vektor serangan klasik untuk menanam malware di dalam "server" kalian.
Boot VM dari ISO, dengan disk kosong sebagai target instalasi:
qemu-system-x86_64 \
-machine q35 \
-accel kvm \
-m 2048 \
-smp 2 \
-cdrom ubuntu-24.04.3-live-server-amd64.iso \
-boot order=d \
-drive file=ubuntu-vm.qcow2,format=qcow2,if=virtio \
-netdev user,id=net0 \
-device virtio-net-pci,netdev=net0 \
-display gtkPerhatikan tiap bagian:
-boot order=d — boot pertama dari CD-ROM (d = optical), bukan disk.-drive file=ubuntu-vm.qcow2,format=qcow2,if=virtio — disk virtual dengan driver paravirtual virtio (episode 12).-netdev user + virtio-net-pci — jaringan NAT dasar (episode 7).-display gtk — window GUI untuk melihat installer.Installer akan muncul di window. Lakukan instalasi seperti biasa di mesin fisik.
Saat installer menanyakan skema partisi, ini saatnya berlatih keputusan storage. Dua pendekatan umum:
Pendekatan 1 — Partisi sederhana (booting cepat, mudah didiagnosa):
/boot/efi 512M (jika UEFI/OVMF)
/ 19.5G ext4/xfs
swap sesuai kebutuhanPendekatan 2 — LVM (fleksibel, rekomendasi untuk produksi):
/boot/efi 512M (jika UEFI/OVMF)
/boot 1G ext4
PV 18.5G → VG ubuntu-vg → LV root 15G, LV var 3.5GLVM memberi kalian kemampuan memperluas LV tanpa menata ulang partisi — kombinasi sempurna dengan qemu-img resize dari episode 5. Di luar installer, operasi yang sama bisa dilakukan dengan parted dan lvresize.
Ubuntu/Debian modern mengenali virtio-blk secara otomatis dan menampilkan disk sebagai /dev/vda. Rocky/CentOS juga sama pada kernel modern. Jika installer tidak melihat disk, cek apakah module virtio_blk tersedia — atau untuk keamanan, instal dengan if=ide dulu lalu ganti ke virtio.
lsblkOutput harus menampilkan /dev/vda (atau /dev/sda jika emulasi). Jika kosong, kernel guest belum punya driver virtio.
Setelah instalasi selesai, restart VM — sekarang boot dari disk:
qemu-system-x86_64 \
-machine q35 \
-accel kvm \
-m 2048 \
-smp 2 \
-drive file=ubuntu-vm.qcow2,format=qcow2,if=virtio \
-netdev user,id=net0 \
-device virtio-net-pci,netdev=net0 \
-display gtkHilangkan -cdrom dan -boot order=d (default sudah boot dari disk). Login ke guest, lalu verifikasi:
uname -a
free -h
cat /proc/cpuinfo | grep "model name"Tip
Cek accelerator yang aktif dengan menjalankan info kvm di QEMU Monitor (Ctrl+Alt+2) atau perhatikan window: guest yang berjalan mulus tanpa lag tinggi kemungkinan besar memakai KVM, bukan TCG.
-boot order=d membuat VM selalu boot CD-ROM; setelah instalasi, hilangkan flag ini atau ganti order=c.virtio_blk tidak termuat di kernel installer — gunakan if=ide saat instalasi, konversi ke virtio setelahnya.-display gtk butuh pustaka GTK. Di server tanpa GUI, pakai -display none -nographic dengan serial console (episode 8).Pada episode 6 ini, kalian telah menciptakan VM pertama yang bisa boot.
Inti yang harus dibawa pulang:
-cdrom ISO -boot order=d membawa installer; setelah selesai, boot dari disk.-drive file=vm.qcow2,format=qcow2,if=virtio mengekspos disk virtual.lsblk di guest memastikan disk terdeteksi (/dev/vda = virtio).Di episode 7 selanjutnya, kita akan membahas networking dasar: user & tap — memahami -netdev user (SLIRP, NAT internal, port forwarding via hostfwd) dan -netdev tap dengan bridge untuk menghubungkan VM ke LAN fisik. Sampai jumpa di episode 7!