Grub load fail

I’ve installed opensuse 11 in my secondary hard disk (ide) and my xp running in primary hard disk (sata). Setup my bios to load my secondary hdd 1st, opensuse is running smoothly but i cant load my xp thru GRUB. If i want to load my xp… i’ve to change my bios. Then suddently my GRUB wont load my opensuse. I am a linux newbies… can anybody help me PLEASEEEE!!!

Is GRub not loading or does it comes with a error message ?
You also can try to use the repair option of install media
maybe Grub will load totally again and after that we can write few extra lines in the boot loader to boot windows Xp
regards
dobby9

The important question here is what happens during the Windows XP load sequence? Does it fail in Grub? Or does it attempt to start Windows and Windows itself won’t boot?

The most likely reason is the switching of disk boot order that you have done. If you switched the disk order BEFORE installing OpenSUSE, then it is likely that the disks aren’t where Windows thinks they are at boot time. This would explain why you can boot Windows when you switch back to the old disk order, but not from Grub.

If what I have been suggesting turns out to be the case, your best bet would be to switch the boot order back to the way Windows likes it and then install Grub in the MBR of the first SATA disk. There are a number of ways to do that; if you are unsure of how to do it, you might just reinstall, making sure that OpenSUSE is installed on the second disk and that the first disk is left alone (except for the MBR).

Or you might be able to fix the problem by adding the map command to /boot/grub/menu.lst. See the Grub manual for more information. (Since you have switched the boot order when running OpenSUSE, Windows is now installed on the second disk … and Windows does not like that!)

thanx for the reply,

now my problem is i cant boot to my opensuse, grub said error missing operating system. i only can launch it thru the livecd.

@soul77 -

You are going to need to post back the output of, from root:

fdisk -l
cat /boot/grub/device.map
cat /boot/grub/menu.lst

As suggested above, you have a misalignment somewhere between the bios boot sequence, where the boot loader is installed, the grub boot device alignment file (device.map), or the grub boot menu (menu.lst). There are actually a number of ways to make this work, none difficult, but the controls all have to be consistent with one another.

It is quite likely that you just need to boot from the pata drive (so set up this way in the bios) and “chainload” to the XP boot loader. That requires the “map” command because XP needs to think it is on the first drive in the sequence. The map command may not have been included in the openSUSE boot setup because at the time of the install, the bios boot sequence had the XP drive first. Post back the outputs above and we’ll sort this out quickly.

I have the same problem as soul77, except that I have a dedicated LINUX machine that I upgraded from 103 to 11.0 and that cannot boot without the install DVD in …

Here is my fdisk -l result:

suse:/home/vffavre # fdisk -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
240 heads, 63 sectors/track, 15505 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes
Disk identifier: 0xb2420d13

Device Boot Start End Blocks Id System
/dev/sda1 1 15505 117217768+ 83 Linux

Disk /dev/sdb: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00041486

Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2104483+ 82 Linux swap / Solaris
/dev/sdb2 * 263 2873 20972857+ 83 Linux
/dev/sdb3 2874 38913 289491300 83 Linux

Here is my cat /boot/grub/device.map

(hd0) /dev/sda
(hd1) /dev/sdb

And my cat /boot/grub/menu.lst

suse:/home/vffavre # cat /boot/grub/menu.lst

Modified by YaST2. Last modification on Tue Jun 24 21:21:12 CDT 2008

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

###Don’t change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.0
root (hd1,1)
kernel /boot/vmlinuz-2.6.25.5-1.1-default root=/dev/sdb2 showopts resume=/dev/sdb1 splash=silent
initrd /boot/initrd-2.6.25.5-1.1-default

###Don’t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe – openSUSE 11.0
root (hd1,1)
kernel /boot/vmlinuz-2.6.25.5-1.1-default root=/dev/sdb2 showopts ide=nodma apm=off acpi=off noresume edd=off x11failsafe
initrd /boot/initrd-2.6.25.5-1.1-default

I tried to install grub from the console using grub-install and from Yast putting it into the MBR but nothing works …

Please help.

I’m having the same problem with a very similar setup. Old hard disk sda has Windows and SuSE10.3 partitions on it, and I added a new disk sdb and installed 11.0 on it. Now the system boots to a Grub stage 1.5 error 25.

Any help recovering would be much appreciated.

Ok, I’m now a step further. After a semi-random act of editing I booted my computer with the SuSE11 live CD and mounted the original hard disk sda to have a look at Grub’s configuration files and then I edited device.map:

linux> su
linux> mount /dev/sda3 /mnt
linux> vi /mnt/boot/grub/device.map

and added at the end of the file the line:

(hd1)   /dev/sdb

Then rebooted and bingo, it started back with SuSE10.0 again. From Yast I selected System -> Bootloader -> Other -> Propose and Merge which gave me a SuSE 11.0 menu entry from sdb1. Unfortunately this doesn’t boot, but comes up with a Grub error 25 still. Thinking my luck may be in I tried ‘grub-install /dev/sdb’ but no change. It is now obvious that something is not correctly configured on this drive, but what?

Any suggestions? Thanks in advance.

ksurf1, looks right.
Did you install grub to /dev/sdb mbr?
What disk is your Bios booting from?

Jopway,
my bios is fine. The other disk is not bootable and doesn’t have any OS on it. I actually upgraded my 103 to 11.0 on the same disk and my 10.3 was working fine.

I am trying Yast-> system->boot loader again to toggle all the possible options for the loader to be … My booting device is /dev/sdb2

