Win XP does not boot via grub after openSuSE 11 installed


I tried to install 11.0 on a system of a friend.
He has a AMD Athlon X2 6000+, on a ASUS M3A, two hdds, one 320GB PATA and one 500GB SATA.

I installed on that system a few month ago a 10.3 version. That worked fine. Only he removed it then and asked me on friday to install SuSE again. So I got the downloaded 11.0 64-bit DVD and we started.

Now a strange behavior of grub started.
After choosing XP from the bootmenu we got only a black screen. SuSE 11 started just fine. After a google search we tried several modifications in /boot/grub/menu.lst and checked /boot/ But either we got the black screen when WinXP was started or with several changes to chainloader hd(x,x)+1, we got there an error message which brought up the text grub.
My friend has to work with this system during the week so we just removed with a Harddiskmanager BootCD the /boot partition and made the winxp partition active again. after this winxp boots with no problem.

The disk set up was:
500GB SATA (set to boot disk in the BIOS)
sdb1 /boot 109MB ext3 (now removed)
sdb2 C: (winxp) 120GB NTFS
sdb3 ext part 344GB
sdb5 S: 195GB NTFS
sdb6 T: 24GB Fat32
sdb7 / (root) 40GB ext3
sda1 D: 121GB NTFS
sda2 ext part 176GB
sda5 E: 176GB NTFS
the was:
hd(1) /dev/sda
hd(0) /dev/sdb

Unfortunately I have no more information right now. But on the weekend hopefully I will give it another try and save the usual suspects.

It would be great if anyone has an idea.

Ideally, in your situation with 2 HD’s you should keep the MBR intact for the drive with XP on

Use the other HD to have the Grub bootloader on the MBR.

You can have partitions for suse on either drive. Just make sure that during install you check that Grub goes to the MBR of the drive without XP.
You will have to switch the non-xp drive to boot first in bios. Here is a guide:
Partitioning/Install Guide - openSUSE Forums

Just a few thoughts . . .

So you did not install grub to the SATA drive’s IPL (the master boot code in the MBR) . . . if you removed sdb1 and set the boot flag on sdb2 resulting in XP booting, that means that either the Windows IPL is there or “generic boot code” (which YaST can install) is there. You can get a look at exactly what’s in the IPL this way:

dd if=/dev/sdb of=sdbipl bs=440 count=1
xxd sdbipl

To see where/how YaST has installed grub, look at the file /etc/grub.conf; that is what YaST feeds to the grub shell. When grub is installed from within the OS, it will use to determine the disk/grub alignment; that is the only time is ever used. Interestingly, when the grub shell is run apart from the OS, e.g., on a boot floppy (a great tool to keep around), it does not consult but uses the bios hardware map to guess the boot disk sequence.

The black screen is particularly strange. If you look at the Windows IPL you’ll see the 3 possible error messages it can throw. Similarly, if you look at the PBR (partition boot record) you’ll see the 3 possible error messages it throws. A completely black screen can occur when there is no executable IPL and the bios has not had an error message coded in it to report that; it just hangs. Can also happen if IPL code is present but corrupted or if the PBR code is missing/corrupted (the IPL calls a jump instruction in the PBR which in turn runs the PBR code, so the IPL hand-off can take place even though the PBR code is bad).

The only other thing I can think of at the moment is if the 11.0 kernel ordered the disks the reverse of the 10.3 kernel. There is no rigid standard for this, and it is not necessarily the order displayed in bios setup (IIRC the kernel uses the ACPI map). Because of this and with the prevalence and flexibility of SATA, the kernel now no longer uses device-name (i.e., “sda”) because it may not be persistent, but instead uses one of the other 4 persistent identifiers available; the default now is device-by-id (the serial nbr + partition nbr). You will see that now used in fstab, menu.lst, and

Probably a heckuva lot more data than you wanted . . .