>install --root-directory=/boot /dev/hda
This line fails because inside grub, the device naming scheme is different. But never mind, this probably wasn't the way to to it.
To use grub-install, you'll need to have the filesystem with grub's files mounted. For instance, having booted from a rescue disc on my system, I might do something like:
mount -t ext2 /dev/hda1 /mnt/foo
grub-install --root-directory=/mnt/foo/ /dev/hda
Naturally, this changes for different devices and mount points. If you have a separate /boot/ partition that contains your grub stage1 files and so on, you'll want to mount this rather than your root partition.