"GRUB Error 18" after clean install with OpenSUSE 12.1

Hi. I’m a long time SUSE user (since 8.0), but now I’m having a problem with a clean install of 12.1. My motherboard is a relatively old GA-K8NF-9. I have only 2 sata drives in the system. I’m going for a dual-boot setup: WinXP + OpenSUSE 12.1.

I tried the following layout: 1st primary partition: 30GB (ntfs) for WinXP, then the rest of the drive for an extended one, which contains: 8GB swap, 30GB (ext4) for OpenSUSE 12.1 (/), and the rest (~200GB, ext4) for /home.

I first installed WinXP, then OpenSUSE 12.1. I chose to write GRUB to MBR (I also tried not to IIRC). At the end of the install the screen was all scrambled (Nouveau to blame, I suppose), but I managed to Crtl+Alt+F1, log in as root and reboot.

Now here is the problem: GRUB says “Error 18” and the system won’t boot. I tried the WinXP utility “fixmbr”, but it seemed to damage the partition table or something (now I only get the message “GRUB” and the system stops there).

My previous system had a similar layout: PATA disk instead of SATA, 10GB WinXP + 2GB swap + 64MB ext2 for /boot + 20GB ext4 for “/” + 40GB ext4 for /home. I don’t remember exactly if swap was before or after /boot.
Should I try to make a /boot partition next time?
Any more suggestions?

I had to adjust the HD’s in the Grub setup here
http://dl.dropbox.com/u/10573557/Bootloader%20HD%20Order/bootloader-main.png
http://dl.dropbox.com/u/10573557/Bootloader%20HD%20Order/bootloader-details2.png

I don’t know how much you understand about all this, but it’s a little complicated.

For me the installer got it wrong and I had to go back and make adjustments

I suggest you just re-install openSUSE and be careful about the grub setup
No don’t try a /boot

You didn’t explain your HD boot order

As I understand it the XP and SUSE are on the same HD and presume this HD is set as first boot device?
It should be seen as sda
And should be first in that section I pointed you to.
Typically in that case Booting would say grub is to Extended and from root

Ok, I solved it. A day wasted tho…
But here’s the solution for those that may come here googling for answers.

My boot order was correct.
All caf4926’s assumptions in his last post were correct (i.e. XP and SUSE on the same HD, and that was the first drive).

As I said in my first post, the booting process was stopping before entering the Grub menu with the “Error 18” message.
At the time of the installation OpenSUSE suggested writing the bootloader in the extended partition only (i.e. “Boot from Extended Partition” was the only option checked).
After installing everything again with the option “Boot from Root Partition” in addition to “Boot from Extended Partition” I could reach the Grub command prompt (no menu).
At first I tried to install checking only the “Boot from Root Partition” option, but it had no effect. I had to check both to see an improvement.

But then, in the Grub command prompt, when trying to manually load the kernel it failed again with the “Error 18” message (i.e. “kernel (hd0,5)/boot/vmlinuz”). Trying the same command from a live CD did the same, or worse, it segfaulted Grub.

The final solution was to enter the BIOS, select the drive and change the Access Mode from “Auto” to “Large”. That did it.
Also my BIOS seems to have a bug in which the elements of that screen are only saved if you press F10 (save&reboot) in that screen, but they aren’t if you press Esc to go to the previous screen and then press F10 (it’s strange cause that works well in the other screens).
Another solution would have been (probably) to make a boot partition near the start of the drive, but as I said that was not necessary.

If anyone is stuck with this error or any other Grub error, here’s a site with lots of information: grub page