Veamos, en un primer lugar hay que saber un poco cómo funciona grub y cómo configurarlo.
En un primer lugar, tienes que acceder a menu.lst que está en
/boot/grub/menu.lst
Supongo que hasta ahí habrás llegado sin problemas lo cual nos apunta al siguiente caso.
Grub 1 (y no 2) cuenta siempre un disco y una partición menos a la hora de usar el parámetro hd.
O sea por ejemplo, si tienes instalado Windows en el disco duro 1 y en la partición 1 del disco duro citado(el 1 obviamente) la entrada de ejecución será hd(0,0)
Si tienes el disco duro 1 partición 2 la entrada será hd(0,1)
Si tienes el disco duro 2 partición 1 será hd(1,0)
etc.........
Por lo tanto si tu disco duro FISICO para Arch es el número 3
HDD3 para ArchLinux <---
Tu entrada será hd(2,X) , X será la partición -1 de donde tengas instalado /boot
Luego ya a partir de ahí, tendrás seguramente las líneas de ejecución del kernel + sus parámetros.
Normalmente, el sistema carga usándo UUID, que son una combinación de números y letras, pero también puedes hacer boot de forma "manual" indicando el disco y la partición
Ejemplo:
Arch instalado en disco 1 partición 6 (/dev/sda6) donde sda es disco duro sata A
Código# (0) Arch Linux
title Arch Linux
root (hd0,5)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/5e57a335-2e5c-4fb2-8162-e1789a6e4fba resume=/dev/sda5 ro vga=795
initrd /boot/kernel26.img
Slackware instalado en el disco duro 2 partición 2 (/dev/sdb2) Dusco duro Sata B
Código# (3) Slackware Linux
title Slackware
root (hd1,1)
kernel /boot/vmlinuz root=/dev/sdb2 resume=/dev/sdb3 ro vga=795 telinit 4
El boot de arch está por UUID el boot de Slack está a manija.
Espero que veas un poco el funcionamiento y puedas resolverlo.
Saludos.