Thanks for your reply.  I do indeed have an extra IDE controller 
and I'm sorry I did not include that in my original post.  I 
should have, since I knew it was probably related but forgot to.  
When I first installed the IDE controller, I thought I chose the 
proper jumper setting to not force it to be the bootup device or 
override bios settings, but apparantly that didn't work (this was 
months ago.. somehow grub freaked out recently).  I'm out of town 
right now, but when I get home I will take a look at the file and fix it if it is wrong.  However, my first 
assumption is that it will have an entry like what I put in my 
first message:

(hd0) /dev/hda

If this is the case, I would want to change (hd0) to (hd3), 
correct?  Then, I would want to fix all the other numberings, but 
I'm not quite sure how hdb, hdc, etc. map to (hd1), (hd2).  How 
can I do this?

As a side note, I'm also trying to setup grub to boot to Windows 
using the rootnoverify command and the map commands if necessary 
in grub.conf.  I know that Windows is on /dev/hdc but don't know 
which (hd#) it maps to.  I've tried different combinations and 
none will boot to windows, I've also tried

map (hd0) (hd1)
map (hd1) (hd0)

and other permutations (only with hd0) but have had no luck 
either.  Any hints there would be useful too. -- I will try the 
find and cat commands from the grub menu when I get back, will 
"find \windows\" work (or perhaps "find \boot.ini")?

Thanks for your help so far,

~Mark Oden

On Sat Apr 07 11:43:20 EDT 2007, Edward Allcutt 
<[log in to unmask]> wrote:

> Hi Mark,
> It sounds like you have either a mixed IDE/SATA/SCSI system or 
> you use
> extra IDE controllers of some sort.
> The root problem is that (at boot) grub uses the BIOS device 
> order.
> Linux has its own idea of the order of devices (depending mainly 
> on what
> gets detected first) and this order is used to guess the BIOS 
> order at
> install time. Even worse, many BIOSes allow you to change the 
> BIOS order
> by specifying whether to boot from IDE/SATA/SCSI first.
> So, grub needs some way to tell (while running under linux) which 
> linux
> devices correspond to which boot-time device numbers. There is a 
> file
> grub/ created especially for this purpose. It has the 
> format:
> (grub-device)   /dev/linux-device
> eg. on one my systems:
> (hd0)   /dev/sda
> (hd1)   /dev/hda
> Now, this ordering can change if you add/remove devices or change 
> settings. (Beware! ;))
> So basically, before running grub-install you need to make sure 
> this
> file reflects reality. (And that your menu.lst uses the same 
> numbers.)
> On Sat, 2007-04-07 at 07:44 -0400, Mark Oden wrote:
>> If there is still a good method to determining the root disk 
>> without playing the guessing game please let me know :)
> If you know what to expect on your various disks then (in the 
> boot grub
> shell, not running from inside Linux):
> cat (hdx,y)/<TAB><TAB> etc.
> is a reasonable method to figure out the mapping of BIOS ordering 
> to
> Linux devices. Pen and paper may be useful here ;)
> If you're just looking for your boot partition, then it is 
> probably
> sufficient to run:
> find /grub/menu.lst
> or if you have /boot on your root partition:
> find /boot/grub/menu.lst
> It's important to note that the find command requires an absolute 
> path
> so you still need to know the layout of files on the partition 
> you're
> looking for.
> Ed.
> -- Edward Allcutt <[log in to unmask]>