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

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



I think you are facing 2 problems here.

1. The parsing logic is flaky in pygrub at best. Its a game of catch-up to ensure we are parsing grub.cfg properly.

2. I *think* at some stage, debian started forcing block devices from xen-blkfront to be /dev/sda instead of /dev/xvda. So once you're dropped to a shell, do a dmesg and look in /dev.


On 28 May 2011 12:39, Alexandre Chapellon <a.chapellon@xxxxxxxxx> wrote:
What filesystem are you using?
I remember have read pygrub only support ext filesystems.

Le vendredi 27 mai 2011 à 16:25 +0100, Simon Hobson a écrit :
> The system is a new install of Debian Squeeze, with Xen 4.0.1 (latest
> stable package for Debian). I'm trying to get guests booted with
> pygrub, or even better pvgrub but it's not working for me.
>
> First off, as far as I can tell, pvgrub isn't in Debian - and it
> won't be as it's been rejected. Does anyone know if this is being
> worked on ?
>
> As for pygrub, that's failing as well. Apart from hitting the known
> bug that stops GRUB2 from installing on the guest (had to pull a
> later version down from Testing), starting a domain gives the error :
>
> >    Error: Boot loader didn't return any data!
>
> /var/log/xen/xend.log contains :
>
> >Traceback (most recent call last):
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py",
> >line 104, in create
> >     vm.start()
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py",
> >line 469, in start
> >     XendTask.log_progress(31, 60, self._initDomain)
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendTask.py", line 209,
> >in log_progress
> >     retval = func(*args, **kwds)
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py",
> >line 2820, in _initDomain
> >     self._configureBootloader()
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendDomainInfo.py",
> >line 3266, in _configureBootloader
> >     bootloader_args, kernel, ramdisk, args)
> >   File "/usr/lib/xen-4.0/lib/python/xen/xend/XendBootloader.py",
> >line 215, in bootloader
> >     raise VmError, msg
> >VmError: Boot loader didn't return any data!
>
>
> Following a hint I came across, I tried manually calling pygrub with :
> >  /usr/lib/xen-default/bin/pygrub --args="root=/dev/xvda1 ro"
> >/dev/vgmain/ipv6root
>
> And got these errors :
>
> >Using <class 'grub.GrubConf.Grub2ConfigFile'> to parse /boot/grub/grub.cfg
> >WARNING:root:Unknown directive load_video
> >WARNING:root:Unknown directive terminal_output
> >Traceback (most recent call last):
> >   File "/usr/lib/xen-default/bin/pygrub", line 669, in <module>
> >     chosencfg = run_grub(file, entry, fs, incfg["args"])
> >   File "/usr/lib/xen-default/bin/pygrub", line 549, in run_grub
> >     g = Grub(file, fs)
> >   File "/usr/lib/xen-default/bin/pygrub", line 205, in __init__
> >     self.read_config(file, fs)
> >   File "/usr/lib/xen-default/bin/pygrub", line 413, in read_config
> >     self.cf.parse(buf)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >402, in parse
> >     self.add_image(Grub2Image(title, img))
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >318, in __init__
> >     _GrubImage.__init__(self, title, lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >87, in __init__
> >     self.reset(lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >103, in reset
> >     self._parse(lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >98, in _parse
> >     map(self.set_from_line, lines)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >328, in set_from_line
> >     setattr(self, self.commands[com], arg.strip())
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >106, in set_root
> >     self._root = GrubDiskPart(val)
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >57, in __init__
> >     self.disk = str
> >   File "/usr/lib/xen-4.0/bin/../lib/python/grub/GrubConf.py", line
> >70, in set_disk
> >     self._disk = int(val[2:])
> >ValueError: invalid literal for int() with base 10: 'ev/xvda1'
>
>
> Based on the last line of that, I tried an experiment and edited the
> script. AFAICS, the line in question is trying to extract a number
> from a device name, so I tried changing it from
> >self._disk = int(val[2:])
> to
> >self._disk = int(val[9:])
>
> I can then get the GRUB menu, and then quits - putting :
> >linux (kernel /var/run/xend/boot/boot_kernel._IqLoQ)(ramdisk
> >/var/run/xend/boot/boot_ramdisk.XUIE7W)(args
> >"root=UUID=0fdd2127-ff17-4bd4-b1b8-08fd8b27ec9a ro  quiet
> >root=/dev/xvda1 ro")
> to the terminal - but not starting the guest.
>
> Trying to start the guest with "xm create -c ipv6" gives :
>
> >Started domain ipv6 (id=3)
> >                           [    0.204334] PCI: Fatal: No config space
> >access function found
> >[    0.251557] i8042.c: No controller found.
> >Loading, please wait...
> >mount: No such device
> >W: devtmpfs not available, falling back to tmpfs for /dev
> >Gave up waiting for root device.  Common problems:
> >  - Boot args (cat /proc/cmdline)
> >    - Check rootdelay= (did the system wait long enough?)
> >    - Check root= (did the system wait for the right device?)
> >  - Missing modules (cat /proc/modules; ls /dev)
> >ALERT!  /dev/xvda1 does not exist.  Dropping to a shell!
> >(initramfs)
>
> So it seems to have started the guest, but not with the right setup.
>
> If I change the boot settings back to using kernel= and ramdisk=
> gives me a working guest again.
>
> Any hints ?
>
> Bear in mind that I'm trying to keep it entirely with packaged
> software, and 4.1 is only in the Debian unstable repository at the
> moment.
>



_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users

 


Rackspace

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