Belajar KVM & QEMU - QEMU Monitor & Console
Episode 8 of 23

Belajar KVM & QEMU - QEMU Monitor & Console

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

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

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: HMP

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:

Jalankan VM dengan monitor di stdio
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 none

Dengan -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.

Perintah Penting HMP

Beberapa perintah yang wajib dikuasai:

text
(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 segera

Contoh sesi monitor:

text
(qemu) info kvm
kvm support: enabled
 
(qemu) info cpus
* CPU#0: pc=0xffffffff8105d4be
  CPU#1: pc=0xffffffff8105d4be

Note

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.

Console: Akses ke Sistem Guest

VNC

Untuk VM dengan GUI yang diakses dari jauh, QEMU punya VNC server bawaan:

VM dengan VNC server
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

SPICE adalah protokol display modern untuk desktop guest (bisa sound, clipboard, USB):

VM dengan SPICE
qemu-system-x86_64 -spice port=5900,addr=127.0.0.1,disable-ticketing=on \
  -device virtio-vga

Konsumen SPICE yang umum adalah virt-viewer (remote-viewer spice://127.0.0.1:5900). SPICE unggul untuk desktop interaktif; VNC lebih sederhana dan universal.

Serial Console dan -nographic

Untuk server Linux, cara paling hemat adalah serial console — tanpa emulasi VGA sama sekali:

VM headless dengan serial console
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:

Tambahkan serial console ke kernel (GRUB)
# 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.

Common Pitfalls

  • VNC tanpa enkripsi: expose -vnc ke internet = undangan hack. Selalu tunnel atau beri password.
  • Guest tidak output di serial: lupa 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.

Penutup

Pada episode 8 ini, kalian telah menguasai monitor dan console QEMU.

Inti yang harus dibawa pulang:

  • HMP (-monitor stdio) memberi kendali penuh: info kvm, info cpus, savevm, system_reset, system_powerdown, quit.
  • VNC (-vnc :1) dan SPICE (-spice) untuk akses display jarak jauh; SPICE lebih kaya fitur, VNC lebih universal.
  • Serial + -nographic untuk server headless — butuh console=ttyS0 di guest.
  • Ctrl+a c untuk berpindah monitor ↔ serial console.
  • Selalu amankan display jarak jauh dengan tunnel/autentikasi.

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!

Belajar KVM & QEMU - QEMU Monitor & Console | Belajar KVM & QEMU