GRUB on wrong drive

I currently have two internal hard drives:

sda (250GB SATA)
sda1 = 1.4GB swap
sda2 = 80GB ext3 (openSUSE 11)
Used primarily for Linux/development

sdb (320GB ATA)
sdb1 = 127GB NTFS (WinXP)
Used for general home use (shared computer)

I recently installed openSUSE onto sda, but I broke something and it would only boot into failsafe mode. I gave up trying to fix it and decided to just wipe the drive and re-install. For some reason this time it placed GRUB on sdb. I want sdb to keep the Windows bootloader, and for sda to run GRUB. This way I can leave the BIOS boot priority on sdb and the computer will boot straight to Windows as usual for the lady, but I can toggle priority to sda when I want to run Linux.

I can presumptively replace the Windows bootloader using Repair on the XP install disk, but how do I put GRUB onto sdb? I actually like the openSUSE version of GRUB that is set up now on sdb: (1) openSUSE, (2) Windows, (3) Failsafe openSUSE.

It’s really very easy.
First restore your xp mbr
make sure it’s working right by setting hdb to first boot in bios

Now switch back to sda as first
load suse from the install dvd (you DID use the dvd to install didn’t you?)
use the repair feature
advanced - like you know what you are doing
grub bootloader

be very careful that it installs it to mbr of hda
finish

Partitioning/Install Guide - openSUSE Forums

Thank you very much. I’ll give it a shot.

I confess to being a bit confused. Grub was installed to sdb, but you want ntldr on sdb and grub to be on sda; makes sense. But then you say you can repair the sdb MBR with XP Recovery, and you want to put grub onto sdb; do you mean on sda? What am I missing?

@caf4926 is right about the MBR; btw, if you want to be positive which MBR YaST is installing grub to, click Other, select Edit Config files and look at device.map and grub.conf. If sdb is now the first boot device, then it should be aligned to (hd0) in device.map and in grub.conf the first (hd) ref (the target) should be (hd0).

Correct, sorry about the mix-up in the original post. I want to re-install GRUB onto sda. I used XP Repair to put ntldr back onto sdb. However, the openSUSE Repair will only install GRUB onto sdb, not sda where I want it. I’ll keep playing with the YaST settings like you suggested.

What I want:
Power on > if boot priority: sda > GRUB
Power on > if boot priority: sdb > ntldr

don’t use the repair
login to suse
use yast-system-bootloader

What may be happening is that you are booting with sdb configured as the first bios boot disk, so YaST is interpreting that drive to be where you want it to install the MBR. Aside from that . .

You mention liking grub’s set up of booting to SuSE and to Windows. That’s a different approach than controlling the boot from the bios. Would you just prefer to be able to boot from SuSE over to Windows, i.e., use a single boot drive? You could make grub’s chainload to Windows be the default and very quick; it would hardly be noticeable. But not so fast that you couldn’t easily redirect it to boot SuSE instead. Just fwiw.