Skip to main content
  1. Posts/

Direct Kernel Boot in Libvirt

·2 mins·
libvirt libvirt kvm
Table of Contents

Direct kernel boot memungkinkan VM dapat booting menggunakan kernel yang tersimpan di Host server sehingga sering kali berguna jika Anda menghadapi case dimana VM tidak dapat booting karena kernel yang rusak atau corrupt.

Get Kernel
#

Anda bisa menggunakan kernel baik dari Host server atau mengambil dari VM yang lain dengan perintah virt-get-kernel

virt-get-kernel [--options] -d domname

virt-get-kernel [--options] -a disk.img

Saya sarankan untuk menggunakan versi kernel yang sama, misalkan VM dengan kernel yang rusak sebelumnya memakai kernel 4.x maka kernel untuk direct boot harus sama 4.x atau Anda dapat mengambilnya dari VM dengan sistem operasi yang sama. Hal ini agar module kernel dapat diload dengan baik dan service yang terinstall bisa berjalan normal.

# virt-get-kernel -d domname -o /var/lib/libvirt/boot/
download: /boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64 -> /var/lib/libvirt/boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64
download: /boot/initramfs-4.18.0-477.10.1.el8_8.x86_64.img -> /var/lib/libvirt/boot/initramfs-4.18.0-477.10.1.el8_8.x86_64.img

Configure XML
#

Setelah file kernel tersimpan, selanjutnya edit XML pada VM yang akan digunakan untuk direct boot.

virsh edit domname
<os>
  <type arch='x86_64' machine='pc-q35-6.2'>hvm</type>
  <kernel>/var/lib/libvirt/boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64</kernel>
  <initrd>/var/lib/libvirt/boot/initramfs-4.18.0-477.10.1.el8_8.x86_64.img</initrd>
  <cmdline>root=/dev/vda2 ro console=ttyS0,115200n8</cmdline>
  <boot dev='hd'/>
</os>

Pastikan Anda mengeditnya dibawah attribut <os> dan pada element <cmdline> sesuaikan dengan partisi root yang digunakan.

Start VM untuk memulai pengetesan.

virsh start domname

Kemudian akses console VM.

$ virsh console domname 
Connected to domain 'domname' Escape character is ^] (Ctrl + ])

Rocky Linux 8.8 (Green Obsidian)
Kernel 4.18.0-477.10.1.el8_8.x86_64 on an x86_64

Activate the web console with: systemctl enable --now cockpit.socket

domname login:

Jika versi Kernel sama maka percobaan direct boot berhasil.

Kernel 4.18.0-477.10.1.el8_8.x86_64 on an x86_64

Related

Using Tunnel in Libvirt
·2 mins
libvirt libvirt kvm
Quality of Service di Libvirt
·1 min
libvirt libvirt kvm
Direct Attachment Interface in Libvirt
·2 mins
libvirt libvirt kvm
Create Virtual Networks in Libvirt
·5 mins
libvirt libvirt kvm
Install KVM and Virt-Manager
·3 mins
libvirt libvirt ubuntu kvm
Install WebVirtCloud
·2 mins
libvirt libvirt ubuntu kvm