I tried grub-install specifically on /dev/sdb2 but no luck.

Yeah, I cannot figure this one out.

How come it boots fine with the install DVD in ?

try start from scratch then propose new configuration

tried that too. no luck.
It almost looks like the MBR is write protected !

Should I switch to lilo ?

You can also try installing Grub to sdb1 MBR and booting from that one in Bios.
If that works that’ll mean there’s some problem in adding Grub to sdb2 MBR…

@ksurf1,

Possibly a bit of confusion here. There is no such thing as an MBR in a partition, i.e., sdb1, sdb2, etc. The MBR resides in the first sector of the disk; it contains the bootstrap code and the partition table. The code can also be installed into the boot sector of any partition (except an extended), but that sector must be called by the bootstrap. Also, I can’t conceive of the MBR being write-protected; how would the partition table be written to then?

If you are booting from the second drive in the hardware sequence (sdb), and you have set this drive as the first boot device in the bios, then your device.map and menu.lst are wrong. That is, grub’s (hd0) should be sdb. And you need the bootstrap code to be installed to the MBR of sdb. If you switch sda and sdb in device.map and change menu.lst to point to (hd0,1), then you can install the strap code to the MBR of (hd0), i.e., sdb.

In the grub shell this can be done by (after fixing device.map):

>root (hd0,1)
>setup (hd0)
>quit

Hi Mingus725,
thanks for your help but it didn’t work.

  1. in order to boot as is, I have to boot on the DVD and then choose the 1st option, “boot from Harddrive”. Then it goes to my sdb MBR and finds all the GRUB information and boots normally. If I don’t boot initially from the DVD, I get:

GRUB Loading stage 1.5.
GRUB loading, please wait …

And it sits there.

  1. I made sure my (sdb) drive was in the first slot for the HDD group in the BIOS. No change, I still have to use the DVD.

  2. And finally, I tried rotating the hd0 and hd1 in menus.lst and device.map, installed grub again (with the commands you listed) and I got a booting error that prompted and edition of the menu.lst when I booted again ! I had to manually point to (hd1,1) for the system to boot.

So bottom line:

  • I think my device.map and menu.lst files are ok since the system boots (see first point)
  • What I don’t get is why it does not boot without the DVD in !
  • Note: I did not alter the BIOS or any hardware when I upgraded my 10.3 to 11.0. And 10.3 was booting just fine …

What would you suggest ?

Thanks for your help.

Oooops! Sry! I meant /dev/sda and /dev/sdb respectively up here. Sorry for the confusion caused…

When you say you “made sure my (sdb) drive was in the first slot for the HDD group in the BIOS,” you’re referring to the boot device sequence, right?

And, sorry, but I don’t quite get your meaning here: “I got a booting error that prompted and edition of the menu.lst when I booted again!”

The DVD is AFAIK handing off to the MBR of the first boot drive defined in the bios. If that is sdb, and the system boots, then that suggests that the sdb MBR is OK. When you boot without the DVD, if sdb is the first boot device, then it should boot exactly the same as with the DVD - it’s the same code executing.

But the error message you get indicates that (a) grub was installed to the MBR of the device booting and that (b) it is being pointed at an invalid location to find its stage2. This would seem to indicate that the bios is actually booting from the other drive; perhaps it has an invalid (or the old?) grub installed?

Run the grub shell again and do:

>find /boot/vmlinuz

It should reply with: (hd1,1)

Then do:

>root (hd1,1)
>setup (hd1)
>quit

If this doesn’t work, I would try taking the other disk offline to isolate the problem and be absolutely certain that sdb is being used - I have seen the bios boot map get incorrectly passed. You would need to temporarily modify device.map and re-install grub to do this, as sdb will become sda. But it may enable you to get to the root of the problem. If you do this, install grub from its shell as above (except now root would be hd0,1 and setup should be on hd0). Also keep in mind that as long as you can get grub to load, you can edit commands or drop into its shell for testing, verification, changing, etc.

Your first question:
Yes, that is the boot sequence in the BIOS.

Second question: when I installed on hd0 having edited the device.map, it failed at booting. It could not find the partition and prompted a sort of low level shell that allowed to edit the menu.lst file on the fly (while trying to boot). That is where I put hd1,1 instead of hd0,1

Here is the result of your scripts:

GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub> find /boot/vmlinuz
(hd1,1)

grub> root (hd1,1)
Filesystem type is ext2fs, partition type 0x83

grub> setup (hd1)
Checking if “/boot/grub/stage1” exists… yes
Checking if “/boot/grub/stage2” exists… yes
Checking if “/boot/grub/e2fs_stage1_5” exists… yes
Running “embed /boot/grub/e2fs_stage1_5 (hd1)”… 15 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd1) (hd1)1+15 p (hd1,1)/boot/grub/stage2
/boot/grub/menu.lst”… succeeded
Done.

grub>

That is what I tried in the past and it didn’t work.

ok, I am booting again.

Ok Mingus275,
I tried with ONE disk only (the one with the OS), installed grub on dh0 this time and … SAME ! Grub sits at loading ! And if I boot from the DVD, and ask to boot from the harddrive, it finds the partitions and loads GRUB !

I am getting insane ! I know it shouldn’t boot with the DVD if it doesn’t on its own ! But it does !

My settings is such that:

  • my sda is data disk on an IDE connector
  • my sdb (/ etc …) is on a SATA connector

I tried all your recommendations. Still no luck.

Please advise.