Linux punya dua stack virtualisasi yang paling sering dipakai: VirtualBox dan KVM/QEMU. Keduanya sama-sama menjalankan mesin virtual, tetapi lahir dari filosofi yang berbeda — VirtualBox adalah aplikasi desktop yang memprioritaskan kemudahan pakai, sedangkan KVM adalah bagian dari kernel Linux yang memprioritaskan performa. Pilihan di antara keduanya menentukan alur kerja kita untuk waktu lama: cara memasangnya, format disk yang dipakai, sampai alat manajemen yang menyertainya. Chapter ini membedah masing-masing secara adil, lalu menutup dengan tabel perbandingan dan panduan memilih; karena lingkungan latihan tidak memasang keduanya, kita memakai pemeriksaan nyata yang tetap tersedia ditambah contoh tampilan tipikal.
VirtualBox: Hypervisor Desktop yang Ramah #
VirtualBox adalah hypervisor tipe 2 buatan Oracle yang berjalan di Windows, macOS, dan Linux — guest Linux-nya sama di mana pun hostnya berada. Satu paket aplikasi sudah berisi semua yang dibutuhkan pemula: wizard pembuatan VM langkah demi langkah, jendela console untuk melihat layar guest, pengaturan perangkat lewat form, dan tombol snapshot. Pemasangannya satu baris di Debian dan Ubuntu, dengan seluruh manajemen paket yang sudah kita kuasai di Chapter APT dan dpkg :
sudo apt install virtualboxPerintah itu tidak bisa dijalankan di lingkungan latihan kita yang tanpa root, tetapi di komputer sendiri ia memasang aplikasi beserta modul kernel vboxdrv yang dibutuhkannya. Fitur andalannya ada di guest additions: kumpulan driver dan service yang dipasang di dalam guest, memberi resolusi layar dinamis, clipboard bersama dengan host, drag-and-drop, dan shared folder — folder host yang muncul sebagai disk di guest. Kemampuan menyimpan snapshot keadaan VM juga terpasang bawaan, sehingga percobaan berisiko bisa dibatalkan dalam sekali klik. Format disk andalannya bernama VDI (VirtualBox Disk Image), yang juga bersifat sparse seperti raw pada Chapter Virtualization Concepts
.
KVM/QEMU: Virtualisasi Native di Dalam Kernel #
KVM (Kernel-based Virtual Machine) bukan aplikasi terpisah, melainkan modul di dalam kernel Linux sejak versi 2.6.20 — saat termuat, kernel host itu sendiri berubah menjadi hypervisor tipe 1. QEMU berperan di userspace sebagai pengemulasi perangkat: disk, kartu jaringan, layar, sampai BIOS. Gabungan keduanya inilah stack virtualisasi standar Linux: QEMU menyediakan mesinnya, KVM menyediakan akselerasi hardware VT-x/AMD-V, dan guest berjalan nyaris secepat proses biasa. Konsekuensi arsitektur ini: KVM hanya hidup di Linux, tidak ada di Windows atau macOS.
Pintu masuk akselerasi itu adalah berkas perangkat /dev/kvm. Kernel membuat berkas karakter ini ketika modul kvm termuat, dan setiap QEMU membukanya untuk menaruh guest di mode non-root CPU. Kita bisa memeriksa dua tanda itu sekaligus:
ls -l /dev/kvm 2>&1
grep '^kvm:' /etc/groupOutput yang Dihasilkan:
ls: cannot access '/dev/kvm': No such file or directoryDua baris itu menunjukkan bahwa di lingkungan latihan ini KVM tidak aktif: perangkat /dev/kvm tidak ada dan group kvm tidak terdaftar di /etc/group. Pada host Linux yang siap memakai KVM, berikut contoh tampilan baris pertama:
crw-rw----+ 1 root kvm 10, 232 Okt 20 09:14 /dev/kvmHuruf c di awal menandakan perangkat karakter, dan nama group kvm setelah root adalah kuncinya: user biasa harus menjadi anggota group tersebut agar boleh menulis ke /dev/kvm tanpa root — pemasangan paket virtualisasi biasanya mengatur ini otomatis. Kegagalan paling umum adalah modul yang tidak termuat karena VT-x/AMD-V dimatikan di firmware; mengaktifkannya di BIOS/UEFI seperti pada Chapter Virtualization Concepts
biasanya langsung memunculkan berkas ini setelah reboot.
Format qcow2 dan Ukuran yang Tumbuh #
Disk virtual KVM lazim memakai format qcow2 (QEMU copy-on-write versi 2). Format ini mewarisi sifat sparse dari raw — ukuran fisik tumbuh mengikuti data yang ditulis — lalu menambahkan snapshot internal, kompresi, dan dukungan backing file: satu berkas dasar dibaca-beramai-ramai oleh banyak disk turunannya. Alat qemu-img memeriksa kedua ukuran itu sekaligus; berikut contoh tampilan qemu-img info vm-web.qcow2 pada disk yang sudah terpakai:
image: vm-web.qcow2
file format: qcow2
virtual size: 20 GiB (21474836480 bytes)
disk size: 1.4 GiBBaris virtual size adalah kapasitas yang dilihat guest, sedangkan disk size adalah ruang yang benar-benar dipakai di host — persis selisih yang kita ukur sendiri dengan stat dan du pada chapter sebelumnya.
Tabel Perbandingan #
| Aspek | VirtualBox | KVM/QEMU |
|---|---|---|
| Tipe hypervisor | 2 (hosted) | 1 lewat modul kernel |
| Host yang didukung | Windows, macOS, Linux | Linux saja |
| Instalasi | satu paket aplikasi | modul kernel bawaan + qemu-system-x86 + libvirt |
| Manajemen GUI | terpasang bawaan | terpisah: virt-manager |
| Performa guest Linux | baik, dengan lapisan OS host | nyaris native dengan driver virtio |
| Format disk utama | VDI (juga VMDK, VHD, raw) | qcow2 (juga raw) |
| Ekosistem produksi | terbatas desktop | standar di cloud dan data center Linux |
Baris “ekosistem” adalah pembeda paling tajam: VirtualBox berhenti manis di desktop, sedangkan KVM/QEMU menjadi fondasi penyedia cloud dan private cloud seperti OpenStack. Sebaliknya, baris “instalasi” memenangkan VirtualBox bagi pemula — satu paket, satu wizard, selesai.
Memilih Sesuai Kebutuhan #
Keputusan memilih stack sebenarnya mengikuti dua pertanyaan: di OS apa host berjalan, dan beban kerja apa yang hendak dijalankan? Pemetaannya bisa kita rangkum sebagai tabel keputusan kecil dalam bash:
pilih_stack() {
case "$1" in
desktop-belajar) echo "VirtualBox - GUI lengkap, pasang satu paket" ;;
server-produksi) echo "KVM/QEMU - performa native, dikelola virsh" ;;
os-tamu-windows) echo "VirtualBox - integrasi desktop paling mulus" ;;
guest-arm) echo "QEMU murni - emulasi lintas arsitektur" ;;
esac
}
for kasus in desktop-belajar server-produksi os-tamu-windows guest-arm; do
printf '%-16s -> %s\n' "$kasus" "$(pilih_stack "$kasus")"
doneOutput yang Dihasilkan:
desktop-belajar -> VirtualBox - GUI lengkap, pasang satu paket
server-produksi -> KVM/QEMU - performa native, dikelola virsh
os-tamu-windows -> VirtualBox - integrasi desktop paling mulus
guest-arm -> QEMU murni - emulasi lintas arsitekturMari kita bedah baris demi baris:
- Baris 1 (
pilih_stack() {): mendefinisikan fungsi bash yang menerima satu kasus penggunaan dan mengembalikan rekomendasi stack. - Baris 2–7 (
case "$1" in ... esac): empat pola kasus — setiap pola memetakan satu skenario nyata ke satu keputusan, misalnyaguest-armjatuh ke QEMU murni karena hanya QEMU yang sanggup mengemulasikan arsitektur berbeda. - Baris 8–10 (
for kasus in ...): mengulang keempat kasus dan mencetak hasil pemetaannya sebagai tabel rapi denganprintf.
Kasus server-produksi menunjukkan alasan KVM berjalan tanpa GUI bawaan: server di ruang mesin tidak punya layar, dan satu-satunya pintu masuknya adalah SSH — keadaan yang kita tangani di Section Remote Access dan Headless Linux
. Di sanalah virsh berkuasa penuh, dan itulah topik chapter berikutnya: libvirt, lapisan manajemen yang menyatukan semua VM KVM di bawah satu API.
Referensi lanjut: VirtualBox di Debian Wiki , QEMU di Debian Wiki , serta KVM di Arch Wiki untuk detail dukungan hardware tiap generasi CPU.