Try this at a command prompt, as root (using a bootable CD or whatever):
Code:
#comments look like this; don't type them.
grub
find /boot/grub/stage1 #This will tell you which HD should be root. This should be on hd1 or greater, NOT on hd0 (assuming that you have an internal hard drive). If it doesn't tell you, you can guess for the next step.
root (hdx,y) #Assuming that the partition where /boot/grub/stage1 resides is on hard drive x (1, 2, ...), partition y (1, 2, ...).
setup (hdx) # Using the value of x from the previous command.
Now, it should give you a menu when you try to boot from the external drive (by telling your computer to do so via BIOS). Next, you need to make sure that your /boot/grub/menu.lst is set-up right. The entry for your external should look something like this:
Code:
title Debian
uuid ed55900d-b90b-46a6-be23-3a2c5b48c040
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=ed55900d-b90b-46a6-be23-3a2c5b48c040 ro quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet
(Assuming that you know the uuid of your external Debian partition; you can obtain this using the vol_id or blkid commands.) This is the preferred method, because different computers might see your external as hd1, or hd3, or whatever, depending on the computer's setup and number of hard drives. The quiet and splash options on the kernel line are completely optional.
...or like this:
Code:
title Debian
root (hdx,y) #using the values of x and y above.
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=ed55900d-b90b-46a6-be23-3a2c5b48c040 ro quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet
Don't forget to change the kernel and initrd lines to point to the correct files (kernel/vmlinuz image, and initrd image, respectively) in /boot/.
If you get a menu, but can't boot your installation, try highlighting Debian and pressing "e" to edit the options. Then press "b" to boot when you're done.
Hope that helps!
--Dane