How to make grub work again after drive reassignment?
The problem is probably with grub seeing usb disks at boot time differently than once run from a running system. Here's how you might solve it:
When you boot (normally, from the hd) and grub appears, open grub console (usually you do that just by pressing c
). At grub prompt, start typing root (hd
:
grub> root (hd
then press Tab and you'll see the disks as possible completions. Choose the disk and partition where your /boot
is. If you are not sure, then with each one you suspect, do the following:
- (finish the
root
command to choose the partition and press Enter) - type in
cat /
and press Tab. You will see the list of files found on the partition. - Seeing the list of files, decide if it is your partition containing the kernel (under
/boot/
). - If not, press Esc and start over.
Once you've found how the partition is known to grub, you can re-install the boot loader (using setup
command) and point to the correct partition/files in your /boot/grub/menu.lst
or /boot/grub/grub.conf
(you must determine, which of those your version uses, or just make them contain the same).
[Edit]: Per special request form Macias, here are more details on how to fix the MBR using grub:
One way to re-install the MBR on a drive using grub
is the setup
command I referred to above. This is a command known to grub versions 0.9X (see the Documentation). But you seem to be using the newer branch of grub (1.9X) and the commands for it are different. Have a look at the corresponding documentation - in this version, you can install grub to the MBR using the grub-install
utility and I am not sure if there is any other way - from the grub "rescue" prompt, as with grub-0.97. Maybe not and maybe that is one of the reasons why many distros prefer the "legacy" version.
The file menu.lst
is only used by grub-legacy. You appear to be using grub2, which uses grub.cfg
instead. Grub2 also prefers to work without a device.map
, so you might delete that as well, and then re-install grub.