kernel and grub confusion

I have 2 issues that may be related. I’m not sure when they popped or if they happened together.

My pc is set up to dual boot XP and opensuse 11, each on its own hard drive. Grub got messed up somehow and Windows won’t boot. When I select windows, it starts the boot process but stops with:
rootnoverify (hd0,1)
chainloader (hd1,0)+1

I’ve fixed this in the past by either putting the right info in the parentheses or using a mapping command. But I did this so long ago, I completely forget how or what to do. In addition to menu.lst, I have menu.old and checked it for the right info, but it has the same.

I can only guess that I messed this up by messing up a kernel install. I think that when I installed 11.0, I ended up with the pae kernel. I don’t know why. I’ve seen it only on my laptop before this. Recently, I was trying to get a webcam to work and somehow pulled in an update to the default kernel. So, my grub menu has 4 linux boot options: a “regular” and “failsafe” for each of the default and pae kernels. The menu pre-selects the regular pae kernel which is not at the top of the list. So, I guess that is the one that grub “wants.” Windows is also an option (but it doesn’t boot).

Can you straighten me out?

Hi,

From your description I guess that the first partition in your first disk is the one where Windows is likely located, while Open Suse lives in the second drive (hd1).
Grub seems to be in charge of booting both systems, so it is probably installed in the MBR of the first disk (hd0).

According to my assumptions, the grub stanza corresponding to Windows should look like this:

rootnoverify (hd0,0)
chainloader (hd0,0)+1

instead of

rootnoverify (hd0,1)
chainloader (hd1,0)+1

So, the action plan is rebooting the system in rescue mode, mounting the partition hosting the file system where the Open Suse /boot directory is located and tweak the /boot/grub/menu.lst.
Alternatively, if you feel comfortable using the grub command line, you can get into it at boot time. Avoid the boot process to continue by entering grub edit mode typing ‘e’. Make your changes and when ready, press ‘b’ to boot the modified stanza.
Once Open Suse is up and running, make your changes permanent in /boot/grub/menu.lst

Regards.

Thanks carboncore. But that didn’t do it for me. I got the error 13. So, I switched it back and got the menu list error that I started with.

I should have done this to begin with: here is fdisk -l

Disk /dev/sda: 200.0 GB, 200049647616 bytes
255 heads, 63 sectors/track, 24321 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000e8d94

Device Boot Start End Blocks Id System
/dev/sda1 1 262 2104483+ 82 Linux swap / Solaris
/dev/sda2 * 263 2873 20972857+ 83 Linux
/dev/sda3 2874 24321 172281060 83 Linux

Disk /dev/sdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x938b938b

Device Boot Start End Blocks Id System
/dev/sdb1 1 1828 14675377 7 HPFS/NTFS
/dev/sdb2 * 1828 4865 24402704 f W95 Ext’d (LBA)
/dev/sdb5 1828 1891 514048+ 82 Linux swap / Solaris

Disk /dev/sdc: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xdeab662a

Device Boot Start End Blocks Id System
/dev/sdc1 1 4865 39078081 7 HPFS/NTFS

Sorry, I don’t know how to paste that with proper spacing.
sdc is an external usb drive I use for backups.
Here is the menu.lst Odd, it didn’t seem to take my last change.

Modified by YaST2. Last modification on Fri Aug 15 17:39:05 EDT 2008

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

###Don’t change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.0 - 2.6.25.11-0.1 (default)
root (hd0,1)
kernel /boot/vmlinuz-2.6.25.11-0.1-default root=/dev/disk/by-id/scsi-SATA_MAXTOR_STM32008_9QE03YGL-part2 resume=/dev/sda1 splash=silent showopts vga=0x317
initrd /boot/initrd-2.6.25.11-0.1-default

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – openSUSE 11.0 - 2.6.25.11-0.1 (default)
root (hd0,1)
kernel /boot/vmlinuz-2.6.25.11-0.1-default root=/dev/disk/by-id/scsi-SATA_MAXTOR_STM32008_9QE03YGL-part2 showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off x11failsafe vga=0x317
initrd /boot/initrd-2.6.25.11-0.1-default

###Don’t change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.0 - 2.6.25.11-0.1 (pae)
root (hd0,1)
kernel /boot/vmlinuz-2.6.25.11-0.1-pae root=/dev/disk/by-id/scsi-SATA_MAXTOR_STM32008_9QE03YGL-part2 resume=/dev/sda1 splash=silent showopts vga=0x317
initrd /boot/initrd-2.6.25.11-0.1-pae

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – openSUSE 11.0 - 2.6.25.11-0.1 (pae)
root (hd0,1)
kernel /boot/vmlinuz-2.6.25.11-0.1-pae root=/dev/disk/by-id/scsi-SATA_MAXTOR_STM32008_9QE03YGL-part2 showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off x11failsafe vga=0x317
initrd /boot/initrd-2.6.25.11-0.1-pae

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

###Don’t change this comment - YaST2 identifier: Original name: floppy###
title Floppy
rootnoverify (hd0,1)
chainloader (fd0)+1

As you can see, I have a double kernel entry. I don’t know if that is the cause of my problem, but suse boots fine.

Hi,

From Grub documentation,

13 : “Inconsistent filesystem structure”

This error is returned by the filesystem code to denote an internal error caused by the sanity checks of the filesystem structure on disk not matching what it expects. This is usually caused by a corrupt filesystem or bugs in the code handling it in GRUB.

You have two disks containing windows partitions:

Disk /dev/sdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x938b938b

Device Boot Start End Blocks Id System
/dev/sdb1 1 1828 14675377 7 HPFS/NTFS
/dev/sdb2 * 1828 4865 24402704 f W95 Ext’d (LBA)
/dev/sdb5 1828 1891 514048+ 82 Linux swap / Solaris

Disk /dev/sdc: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xdeab662a

Device Boot Start End Blocks Id System
/dev/sdc1 1 4865 39078081 7 HPFS/NTFS

I guess the one where Windows is installed is /dev/sdb1
/dev/sdb1 1 1828 14675377 7 HPFS/NTFS

I that is correct, the grub stanza corresponding to Windows should be:

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

In other words, the first partition of the second disk, instead of the first partition in the first disk. That´s why grub is complaining.

It would also be advisable to enable the bootable flag in that partition (/dev/sdb1).
You currently have it in /dev/sdb2, which doesn´t make much sense, since it is the container (the extended one).
For that, use fdisk /dev/sdb, and then ‘a’.

Hope this helps.

Regards.