I recently installed Xen on a Debian Lenny amd64 box, and found that the Xen kernel would not boot, failing to mount the root filesystem:
No filesystem could mount root, tried: Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
I noticed in /boot/grub/menu.lst that the standard Debian kernel included an initrd image, whereas the Xen kernel didn’t:
# This is the Xen kernel that fails to boot: title Xen 3.2-1-amd64 / Debian GNU/Linux, kernel 2.6.26-2-xen-amd64 root (hd0,0) kernel /boot/xen-3.2-1-amd64.gz module /boot/vmlinuz-2.6.26-2-xen-amd64 root=/dev/sda1 ro console=tty0 # This is the standard kernel that does boot: title Debian GNU/Linux, kernel 2.6.26-2-amd64 root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-amd64 root=/dev/sda1 ro quiet initrd /boot/initrd.img-2.6.26-2-amd64
To get the Xen kernel working, I needed to create an initrd image, with:
dave@devvps:/boot$ sudo update-initramfs -c -k 2.6.26-2-xen-amd64 update-initramfs: Generating /boot/initrd.img-2.6.26-2-xen-amd64
Then update the Xen kernel’s entry in /boot/grub/menu.lst appropriately:
title Xen 3.2-1-amd64 / Debian GNU/Linux, kernel 2.6.26-2-xen-amd64 root (hd0,0) kernel /boot/xen-3.2-1-amd64.gz module /boot/vmlinuz-2.6.26-2-xen-amd64 root=/dev/sda1 ro console=tty0 module /boot/initrd.img-2.6.26-2-xen-amd64
Upon rebooting, the Xen kernel boots succesfully, and Xen appears to be working:
dave@devvps:~$ sudo xm list Name ID Mem VCPUs State Time(s) Domain-0 0 24106 8 r----- 22.4
So, if you’ve installed a Xen kernel on Debian, remember to create an initrd image. I’m fairly surprised that this doesn’t happen automatically when the kernel is installed, actually.
If you liked that post, then try these...
Logitech QuickCam Messenger under Linux