Grub stage1 not found then Error 2 on reboot
I had a working Lenny install which I somehow hosed while
experimenting with Grub. On boot, the message displays 'Grub loading
stage 1.5' then 'Error 2'.
I did the following to try to fix the problem:
1) I reboot from a GRML rescue CD and attempt to repair grub with grub-install
#mount /dev/sda5 /mnt
#grub-install --root-directory=/mnt /dev/sda
The file /mnt/boot/grub/stage1 not read correctly.
stage1 is present at /mnt/boot/grub/stage1 and md5sum shows it is not
corrupted. Same for stage2.
2) I then tried this:
# mount -t proc none /mnt/proc
# mount -o bind /dev /mnt/dev
# chroot /mnt
grub> find /boot/grub/stage1
grub> root (hd0,4)
Filesystem type is ext2fs, partition type 0x83
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
Running "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,4)/boot/grub/stage2
This looks good but on reboot I still get Grub Error 2.
According to the Grub Manual, Error 2 means this: Bad file or
directory type - This error is returned if a file requested is not a
regular file, but something like a symbolic link, directory, or FIFO.
The above shows that when /proc and /dev are manually mounted and grub
is run from a chroot, Grub can find stage1 and stage2 but when booting
Grub somehow does not read them as regular files. Anyone know what
this means and what I should do?