If you get this message before you reinstall, error 21 means the device specified in /boot/grub/menu.lst for the /boot, or / file system does not exist in the bios. Here is how this works:
In /boot/grub/menu.lst there are sections:
title Fedora Core (2.6.17PPS)
root (hd0,0)
kernel /boot/vmlinuz-2.6.17PPS ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.17PPS.img
title Fedora Core (2.6.15)
root (hd0,0)
kernel /boot/vmlinuz-2.6.15 ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.15.img
title Fedora Core (2.6.15-prep)
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-prep ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.15-prep.img
title Fedora Core (2.6.15-1.2054_FC5smp)
root (hd0,0)
kernel /boot/vmlinuz-2.6.15-1.2054_FC5smp ro root=LABEL=/1 rhgb quiet
initrd /boot/initrd-2.6.15-1.2054_FC5smp.img
Yours will look different than this, but the important things are:
Device root (hd0,0) means hard drive zero, partition 0. That is the first hard drive, first partition. (hd1,0) would be the second hard drive, first partition. The kernel line specifies what the actual file name and path to the kernel, and the root partition, with usually a few kernel parameters. The initrd line is the filename and path to initrd, or the ramdisk. So, boot with a live CD, such as
http://www.efense.com/Helix .
Edit /etc/fstab so everything says rw instead of ro. Look in /etc/fstaB FOR THE MOUNT POINT OF YOUR PARTITIONS, TOO. I think you'll need to use THE vi EDITOR:
vi /etc/fstab
INSERT
make changes
ESC
x:
to exit the vi editor
Mount the partition with linux on it. i.e.
mount /media/sdb1
cd /media/sdb1
vi /boot/grub/menu.lst
use vi same as before, but put correct devices in the 'root' line.