GRUB Bugs - openSUSE 11.1

I have configured my new laptop as a dual boot with openSUSE & WinXP. During setup I wanted to give myself plenty of leeway for missteps, so I used Clonezilla to copy the entire hard disk to an external drive at various “milestones” along the way.

To make the setup as secure as possible, I chose to follow Ed “Shappy” Hopper’s guide to create an encrypted dual boot laptop. However, I realized midway that my partitioning scheme wouldn’t allow enough room for experimentation with VirtualBox.

“No problem,” I thought. “Just restore from the most recent snapshot and proceed from there.” But it hasn’t proven that simple. Here’s the rub:

When GRUB loads, I should see a pretty green splash screen from which I can choose the operating system to be loaded. Instead I see a plain black screen with my choices displayed in white text surrounded by a white border. Following an 8 second countdown the default OS, openSUSE, is loaded. Yes, it works, but it sure ain’t gonna impress the friends and family (nor me, for that matter).

When restarting the system from KDE, it should be possible to press and hold the “Restart Computer” button while sliding the mouse down to choose the operating system to be loaded on reboot. The selection is (apparently) written to a one-time boot file, and the chosen OS is loaded upon reboot without user intervention.

But it ain’t workin’ that way. Instead I see the same black screen with white text described above. The OS selection made from within KDE is not passed to GRUB, and the default OS is loaded following the countdown - unless I intervene.

Even though the system was working correctly before the last snapshot was created, I decided to try restoring from the next earlier backup. Same result. I could keep working backward through preceding backups, but it seems rather pointless. I’m hoping there is a more sensible and direct solution. Any takers?

Yast - System - etc sysconfig Editor

System - Boot - Splash
=YES

Check /boot/grub/menu.lst

The very top section should have something like this:

Modified by YaST2. Last modification on Sat Dec 20 05:14:37 UTC 2008

default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,1)/boot/message
##YaST - activate

Notice the bold: (hd0,1) * Check your default SUSE boot and see what the drive info is for you in root, you will probably have to change from my quoted to match yours.

Thank you for the prompt response. /boot/grub/menu.lst looks like this:

Modified by YaST2. Last modification on Wed Dec 24 04:12:21 UTC 2008

default 0
timeout 8
gfxmenu (hd0,4)/boot/message
##YaST - activate

Unless I’m told otherwise, I won’t be concerned about the missing “YAST” comment (generic_mbr). “hd0,4” is the correct identifier for the Extended partition where GRUB was written by the openSUSE installer.

The bootsplash setting in Sysconfig Editor was already set to “Yes”. I set it to “No”, rebooted, set it to “Yes”, rebooted. No change.

None of this particularly surprises me. As I noted in the initial post, the entire hard drive was restored from backup. It seems reasonable to expect that everything would be working just as it was when the snapshot was made.

If there are additional steps that can be taken, such as use of System Repair from the installation DVD, I’m willing to give that a try as well. I’ve had mixed results going that route in the past, so I figured I should look first for a simple solution.

In
/boot

make sure the file ‘message’ exists

it is a CPIO archive 432.5KiB in my sys

Again, thank you. Yes, the /boot/message file exists. It is the same size and type as yours.

Yast - System - etc sysconfig Editor

System - Boot -Theme

(what does it say there)openSUSE?

Should look into what the resolution grub is using at boot time. If the bootsplash image has no corresponding resolution to match the one your machine is using at boot it will fall to the text mode or black screen as you describe. You can change that resolution in the menu.lst by adding it it in your suse kernel line.

Is possible to use current bootsplash in verbose mode ?
I should disable in sysconfig or add verbose to menu.lst (grub) ?

The bootsplash theme in Sysconfig Editor is “openSUSE”. I have confirmed that /etc/bootsplash/themes is populated with artwork in a full range of screen sizes and resolutions, just as it was when the system snapshot was taken.

Using YAST package management, I’ve already tried uninstalling and re-installing the packages related to bootsplash. I hoped that might restore an obscure setting somewhere within the system. No go.

Of course, there still remains the question of why the system isn’t booting the operating system that was selected using the “Restart Computer” button in KDE. That would be roughly analogous to issuing an “init 3” command in Konsole and having the system reinitialize itself in run level 5 instead.

Or could be a bug … my system wasn’t only shutting down at all, and was a buggy version of kde kshutdown…

The difference here, though, is that everything was working correctly at the time the snapshot was created. It’s possible a bug exists in Clonezilla’s backup and restore, but I’ve found it to be highly reliable in the past.

I have considered the possibility of a bug in openSUSE. Whenever I do a new installation, it is my custom to give “Windows” a more descriptive name, such as “Windows XP Professional”, and to remove the “Floppy” option altogether from the menu list (my computer has no floppy drive).

If I forget to make these changes during an installation, I just use the “Boot Loader” option in YaST2 Control Center. When I tried this with openSUSE 11.1, GRUB wouldn’t load on reboot; and I couldn’t repair the system to a bootable state using the installation DVD.

So I just restored the system from backup (yes, everything came up as it should) and then made the desired changes to /boot/grub/menu.lst using KWrite. This, along with the issues described above, leads me to think the 11.1 architecture may have been altered in subtle ways that make the links between GRUB and the OS more tenuous.