[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] 4.0.1, Debian Squeeze, and p[yv]grub

Adi Kriegisch wrote:

Assuming you've installed a working domU kernel in domU -- just try to
switch back to grub1. Actually just manually creating a simple "menu.lst"
file should suffice:
title       Debian GNU/Linux, kernel 2.6.32-5-amd64
root        (hd0,1)
kernel      /boot/vmlinuz-2.6.32-5-amd64 root=/dev/xvda1 ro quiet
initrd      /boot/initrd.img-2.6.32-5-amd64
(all paths should be absolute within your virtual machine.

OK, made a menu.lst with the kernel and initrd to match the system, it still doesn't boot. I've also updated the guest to 2.6.32-5-xen-686 and it still doesn't boot..

After going a bit square eyed looking in the logs, I noticed something in xend.log that seems relevant.

Booting with kernel= and initrd= lines, I see this in the log :

DEBUG (image:723) image = /etc/xen/ipv6-kernel/vmlinuz-2.6.32-5-xen-686
DEBUG (image:724) store_evtchn   = 1
DEBUG (image:725) console_evtchn = 2
DEBUG (image:726) cmdline        = root=/dev/xvda1 ro
DEBUG (image:727) ramdisk = /etc/xen/ipv6-kernel/initrd.img-2.6.32-5-xen-686

But booting with pygrub I see :

DEBUG (image:723) image          = /var/run/xend/boot/boot_kernel.CxIYSU
DEBUG (image:724) store_evtchn   = 1
DEBUG (image:725) console_evtchn = 2
DEBUG (image:726) cmdline        =
DEBUG (image:727) ramdisk        = /var/run/xend/boot/boot_ramdisk.0LOwFy

So it looks a bit like pygrub isn't correctly passing the root= parameter through to the kernel. That might just explain why the guest can't mount it's root filesystem !

But, I went back to menu.lst and added root=... to the kernel line which I took out for a reason I'll explain in a moment, and hey presto - I now have a booted guest with pygrub :D

Now why did I take out the root=... bit ?
Well earlier I wasn't getting a successful boot (for a different but unknown reason !). I noticed the command line was being shown as :
"root=/dev/xvda1 ro root=/dev/xvda1 ro"
or more probably (there's been a lot of lines up the screen since then !) :
"root=/dev/xvda1 ro quiet root=/dev/xvda1 ro"

AFAICT, pygrub seems to be concatenating the root= options from both the guest config file and from the menu.lst file.

A bit more experimentation indicates that :
If both are present, they are concatenated (menu.lst then guest config).
If only the menu.lst option is supplied, then it's used.
If there is no root=... in menu.lst, then the root=... statement from the guest config file seems to be ignored.

So I've commented out the root= line from the guest config file.

PS - while searching, I came across this nugget. I get the impression this guy had a slightly frustrating time !

Simon Hobson

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.