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