bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

fixing the "grub loading stage1.5" hanging error


From: Michael L. Gualtieri
Subject: fixing the "grub loading stage1.5" hanging error
Date: Fri, 26 Oct 2007 15:41:56 -0400

Hi all,

I'm curious if anyone has a fix, workaround, or advice for the "grub loading stage1.5" hanging error.  This occurs sometimes on fresh grub-installs, where grub never loads, and instead hangs on this text with no error message:

GRUB loading stage 1.5
GRUB loading, please wait...

I have read all I can find out there on this error, and many people suggest it has to do with an issue in the BIOS.  All I can say is that I have experienced this error on both new and old machines, and in my case changing BIOS settings (like order of boot drives, etc...) seem to have no effect.  Right now I have one machine where the problem sometimes occurs and doesn't occur on the exact same setup and hard drive layout.

A little more about my test setup:

I have a Windows partition on hda1 and an extended partition (hda2) that contains hda5 which is Linux.  Here is the fdisk output:

Disk /dev/hda: 40.0 GB, 40020664320 bytes
16 heads, 63 sectors/track, 77545 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1       56731    28592321    7  HPFS/NTFS
/dev/hda2           56731       77536    10485760    f  W95 Ext'd (LBA)
Partition 2 does not end on cylinder boundary.
/dev/hda5           56731       77536    10485728+  83  Linux

This fdisk layout had been identical in all my tests, and as I mentioned above, sometimes it works, sometimes I get the hang.

I have actually went through a variety of testing outlined here on this Gentoo forums thread, but haven't yielded any real solutions:
http://forums.gentoo.org/viewtopic-t-589850.html


I have done some debugging of the grub source to find out where the freeze happens.  I traced it to this line:

file: stage2/disk_io.c
fuction: int grub_open (char *filename)
line: if (!errnum && (*(fsys_table[fsys_type].dir_func)) (filename))

In particular it hangs at this part of the if statement:
(*(fsys_table[fsys_type].dir_func)) (filename)


I'm not exactly sure why it can't load the function pointer, or why it waits infinitely.  Does anyone know what this line is trying to do specifically, or why it may be hanging?  I don't know the grub source well enough to really get any deeper.


Thanks,
Mike



reply via email to

[Prev in Thread] Current Thread [Next in Thread]