NeoGrub trouble

#1
Hello to all,

I have a successful vista/xp dual boot setup (installed vista first and sorted out the boot loader situtation with EasyBCD). I've just installed openSUSE 10.3 but can't boot it up. My setup:

Drive 1: vista
Drive 2: xp on 1st partition, linux-swap on 2nd partition, opensuse on 3rd partition
Drive 3: data disk (2 partitions)

The swap and opensuse partitions are both primary and I made the swap partition only 100mb because I have 4gm ram.

During the opensuse install process I elected to install grub to the / partition but I got

"Error occurred while installing grub
gnu grub version 0.97 (640k lower/3072k upper memory) CodeEnd: 0x3EF2C
grub> setup --stage2=/boot/grub/stage2(hd0)(/dev/sdb3,2)
Error 23: Error while parsing number
grub> quit"

I decided to continue the install without installing any boot loader. On reboot, both vista and xp would boot, but (not surprisingly) opensuse would not. I then set up and configured neogrub as follows:

find --set-root /boot/vmlinuz-2.6.22.5
kernel /boot/vmlinuz-2.6.22.5 ro root=/dev/sdb3
initrd /boot/initrd.img-2.6.22.5

This does bring up the neogrub loader but after selecting opensuse, it hangs after the first command line above.

Any ideas how to properly configure neogrub?
 

Mak 2.0

Mod...WAFFLES!?!?
Staff member
#2
#3
I've tried configuring based on the example in the multi-entry menu.lst
root (hd1,2) #Load opensuse from the 2nd harddrive's 3rd partition.
#Next Line: Translate (hd1,2) to Linux notation and set that as the root partition
kernel /boot/vmlinuz-2.6.22-5 root=/dev/sdb3
initrd /boot/initrd.img-2.6.22-5

NeoGrub returns the following:
root (hd1,2)
filesystem type is ext2fs, partition type 0x83
kernel /boot/vmlinuz-2.6.22.5 root=/dev/sdb3
Error 2: Bad file or directory type.

I created the partitions with parted magic before installing opensuse and the 3rd partition (/) is ext3. So I'm not sure what to make of this.
 

Mak 2.0

Mod...WAFFLES!?!?
Staff member
#4
I will have to get Guru in on this one. I do not know. He designed it and he will know more about it than me.
 
#5
I wiped the linux partition, then deleted the swap and root partitions; next, I reinstalled opensuse and let the installer create the partitions:
1) xp
2) extended partition
5) swap (logic)
6) root (logic)
I deleted the home partition proposed by the installer (I don't think that would create any problems, although it did cause the partitions to skip a few numbers). Again, the installation went ok until it came time to install grub to the root partition....same errors as before except it referenced the different effected partition. I also noticed that all of the partitions mounted at the begining of the installation were unmounted before exiting the installer program. I tried to configure neogrub again, but this time it gave me error 17: file not found (hd1,5). I'm thinking opensuse is not for me!
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#6
Hi asimpson, welcome to NST.

I've been meaning to reply to your post but didn't really get the chance - hopefully we can still get this sorted out.

NeoGrub may present both these errors (2 and 17) when the wrong drive is selected.

If you run
Code:
find /boot/vmlinuz-2.6.22.5
at the GRUB terminal (press 'c' to access it when the menu is being displayed, I believe) it should print a hard-drive number + partition number indicating where that file lives. Is that the same value as the one you are using?


Now if you're absolutely sure that the (hdx,y) values you used are correct, then the problem is that GRUB is attempting to access a portion of the drive it can't reach. This can happen with drives on motherboards with drive controllers that have an incompatible LBA or UDMA configuration. As a result, the motherboard thinks a drive can be accessed with a certain standard when it can't. It's like the motherboard decides for itself that the drive can speak French when it can't - and then it tells GRUB to talk to the drive in French, too.

When this happens, GRUB cannot properly communicate with the drive read the info from it.

Solution: Check the "drive configuration" section of your BIOS. If you've manually configured the settings for disks, set them to auto. If they're set to auto, manually configure them with a lower UDMA mode.

An example on the solution:
Fix: Rather simple really go into your BIOS and reset the IDE hard-drive settings from (Auto) to a DMA mode the hard-drvie does not recognise,
e.g. On the following two motherboards, Asus A8V Deluxe (model A + B I'm building two for friends) and Asus A7V 880, the hard-drives are seen automatically and the drives set according to the reported back DMA mode is auto-selected (using Seagate Barracuda 120gb, 250gb, and 320gb ATA {also known as PATA} 16mb cache drives are seen as UDMA modes 5 and 6, and Hitachi Deskstar 80gb (these drives are the same as IBM I believe.)
Set the value to one NOT recognised by the drive (ignore motherboard modes) and set them to UDMA 4, if your drive uses DMA4 or UDMA 4 use a lower value or adjust accordingly.
This will force the grub loader to read the relevant DMA/UDMA mode directly from the drive and not from the motherboard BIOS, so it then selects the correct mode and can read the drive. (If it trys to read from the motherboard BIOS it stalls and this is where the problem [BUG] occurs.
 
#7
Thanks for the good ideas Computer Guru,

I've tried them with no success. I became convinced that neogrub was not the problem, rather it was openSUSE. I spun a 64 bit dvd disk for the install. Other users have tole me of rumors of 64 bit problems so I tried installing the 32 bit os from the live cd and it works perfectly. Grub installed without any issues so I've configured easy BCD to use it rather than neogrub just because it is easier. Bottom line, assuming you have a good install disk, easy BCD made setting up a triple boot easy.
 

mqudsi

Mostly Harmless
Staff member
#8
Sorry to hear that openSUSE was the problem - it's a pretty good distro on the whole.

Anyway, great that everything worked out in the end :smile: