-   Linux - Newbie (
-   -   GRUB error 15 on stage1.5. Trying to dual boot Arch and WinXP (

Kao 07-06-2009 09:50 AM

GRUB error 15, won't load

I posted a similar thread on the Arch forums, but haven't got any answers since yesterday, so I figured it couldn't hurt to post here too.

I had Linux Mint dual booting fine with Windows XP, but hadn't used it in a long time and wanted to try Arch. I deleted Mint's partitions and made new ones for Arch, installed it (successfully, as far as I know), rebooted and...


GRUB Loading stage1.5.
GRUB Loading, please wait...
Error 15

Ugh! I don't see the GRUB menu or anything, it just locks up at this stage. I'm therefore unable to boot into either Arch or XP.

I have two HDs, one IDE and one SATA (where both OSs are installed). The IDE is sda, SATA sdb. sdb is divided in sdb1, which is Windows, sdb2, which is the boot partition, sdb3 - swap, sdb5 - root, and sdb6 - home.

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


/dev/sda1: LABEL="MAGUS" UUID="43DC-06FF" TYPE="vfat"
/dev/sdb1: UUID="8644E64C44E63F15" LABEL="LAVOS" TYPE="ntfs"
/dev/sdb2: UUID="d0ac72c6-5864-428d-bbb9-e3d20d8ddde5" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb3: UUID="7a716785-a76b-4dd4-8353-48d5afa0a306" TYPE="swap"
/dev/sdb5: UUID="48700728-0695-46f1-8f47-ea364800af1a" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb6: UUID="f1769be4-4c81-4e9c-b2c9-51cbc5743d09" SEC_TYPE="ext2" TYPE="ext3"


Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xc14bc14b

  Device Boot      Start        End      Blocks  Id  System
/dev/sda1  *          1        9728    78140128+  c  W95 FAT32 (LBA)

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

  Device Boot      Start        End      Blocks  Id  System
/dev/sdb1              1      32059  257513886    7  HPFS/NTFS
/dev/sdb2  *      32060      32071      96390  83  Linux
/dev/sdb3          32072      32195      996030  82  Linux swap / Solaris
/dev/sdb4          32196      38913    53962335    5  Extended
/dev/sdb5          32196      34019    14651248+  83  Linux
/dev/sdb6          34020      38913    39311023+  83  Linux


# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

#  Linux          Grub
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/sda        (hd0)
#  /dev/sdb2      (hd1,1)
#  /dev/sda3      (hd0,2)

#    +-------------------------------------------------+
#          | 640x480    800x600    1024x768  1280x1024
#      ----+--------------------------------------------
#      256 | 0x301=769  0x303=771  0x305=773  0x307=775
#      32K | 0x310=784  0x313=787  0x316=790  0x319=793
#      64K | 0x311=785  0x314=788  0x317=791  0x31A=794
#      16M | 0x312=786  0x315=789  0x318=792  0x31B=795
#    +-------------------------------------------------+
#  for more details and different resolutions see

# general configuration:
default  0
timeout  5
fallback  2
#color light-blue/black light-cyan/blue

# boot sections follow
# each is implicitly numbered from 0 in the order of appearance below
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.

# (0) Arch Linux             
title  Arch Linux
root  (hd1,1)
kernel /vmlinuz26 root=/dev/disk/by-uuid/48700728-0695-46f1-8f47-ea364800af1a ro vga=773
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root  (hd1,1)
kernel /vmlinuz26 root=/dev/disk/by-uuid/48700728-0695-46f1-8f47-ea364800af1a ro
initrd /kernel26-fallback.img

# (2) Windows
title Windows XP
rootnoverify (hd1,0)
chainloader +1

I tried all sorts of things in menu.lst - changing the first root to (hd0,x), pointing the second root directly to /dev/sdb5 instead of using uuid... also, curiously, using "find /grub/menu.lst" gives me (hd0,1). I tried "setup (hd0,1)", and that didn't work either.

I'm hesitant to try to install GRUB in the MBR as the Arch dual boot guide explicitly advises to install it in /boot.

What should I do?

I have very little experience with Linux, so any help is appreciated.


Kao 07-06-2009 03:24 PM

How weird - it seems my HDs are switching positions. I just ran fdisk and blkid again and the SATA came identified as sda, while it used to be sdb. Perhaps this is related to the GRUB problem?

(I guess it's the reason why it found menu.lst in (hd0,1))

ronlau9 07-06-2009 06:41 PM

If you change by accident the drive order during install sda and sdb does not change .
But what do change is that the drive that where the first drive at install time become hd0

syg00 07-06-2009 07:20 PM

You will have to write the MBR - it looks like the grub from Mint is still there, and can't find its stage files (because you deleted them :p ).

This looks like a better entry to follow - I've used similar on Arch for years.

Kao 07-07-2009 01:06 PM

Okay, some progress :)

I ran fixmbr with WinXP's Recovery Console. The first time I rebooted, GRUB seemed to be working just fine! I logged in to Windows XP (had to do some stuff on the Internet, didn't have time to set Arch up), and later shut the computer down and went to bed. Today I woke up and, to my disappointment, GRUB is now just skipped and Windows boots up automatically. I tried reinstalling GRUB with setup (hd0,1), but that did no good. Then I reinstalled Arch, still no luck. Tried this, but failed at the second umount -a because it said /mnt was busy or something to this effect.

Should I install GRUB in the MBR, despite what the Arch wiki advises? Or what should I do?


Hern_28 07-07-2009 01:15 PM

Re-install grub.
Yea, fixmbr deletes grub so you will have to re-install it.

Kao 07-07-2009 03:01 PM

Well, I'm confused. What purpose does the boot partition serve, then, if GRUB is on the MBR?

Hern_28 07-07-2009 03:39 PM

Same as when windows is installed, only windows does not easily boot linux.

syg00 07-07-2009 04:30 PM

The MBR contains a small amount (a few hundred bytes) of code (stage1) that the BIOS executes on power-on. Its job is to find the code that does the real work - in grub that is located in /boot, which may (but doesn't need to) be a separate partition. In windows (prior to vista) ntldr does the work of finding boot.ini and doing the actual boot function.
The stage1 code is very limited due to its size constraints - grub and lilo are somewhat more flexible than the windows code, but constrained none-the-less.
On modern equipment the requirement for a separate /boot partition has all but disappeared.

Larry Webb 07-07-2009 04:42 PM

syg00 won't there need to be something for bios to point to (mbr to operating system). I guess if everyone ran virtual machine it might make it easier.

syg00 07-07-2009 04:53 PM

The BIOS just cycles through the disks it knows about until it finds a sector zero with code in it - then it just loads the code and executes it. If all the disks have no code it gives up and complains. That's why you can have XP code on one disk and grub/lilo on another and flip-flop the BIOS entries to boot either if you want.
Can lead to unexpected errors if the first disk MBR has been blank for a while and gets re-written at some later stage - or a new disk changes the order in the BIOS.

Kao 07-11-2009 07:16 PM

I found what was wrong - every time I boot into Windows, it resets my boot partition from sdb2 to sdb1, so if I want to go back to Linux (or just use GRUB) I have to run cfdisk from a LiveCD... it's quite annoying. What could be causing this and how can I fix it?

All times are GMT -5. The time now is 08:31 AM.