Introduction

Virtio block device is a para-virtualized device for kvm guest. It is different from normal emulated hard drive, because it is simply faster. This small how-to is about how to make a disk para-virtualized and boot from it.

Steps

  1. create a disk and install os to it by appending "-hda <your_disk_image>" to your virtual machine

  2. in your guest os, upgrade kernel to 2.6.25 which contains virtio_* drivers. or ubuntu 8.04 also has it.
  3. in guest os, change /boot/grub/device.map from "(hd0) /dev/sda" to "(hd0) /dev/vda"
  4. in guest os, change /boot/grub/menu.list from "root=/dev/sda1" to "root=/dev/vda1", if you are using UUID, then no need to do this step.
  5. enable para-virtualization by changing "-hda <your_disk_image" to "-drive file=<your_disk_image>,if=virtio,boot=on"

Error 18

you may experience this error while grub is booting. I solved it by making the /boot the first partition and make it 32MB.

qcow2

I have problem to boot from qcow2 format image, it will hang while kernel booting. you may convert your disk image to raw format by "qemu-img convert -f qcow2 <your_disk_image> -O raw <a_new_location>".

Booting with lilo

You must add this to your lilo.conf:

and after your image clausule change:

where vda1 is your boot partition

boot from virtio block device (last edited 2008-05-28 12:31:42 by TomasRusnak)