Dual Boot Problem

Hello, i’m trying 11.1 RC and i’m having a problem with booting.

When i change the boot order using the YAST2 menu, trying to make windows my default boot, something goes wrong and can not boot anymore windows nor linux (no os found message).

Running the on CD repair tool offers me a GRUB menu without windows and reading in this tool the configuration from disk offers me the right menu (the one i want) but takes no repair effect.

Reinstalling 11.1 from scratch repaired the boot options.

Previously i had a 11.0 installed where i wrongly deleted its kernel via yast2. Reinstalled it(no repair was possible ) but with the first kernel update from online update, suse disappeared from the grub menu (previous updates were correct) . So i suspect i will have trouble with kernel updates for 11.1 too.

Any idea of what is happening or what i need to do to repair the GRUB menu?


We’ve seen random occurrences of the kernel update script borking the menu.lst file. I’ve not been able to pin down exactly why, but it does seem that a given update will hit a number of users that way. And again, sometimes a random one-off. I would think that the script would be identical, but without looking at the code I can’t say for sure.

Sounds like your system is OK now? If you’d like, post back here your /boot/grub/menu.lst and we can see if there is anything peculiar.

As an aside, while I’ve never had the corrupted menu.lst problem, I have had an updated kernel itself be unusable. So I’ve created a directory under /boot into which I copy the kernel, initrd, symlinks, and menu.lst before doing an update. Then if you have a problem booting, you can break out of the grub menu and modify the boot stanza as necessary. Just fwiw.

ok, thanks for your response.

i’will repeat the grub change so i can post here a grub menu not working and at the end is my current menu.

But the problem is before grub or i think so. After change the grub menu options via YaST2, in the next reboot, the grub menu is not displayed, and the machine displays a message (not a grub message) that no os is found so i guess the machine can’t find grub or something like that.

Booting from CD and trying to repair the system installing a new grub, with the choices i’ve made, doesn’t correct this.

Here goes my current grub menu.


Modified by YaST2. Last modification on Wed Dec 3 11:52:44 UTC 2008

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

###Don’t change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 -
root (hd0,5)
kernel /boot/vmlinuz- root=/dev/disk/by-id/ata-HTS541010G9SA00_MP2ZM4X0JA5R4R-part6 resume=/dev/disk/by-id/ata-HTS541010G9SA00_MP2ZM4X0JA5R4R-part5 splash=silent showopts vga=0x361
initrd /boot/initrd-

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – openSUSE 11.1 -
root (hd0,5)
kernel /boot/vmlinuz- root=/dev/disk/by-id/ata-HTS541010G9SA00_MP2ZM4X0JA5R4R-part6 showopts ide=nodma apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x361
initrd /boot/initrd-

###Don’t change this comment - YaST2 identifier: Original name: windows###
title Windows
rootnoverify (hd0,0)
chainloader +1

The message “no os found” (not to be confused with “missing operating system”) is the standard bios error when it does not find an executable IPL (the master boot code in the MBR, first 440 of the 512 bytes). I noticed in your menu.lst the YaST notation (at top) “generic_mbr”; YaST has the option of installing “generic boot code” (it’s under the Boot Loader Options button on the Boot Loader Installation tab) as an alternative to grub. Since your root partition is sda6, a logical partition, for a generic IPL to work you would need to have grub installed in the partition boot record (PBR) of 1 of the 4 primaries (btw, the Windows IPL is nearly identical, the difference being it cannot use the extended primary’s PBR whereas the generic code can).

Sometimes the IPL gets corrupted, but the bios still hands off. This occurs when the code accepts the bios call but cannot continue. In this case, you will often see a piece of code execute and then hang, e.g., “GRUB…”. I haven’t see the bios hand off to a bad IPL and there be nothing displayed at all, although that is technically conceivable.

I would take a look at exactly what is in the IPL. You can do it this way:

dd if=/dev/sda of=sdaipl bs=440 count=1
xxd sdaipl

That will display the code contents in hex/ascii. The telltale piece of a Windows IPL is “Invalid partition table.Error loading operating system.Missing operating system” and grub’s is “GRUB .Geom.Hard Disk.Read.Error”. I don’t have a generic IPL to look at just now.

Just as an fyi I’ll add that this kind of problem can occur when a “drive overlay” is used. With older drives and bios’s that suffered from the pre-LBA or 1027 cylinder problems, some drive manufacturers installed an “overlay” which worked around this. If the overlay was changed in any way (such as reinstalling the IPL) it was corrupted and system became unbootable with the bios error you saw. I seriously doubt this applies to your system.

Hope that gives you some clues.

It seems that i’ll have to read some books to understand all your explanation lol!

Thanks for your response, i’ll try to repeat all the process again to see how this behave and how it changes the MBR etc.

Thanks !

This is very good illustrated explanation of the XP and Vista multi-booting process: Understanding the Multiboot Process. The “generic boot code” operates nearly identically to the MBR boot code (the IPL) in both those versions of Windows.