Mailinglist Archive: opensuse (3506 mails)

< Previous Next >
Re: [SLE] Grub loading Stage2 read error
  • From: Carl Hartung <suselinux@xxxxxxxxxxxxx>
  • Date: Sun, 17 Sep 2006 04:35:41 +0000 (UTC)
  • Message-id: <200609170035.31801.suselinux@xxxxxxxxxxxxx>
On Saturday 16 September 2006 23:38, Paul Abrahams wrote:
> I did exactly that and got the same result as usual: Stage 1.5 Read Error.
>
> Actually, there was one additional step that no one has mentioned: calling
> grub-install to place the contents of menu.lst in the boot sector. Without
> that, changes to menu.lst have no effect.
>
> When I execute the root / kernel /initrd commands you listed from the grub
> command line, I get that Error 16.

Okay, I've got egg on my face now... <wipe, wipe> ;-)

Apparently, GRUB does *not* look beyond it's principal function, meaning it
considers it's own directories and files to comprise the entire filesystem
(at least while GRUB is active,) meaning "root" in 'grubspeak' *is* /boot!

Who knew?!

So, knowing that now, try adjusting my previous menu.lst as follows:

----- cut -----
# Default boot OS and bootsplash options defined:

color white/blue black/light-gray
default 0
timeout 8
gfxmenu (hd0,7)/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 10.0
    root (hd0,7)
    kernel (hd0,7)/vmlinuz root=/dev/hda8 vga=0x317 selinux=0    
resume=/dev/hda6  splash=silent showopts    initrd (hd0,7)/initrd
----- cut -----

Other interesting 'tidbits' that might be helpful:

The syntax `(hd0,0)' represents using the first partition of the first disk
(or the boot sector of the partition when installing GRUB)
...
The device syntax is like this:

(device[,part-num][,bsd-subpart-letter])
...
Another example is when you have a separate boot partition which is mounted
at /boot. Since GRUB is a boot loader, it doesn't know anything about
mountpoints at all. Thus, you need to run grub-install like this:

# grub-install --root-directory=/boot /dev/hda

If the device map file exists, the grub shell reads it to map BIOS drives to
OS devices. Here's what mine looks like:
# cat /boot/grub/device.map
(fd0) /dev/fd0
(hd0) /dev/hda
(hd1) /dev/hdb
(hd2) /dev/hdc

Good luck!

Carl

< Previous Next >
Follow Ups