I solved it by making the /boot the first partition and make it 32MB.
I have problem to boot from qcow2 format image, it will hang while kernel booting.
Before LILO can be used to boot a system, it must be installed onto the boot device.
It must also be reinstalled any time the configuration is changed, or the new configuration will not take effect. The easiest way to install LILO onto the local system's Master Boot Record, using the default configuration file ( This method works well for systems where only a small change is required to the default configuration, but is not often what is desired on an embedded system.
Virtio block device is a para-virtualized device for kvm guest.
It is different from normal emulated hard drive, because it is simply faster.
Mostly over my head, but I noticed one small thing not related to your immediate problem.All that /boot normally holds is your kernel image and boot loader files like those needed by grub and probably lilo.Changing this will free up a tiny amount of disk space for another partition to use, but shouldn't otherwise affect anything.If the kernel name changed, the configuration file will need to be modified to suit before reinstalling LILO.See Configuring LILO for more information on how to do this.