My machine one day started inconsistently to fail to boot. I found that Grub was (sometimes) unable to load either the kernel or the ramdisk (it said "out of Disk"). It got to the point where I could only boot with the Grub command line and attempt to load them manually - after serveral failed attempts, it eventually succeeded.
In my kernel logs, I found numerous "ATA bus error"s, and noticed that the disk was operating at ATA 33 instead of ATA 133. I did a full check of the disk (using the vendors bootable tool) and it came up clean (despite very large numbers of 'seek errors' - seems those are normal for my disk!).
I wasted a heap of time looking for Grub bugs and worrying about hardware failures when eventually I noticed a suggestion to check the cables....