QEMU Tanpa Monitor (Headless)
Dalam tulisan saya sebelumnya mengenai QEMU, saya telah menuliskan bagaimana menjalankan QEMU tanpa menggunakan output monitor untuk mesin virtual kita. Jika sebelumnya saya menulis tentang fitur VNC di QEMU, maka saat ini saya akan membahas bagaimana menjalankan QEMU tanpa monitor dan tanpa VNC. Untuk tujuan itu saya menggunakan fasilitas konsol serial yang sudah ada pada hampir semua sistem operasi termasuk linux (Slackware). Dalam tulisan ini saya tidak akan membahas pengarahan ke konsol serial untuk sistem operasi dari keluarga MS Windows atau BSD. Saya akan menggunakan sistem operasi kesayangan saya, Slackware Linux. Apa keuntungan dari konsol serial? Kan sudah ada jaringan internet, jadi bisa menggunakan SSH atau VNC?
Konsol serial adalah 'barang lama' yang masih ampuh hingga sekarang. Prinsipnya sederhana saja yaitu mengarahkan semua input/output dari konsol biasa (Video Monitor, Keyboard, Mouse) ke sebuah perangkat serial sehingga dapat diakses menggunakan perangkat terminal eksternal baik berupa perangkat keras ataupun perangkat lunak. Kenapa harus menggunakan konsol serial? Apakah koneksi internet masih tidak memadai? Baik, ini adalah sebuah pertanyaan klasik. Tapi begini, mari kita bayangkan bahwa mesin kita adalah sebuah mesin kontrol yang tidak terhubung ke internet dan karena keterbatasan sumber daya energi, maka semua input/output standar tidak kita tancapkan pada mesin kita. Atau misalkan mesin kita tersebut karena suatu alasan keamanan tertentu tidak boleh berhubungan dengan internet dan tetapi harus dapat dikontrol secara berkala secara remote alias kita tidak boleh mendekat pada mesin tersebut. Tentunya masih ada perangkat-perangkat penyambung yaitu berupa kabel input/output yang sering ditancapkan pada terminal serial pada mesin tersebut. Atau dalam kasus saya saat menggunakan QEMU, saya tidak ingin QEMU membuka sebuah terminal lagi di desktop dan saya ingin agar setelah saya mengeksekusi QEMU, sistem operasi yang saya jalankan langsung tampak pada layar terminal yang sedang saya gunakan. Hemat jendela dan pastinya sumber daya . Jika alasan-alasan tersebut masih belum mencukupi, biarkan saya merenung beberapa hari/minggu untuk mengarang alasan yang lain .
Lanjut ke QEMU dulu. Nah agar QEMU tidak memunculkan terminal baru, kita dapat memaksa QEMU untuk berjalan tanpa kepala (headless/tanpa monitor) dengan menambahkan opsi -nographic. Secara default QEMU akan membuka port serial pertama atau di ttyS0 yang dapat kita manfaatkan dengan mengkonfigurasi OS Guest QEMU (Host OS tidak perlu diutak atik):
Pertama, konfigurasi LILO agar mengarahkan input/output boot loader ke konsol serial:
boot = /dev/sda lba32 # Buat LILO membuka kanal konsol serial serial = 0,57600n8
Kedua, konfigurasi kernel yang akan di-boot agar mengarahkan input/output-nya ke konsol serial:
image = /boot/vmlinuz initrd = /boot/initrd # Buat supaya kernel membuka kanal konsol serial append=" console=tty0 console=ttyS0,57600n8"
ketiga, konfigurasi inittab agar membuka kanal konsol serial setelah sistem operasi selesai boot dan masuk ke init:
# Local serial lines: s1:12345:respawn:/sbin/agetty -L ttyS0 57600 vt100
Setelah itu tinggal boot Guest OS-nya di QEMU dengan menambahkan opsi -nographic dan wallaaaaaaaaaaaa:
LILO Boot on QEMU Serial Console
Slackware kernel boot progress on QEMU serial console.
Slackware console login screen on QEMU serial console.
Slackware shutdown progress on QEMU serial console.
Meskipun berjalan dalam kondisi tanpa monitor, QEMU Monitor sendiri masih dapat diakses dengan menggunakan kombinasi tombol CTRL+a+c. QEMU Monitor akan menggunakan terminal yang sama dengan Guest OS jadi terkadang sedikit membingungkan jika tidak terbiasa.
Untuk informasi yang lebih lengkap mengenai konsol serial di linux silakan lihat di sini:
http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/index.html
Selamat mencoba.



