[Pkg-xen-devel] xen-utils-4.1, pygrub, xvda1, "Boot loader didn't return any data!"

Alex alex at massive.ch
Thu Mar 29 06:11:00 UTC 2012


Hello,

xen-utils-4.1's pygrub is unable to boot VMs from a partitionless
blockdev that has grub installed in first sector. I'm not sure it
deserves a bug report, although it is kind of a regression from 4.0.
Long story short: zeroing first sector of domU's boot blockdev fixes it.

Maybe some of this report would be useful in the wiki, if someone else
has the same (odd) setup.

---
The long story:

I upgraded one of my squeeze dom0 to wheezy to assess foreseeable
problems, all my domU are squeeze PVs, booting with pygrub, backed by
separate partitionless block-devices as boot/root dev (provided by dom0
LVs, but thats irrelevant).

pygrub from xen-utils-4.1 isn't happy with that setup, VM fails to start
with:

Error: Boot loader didn't return any data!

and 4.1's pygrub <dev> shows:

Traceback (most recent call last):
  File "/usr/lib/xen-4.1/bin/pygrub", line 729, in <module>
    if not fs:
NameError: name 'fs' is not defined

I didn't notice this problem until I purged xen-utils-4.0. I believe
installing 4.1 didn't update /etc/alternatives/xen-default and since my
vms cfg point at '/usr/lib/xen-default/bin/pygrub', problem remained
hidden until the purge. Reinstalling xen-utils-4.0 and changing VMs cfgs
to have bootloader stanza point at this specific pygrub version
confirmed that 4.0 is immune to this. But don't do that.

Since the domU boot/root blockdevs have a useless "bootsector" (??)... I
zero'ed the first 512 bytes of domU's xvda1, which restored 4.1's pygrub
ability to find its way through and boot the domU. (dd if=/dev/zero
bs=512 count=1 of=domU-disk).

Hope this helps...

  alex



More information about the Pkg-xen-devel mailing list