Hi,

I'm having problems getting grub2 to chainload Windows XP correctly. I have
3 hard drives. The first one has an embarrassingly old Ubuntu installation
that still uses legacy grub. The second one has XP on one partition and
Ubuntu 10.10 on the second partition. The third one is just a data drive so
it doesn't pertain to this discussion. When I boot from the first drive I
still get grub and can chainload XP just fine. However, when I boot from the
second drive and get the grub2 menu if I select Windows it gives me an error
"Windows could not start because of a computer disk hardware configuration
problem. Could not read from the selected boot disk." I assume this error is
coming from the Windows bootloader on my first hard drive.

Now, you might be tempted at this point to tell me "Oh, it's a problem with
your Windows installation". Please understand that I cannot accept this
answer unless you also explain to me why legacy grub still has no problem
booting XP. It's particularly vexing to me how utterly simple the commands
were to do this in the menu.lst of legacy grub, which never gave me any
problems at all, whereas the commands that got generated in the grub.cfg for
this are incomprehensible to me and some of them (i.e. drivemap) don't
appear to have any documentation anywhere at all!

I apologize if this comes off as a bit of a rant, but I'm sure you can
understand how frustrating it is when a new version of software is updated
and in the process something that is simple and "just works" is transformed
into something complicated that doesn't work at all. What I really would
like to know is simply: what incantations do I need to give to grub2 to make
it behave the same way that grub behaves when I simply tell it "root
(hd0,0); makeactive; chainloader +1"

Here is some additional info that could help in diagnosing this situation:

menu.lst entry that works:
title        Windows XP Media Center Edition
root        (hd0,0)
savedefault
makeactive
chainloader    +1

grub.cfg entry that doesn't work (also note that 1cd7-3124 is the correct
uuid for sda1):
menuentry "Windows XP Media Center Edition (on /dev/sda1)" {
    insmod part_msdos
    insmod fat
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set 1cd7-3124
    drivemap -s (hd0) ${root}
    chainloader +1
}

boot.ini file that resides in sda1:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Windows XP Media Center
Edition" /noexecute=optin /fastdetect

And I don't know if it's important or not, but on my system it's sda that
boots legacy grub and sdb that boots grub2.

Thanks,
Matt Deckard
_______________________________________________
Help-grub mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-grub

Reply via email to