I recently upgraded my computer’s motherboard and processor, and spent the next few days trying to work out which glitches were hardware related and which were coincidental. One problem I had was that the GRUB bootloader menu would not appear when the computer started. It was clearly there. It would boot to the default operating system after 10 seconds. If I hit an arrow key it would stop and wait for me to choose an OS. It just didn’t show up. All I got was a black screen with a cursor in the upper left corner.
On top of that, when Linux started booting, the screen was messed up as if the character set had been run through a meat grinder. You could tell what the letters were, but there was a ton of extra garbage. Then, when
init set the character set, the gibberish cleared up and the screen looked normal again.
I had been dealing with other problems that looked like video card or driver issues, but I eventually realized that the problem had nothing to do with the hardware upgrade.
About a week earlier, I had removed a couple of partitions from my hard drive and resized some of the remaining ones. Because I had to recover this drive from a hosed partition table a while back, the
/boot partition was created later than some of the data partitions—including the ones I wanted to remove. So when I deleted partitions 6–8,
/boot went from being partition 12 to partition 9.
When I updated
grub.conf to look for the OS on partition 9—
(hd0,8) in GRUB’s start-from-zero mentality—I forgot to update the line that tells it where to find the menu’s background image. It still read,
I’d never noticed it because I’ve gotten into the habit of turning the computer on, then walking into another room while it boots. The default OS started up fine, so I never saw the blank screen or gibberish until the hardware upgrade had me sitting there, watching it boot.
So if you find that your GRUB menu just isn’t showing up, but your system still boots… check
splashimage and make sure it points at a real file!