a) check that the file systems are not corrupted. I usually run fsck on
them to be sure. I also run fdisk and check that the size and filesystem
type make sense.
b) check that /sbin/init is present.
c) check that the labels on the HD partitions are set correctly ie the
boot partition (usually /dev/hda1, but not always) needs to have a
label of "/boot", without the quotes. (Use e2label to set this up.) The root
partition needs to have a label of "/". Grub in particular is sensitive to
how this is set up because it refers to drives by their labels rather than
their hard coded position ie /dev/hda1.
d) check that grub is correctly installed ie. that grub-install has been
run and that commands have been run to set the root partition in grub and
that grub knows where the stage1, stage2 and grub.conf files are. (I wrote
a "Giving back how to" on cloning linux drives. All this info is there.)
Usually grub boot problems give different error messages, but not
necessarily. ANYTHING that will prevent the boot process from running
init will give the "No init found" error.
e) check that fstab has decent information in it for the drive mounting.
Furthermore, check that the drive definitions in fstab match the drive
defs in grub. Check out the miscellaneous section of info-grub for
details on how grub defines drives (hd0,0) versus how linux finds drives
(/dev/hda1).
f) check that the root drive has an initrd directory present.