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

Bug#604080: Xen domU fails to boot after install



Hi Daniel,

On Sat, 2010-11-20 at 01:17 +0100, Daniel Pocock wrote: 
> Package: installation-reports
> 
> I have an amd64 dom0 with lenny
> 
> I successfully run the Debian Installer in a fresh domU
> 
> xm create -c xm-squeeze1.cfg install=true 
> install-mirror=http://mirror.positive-internet.com/debian 
> install-installer=http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/
> 
> 
> 
> I then tried to do the first boot:
> 
> xm create -c xm-squeeze1.cfg
> 
> 
> I get this error:
> 
> Error: Boot loader didn't return any data!

Unfortunately the version of pygrub in Lenny does not understand grub2
configuration files. You are quite correct that the error message is
rubbish. FWIW it's likely that /var/log/xen/xend.log contains more
information from pygrub, although those messages are also not always
terribly helpful either...

You should be able to cause Squeeze to install grub1 (aka grub-legacy),
although it may be an expert mode installation option only which is less
convenient.

http://d-i.alioth.debian.org/manual/en.i386/apbs04.html describes how
you can pressed the installation to install grub-legacy instead of grub2
and I think anything you can do in a preseed file you can also add to
the kernel command line when running the installer, so that might be
worth a go. 

> Root causes:
> - Squeeze installs grub 2, which doesn't have any /boot/grub/menu.lst
> - pygrub can't seem to identify the boot partition in the MBR created by 
> the installer

pygrub doesn't care about the contents of the MBR as such, it just
parses the partition table and AFAIK pygrub does know how to find the
bootable partition. There should be nothing Squeeze or grub[12] specific
about this aspect of things,

I think it's just that the pygrub in Lenny doesn't know about grub2
(since Lenny predates any serious consideration of grub2) so doesn't
find any configuration it understands  once it has found the right
partition.

> - pygrub on lenny is looking for /boot/grub/menu.lst (actually, 
> /grub/menu.lst on the bootable partition)

pygrub is aware of separate /boot configurations so it will try each
of /boot/grub/* and /grub/* looking for a configuration file.

> Workaround 1:
> - mount the filesystem, possibly using kpartx, manually create 
> /boot/grub/menu.lst

or "apt-get install grub-legacy" and let it generate menu.lst for you.

> - tweak the cfg file to tell pygrub to look in the /boot partition 
> (because it doesn't recognise the grub2 MBR)
> 
> bootargs = '/dev/mapper/vg00-squeeze1_disk0p1'
> 
> Workaround 2:
> - mount the filesystem, possibly using kpartx
> - copy the kernel and initrd to the dom0
> - modify the cfg file, tell it to use the kernel and initrd from the 
> dom0 and not use pygrub as bootloader

The only other workaround I can think of is to grab the pygrub from a
Squeeze system and use that on your Lenny system. Not great either

> Suggestions:
> - the MBR should be recognisable by the lenny version of pygrub
> - better error needed from pygrub when it doesn't find menu.lst

Yes, this is something Xen upstream is aware of but its one of those
tasks which never quite floats to the top of the list :-(

> - maybe grub2 should create menu.lst for backwards compatibility?  or 
> maybe some optional tool in the domU can create it?
> - maybe a support package is needed for lenny dom0 users? and a helpful 
> message to let them know it exists?

Thanks,
Ian.

-- 
Ian Campbell

Dibble's First Law of Sociology:
	Some do, some don't.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: