Ok, I'm not exactly new to linux, but I've always used Lilo for boot loading, and I'm not that familiar with grub. I'm helping a friend try Linux on his machine. For ease of introduction we decided to use RedHat 9 for him. To ensure the integrity of his other drives we unplugged his normal drives and installed on a spare hard drive that runs off a PCI IDE controller. The Redhat drive becomes /dev/hde1 in Linux. We set it all up, and it boots fine with just the RedHat drive in.

Then we plug in all the other drives, Windows should boot from /dev/hda1. We also have have two drives that should be /dev/hdg1 and /dev/hdh1. Set Bios to boot from HD-0, and it boots to windows just fine. Set Bios to boot to SCSI (PCI IDE drive). Boots from Grub to RedHat just fine. But the boot to windows option I tried to set up, doesn't work.

Here's what our grub.conf looks like:
# grub.conf generated by anaconda
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hde1
# initrd /boot/initrd-version.img
title Red Hat Linux (2.4.20-6)
root (hd0,0)
kernel /boot/vmlinuz-2.4.20-6 ro root=/dev/hde1 hdc=ide-scsi
initrd /boot/initrd-2.4.20-6.img

title Windows
rootnoverify (hd1,0)
chainloader +1

#end of file

If I change the Windows to anything from (hd0,0) to (hd3,0) it doesn't work, although (hd0,0) gives an error, while the other 3 just hang. (hd4,0) and up of course don't work, as those drives don't exist.

So anyone have ideas on how to fix this? Currently we have a boot order of CD-ROM, SCSI, HD-0. If we turn the key that turns off the Linux drive (it's in a removable tray), it boots to Windows. If we turn it on, it boots to Linux. But this requires a full shutdown. Boot loader would be much nicer.

We'll tackle our problems getting 3D support for his ATI Radeon 9800 later.