Mengendalikan VM lewat QEMU Human Monitor Protocol (HMP) dengan -monitor stdio dan perintah info savevm system_reset quit, lalu mengelola akses console lewat VNC SPICE serial dan -nographic untuk server tanpa GUI

Sebuah VM tidak selalu punya "layar". Server headless di data center tidak mencolok monitor — kalian mengaksesnya lewat console jaringan atau serial. Di episode 8 ini kita membahas dua saraf pengendali VM: QEMU Monitor (HMP) untuk memeriksa dan mengendalikan mesin dari luar, serta mode console (VNC, SPICE, serial, -nographic) untuk berinteraksi dengan sistem di dalam guest.
Kedua hal ini sering dicampur. Monitor adalah "dashboard" QEMU itu sendiri; console adalah "layar/keyboard" yang diberikan ke guest. Menguasai keduanya membuat kalian bisa mengelola VM tanpa GUI sama sekali.
QEMU Monitor adalah antarmuka interaktif untuk memeriksa dan mengendalikan QEMU. Versi lama/standar disebut HMP (Human Monitor Protocol) — perintah teks sederhana yang bisa dibaca manusia. Aktifkan dengan -monitor:
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 \
-monitor stdio \
-display noneDengan -display none + -monitor stdio, terminal kalian menjadi monitor. Guest tanpa display tetap jalan — ini cara standar menjalankan VM headless. Tekan Ctrl+a c untuk berpindah antara monitor dan console serial jika keduanya aktif.
Beberapa perintah yang wajib dikuasai:
(info) → daftar semua sub-perintah info
info kvm → status akselerasi (kvm aktif atau tcg)
info cpus → detail vCPU
info block → status disk
info network → status network
savevm tag → simpan snapshot VM (episode 13)
system_reset → reset VM seperti tekan tombol reset
system_powerdown → kirim sinyal shutdown ke guest
quit (q) → matikan QEMU segeraContoh sesi monitor:
(qemu) info kvm
kvm support: enabled
(qemu) info cpus
* CPU#0: pc=0xffffffff8105d4be
CPU#1: pc=0xffffffff8105d4beNote
info kvm adalah diagnosa nomor satu kalau VM terasa lambat. Jika outputnya kvm support: disabled, berarti QEMU jatuh ke TCG — cek /dev/kvm dan flag -accel kvm kalian.
savevm tag menyimpan seluruh status VM (RAM + disk) ke dalam qcow2 — kombinasi dengan snapshot qcow2 dari episode 5. system_powerdown lebih halus daripada quit: ia mengirim ACPI power button sehingga guest bisa mematikan diri dengan bersih.
Untuk VM dengan GUI yang diakses dari jauh, QEMU punya VNC server bawaan:
qemu-system-x86_64 -vnc :1-vnc :1 berarti display VNC ke-1 (port 5901). Akses dengan vncviewer host:5901. Untuk keamanan, kombinasikan dengan SSH tunneling atau password VNC (-vnc :1,password=on). VNC tidak terenkripsi — jangan expose langsung ke internet.
SPICE adalah protokol display modern untuk desktop guest (bisa sound, clipboard, USB):
qemu-system-x86_64 -spice port=5900,addr=127.0.0.1,disable-ticketing=on \
-device virtio-vgaKonsumen SPICE yang umum adalah virt-viewer (remote-viewer spice://127.0.0.1:5900). SPICE unggul untuk desktop interaktif; VNC lebih sederhana dan universal.
Untuk server Linux, cara paling hemat adalah serial console — tanpa emulasi VGA sama sekali:
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 \
-nographic-nographic setara -serial mon:stdio + -display none: serial console di terminal, dan Ctrl+a c beralih ke monitor. Syaratnya, guest harus mengirim output ke serial. Di guest Linux, boot kernel dengan console=ttyS0:
# Di /etc/default/grub:
GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"Setelah update-grub, output boot dan login muncul di serial. Ini fondasi cara data center mengelola ribuan VM tanpa monitor fisik.
-vnc ke internet = undangan hack. Selalu tunnel atau beri password.console=ttyS0 di kernel — layar serial kosong meski VM jalan.quit terlalu kasar: quit langsung membunuh proses; pakai system_powerdown dulu agar guest shutdown dengan bersih.Pada episode 8 ini, kalian telah menguasai monitor dan console QEMU.
Inti yang harus dibawa pulang:
-monitor stdio) memberi kendali penuh: info kvm, info cpus, savevm, system_reset, system_powerdown, quit.-vnc :1) dan SPICE (-spice) untuk akses display jarak jauh; SPICE lebih kaya fitur, VNC lebih universal.-nographic untuk server headless — butuh console=ttyS0 di guest.Ctrl+a c untuk berpindah monitor ↔ serial console.Di episode 9 selanjutnya, kita akan beralih ke layer manajemen: libvirt & virsh — memahami daemon dan driver (qemu:///system), serta workflow virsh define/start/shutdown/destroy, virsh list, virsh dominfo, dan virsh dumpxml. Sampai jumpa di episode 9!