I have two hard drives and the partitioning is as follows:
hda1 120 GB
/dev/hda1 100 MB Linux ext3 /boot
/dev/hda2 95 GB Linux ext3 /home
/dev/hda3 1 GB Linux swap
/dev/hdb4 Extended partition
/dev/hdb5 17 GB Linux /
hdb1 32 GB
/dev/hdb1 100 MB Linux ext3 /boot
/dev/hdb2 1 GB Linux swap
/dev/hdb3 Extended partition
/dev/hdb4 12 GB NTFS Windows2000
/dev/hdb5 18 GB Linux reiserfs
Both boot partitions had grub installed (there used to be an old Linux Red Hat 7 install on hdb1). The bios was set to use the first hard drive (hda1) to boot. In order to boot Windows 2000, one needs apparently a Windows-written MBR (master boot record), which is to my understanding something like a hidden partition which is in any case the first partition of any drive (something like hda0). Since there was never Windows 2000 installed on hda1 (is was put later into the machine and put into the bios boot priority first), there was also no Windows 2000-like MBR written into its MBR. The other hard drive (hdb) has a Windows install (Linux was installed later), so there must have been a functioning Windows 2000-like MBR. That MBR most likely was destroyed at some time. This distruction did not happen during the first Linux Red Hat 7 install, as after that one could still boot into Windows 2000 via grub. It must have occurred later somehow (maybe during a grub update?). Then I put the 2nd hard drive in, installed Red Hat 9 and during this install the Red Hat installer put the second grub install onto its boot partition, which did contain a Windows entry (as I specified during the Red Hat 9 installation). Booting into Windows 2000 (which was on the other hard drive) was still possible. But as I never used to boot into Windows (I started to use vmware and then wine), I just recently realized that the Windows entry in the grub.conf had disappeared. Consequently I couldn't boot into Windows anymore. I entered manually the Windows entry like everywhere advised:
title Windows 2000
rootnoverify (hd1,1)
chainloader +1
But no go. I always received an error (Error 13 invalid device). I thought I had chosen the wrong partition and tried all possible partitions from (hd1,0) to (hd1,5). Still no go. Although the error messages were different. For the:
/boot partition (hd1,0): Grubloader error 25
linux /home (hd1,1): Error 13 invalid or unsupported executable format
linux swap (hd1,2): Error 12 invalid device
extended partition entry (hd1,3): no error occurred, but I was thrown into the grub menu of the boot partition of the 2nd hard drive
linux / (hd1,4): Error 12 invalid device
any other (higher) partition that wasn't present (e.g. hd1,5): Error 12 invalid device
So I booted with the Windows 2000 installation CD and tried to fix the the MBR of hdb. I went into the manual repair section and typed the fixmbr command. There was a warning: "This operation modifies your partition table and could render all your data on the hard drive inaccessible". I had no choice, so I did it. It didn't help. At least not much. Once thing improved, however: when I swapped the drives (made hdb the master and hda the slave and gave in the BIOS boot priority to the new master, I could boot into Windows 2000. That was already some improvement. However, I still couldn't boot into Windows 2000 via grub. So I booted again with the Windows 2000 installation CD and executed another "dangerous" command: FIXBOOT. This was the end of my Windows. After that I couldn't boot into Windows at all. I always received the error: ntldr is missing (NT loader is missing). I still managed to use this Windows 2000 installation together with VMware, but otherwise there was no possibility to boot it up. The Microsoft Knowledge Base Article 318728 describes many possible solutions to the "ntldr is missing" error, which I tried all, but without any positive results. Microsoft apparently admits, that this error is unrecoverable in some instances as the last method to rescue such a situation is: "Perform a Parallel Installation of Windows 2000 and use the Windows Explorer to copy the data you want to recover".