This is the command to launch Qemu with the previous kernel on a x86_64 plateform with a vnc output:
qemu-system-x86_64 \ -snapshot \ -curses \ -no-kqemu \ -hda /dev/sda \ -kernel /usr/src/linux-2.6.26.5/arch/x86/boot/bzImage \ -append "root=/dev/hda1" \ -vnc www.gnuwakes.org:0
Explanation:
-snapshot
Write to temporary files instead of disk image files. In this case,
the raw disk image you use is not written back.
-hda file
-hdb file
-hdc file
-hdd file
Use file as hard disk 0, 1, 2 or 3 image.
-vnc d
Normally, QEMU uses SDL to display the VGA output. With this
option, you can have QEMU listen on VNC display d and redirect the
VGA display over the VNC session.
-kernel bzImage
Use bzImage as kernel image.
-append cmdline
Use cmdline as kernel command line
"root=/dev/hda1" ==> /dev/sda1 (if physical disk is SATA)
-initrd file
Use file as initial ram disk.
To launch Qemu on an x86 compatible architecture without kqemu, on a physical disk image with the newly compiled kernel:
qemu \
-no-kqemu \
-hda /dev/sda \
-kernel /usr/src/linux-2.6.26.5/arch/x86/boot/bzImage \
-append "root=/dev/hda1"
Pay attention to the file /etc/fstab when trying to boot on a physical partition. The root device with Qemu is always an hda device (ie /dev/hda1), but on your machine it can be something else, like /dev/sda1. Example of /etc/fstab when booting your physical machine:
# cat /etc/fstab
/dev/sda1 / ext3 errors=remount-ro 0 1
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
When booting with Qemu, it must seem like this:
# cat /etc/fstab
/dev/hda1 / ext3 errors=remount-ro 0 1
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0