Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 44857 - GRUB: root=/dev/hda3 kernel parameter unnecessary for 2.4.25?
Summary: GRUB: root=/dev/hda3 kernel parameter unnecessary for 2.4.25?
Status: RESOLVED WONTFIX
Alias: None
Product: [OLD] Docs-user
Classification: Unclassified
Component: Handbook (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Docs Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-16 08:56 UTC by Dan Scott
Modified: 2004-03-25 16:00 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Scott 2004-03-16 08:56:23 UTC
I followed the Handbook instructions for installing Gentoo 2004.0 and configuring the GRUB bootloader using Code Listing 5:

--------------
Code Listing 5: grub.conf for non-genkernel users

# Which listing to boot as default. 0 is the first, 1 the second etc.
default 0
# How many seconds to wait before the default listing is booted.
timeout 30
# Nice, fat splash-image to spice things up :)
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.4.24
# Partition where the kernel image (or operating system) is located
root (hd0,0)
kernel /kernel-2.4.24 root=/dev/hda3

# The next three lines are only if you dualboot with a Windows system.
# In this case, Windows is hosted on /dev/hda6.
title=Windows XP
root (hd0,5)
chainloader +1
-------------

The problem was with the following line:

kernel /kernel-2.4.24 root=/dev/hda3

I modified the line to point to my ReiserFS root partition on /dev/hda7:

kernel /kernel-2.4.24 root=/dev/hda7

and was unable to boot correctly until I changed the line to remove the "root=/dev/hda7" parameter entirely. After removing the parameter, I was able to boot perfectly normally.




Reproducible: Always
Steps to Reproduce:
1. Follow the GRUB configuration instructions in Code listing 5 of http://www.gentoo.org/doc/en/handbook/handbook.xml?part=1&chap=9#doc_chap2
2. Adjust the kernel root parameter to point to my real root.
3. Reboot.

Actual Results:  
After loading the kernel, I received the following kernel panic following the
loading of the kernel, just at the point when the kernel would normally mount
the root partition:

<some error about being unable to find a ReiserFS partition>
VFS: unable to mount root partition at 03:05

Before you ask, yes, ReiserFS was compiled into my kernel and I had emerged the
reiserfstools before rebooting.

Expected Results:  
The kernel should have found the root partition, mounted it, and continued booting.

This is the only machine on which I have installed Gentoo successfully, so I
don't know whether this is a problem with the kernel root parameter and
vanilla-sources-2.4.25, with ReiserFS, or a hardware issue -- but it's worth
noting that a search on VFS: kernel panic turns up many cases where this might
be the real issue but nobody has suggested simply removing the root=/dev/XXXX
parameter.

Argh. Posting from Windows at the moment (still working on configuring my
wireless LAN). I'll try to add this as a comment or attachment later today.
Comment 1 Dan Scott 2004-03-16 17:25:02 UTC
emerge info:
Portage 2.0.50-r1 (default-x86-2004.0, gcc-3.3.2, glibc-2.3.2-r9, 2.4.25)
=================================================================
System uname: 2.4.25 i686 Intel(R) Pentium(R) III Mobile CPU       800MHz
Gentoo Base System version 1.4.3.13
Autoconf: sys-devel/autoconf-2.58-r1
Automake: sys-devel/automake-1.7.7
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CFLAGS="-O2 -march=pentium3 -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
COMPILER="gcc3"
CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-O2 -march=pentium3 -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="http://adelie.polymtl.ca/ ftp://mirrors.tds.net/gentoo ftp://ftp.ussg.iu.edu/pub/linux/gentoo http://gentoo.mirrors.pair.com/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X alsa apm arts avi berkdb crypt cups dvd encode esd foomaticdb gdbm gif gnome gpm gtk gtk2 imlib java jpeg kde ldap libg++ libwww mad mikmod motif mpeg mysql ncurses nls oggvorbis opengl oss pam pdflib perl png python qt quicktime readline sdl slang spell ssl svga tcltk tcpd truetype x86 xml2 xmms xv zlib"
Comment 2 Joe Eversole 2004-03-19 17:46:28 UTC
I have a somewhat similar setup:

/dev/hda1 = WinXP Partition
/dev/hda2 = /boot (ext2)
/dev/hda3 = swap
/dev/hda4 = / (reiserfs)

I did my grub file from the old school method:
==
title=Gentoo GNU/Linux [love-sources-2.6.4-r2]
root (hd0,1)
kernel (hd0,1)/kernel-love root=/dev/hda4
==

I created a config set as follows:

===
title=Test kernel line
root (hd0,1)
kernel /kernel-love root=/dev/hda4
===

The system booted fine. I removed the "root=" part from the kernel statement and it still booted successfully.

When I was running under vmware, I had some problems getting the SCSI drivers to play nice with the drive. At a certain point, it'd die with a kernel load error. I fixed it by tweaking the grub.conf about a dozen times until it started.

I don't have a fix or a diagnosis for the problem. I'm just including my comment that the document stated method works for me.
Comment 3 Dennis Nienhüser (RETIRED) gentoo-dev 2004-03-21 11:29:16 UTC
You can always leave out the root (...) line, but then the /boot partition doesn't get checked by grub. Does rootnoverify (...) work?
Comment 4 Dan Scott 2004-03-21 15:53:01 UTC
From what I understand, rootnoverify wouldn't affect the Linux root (/) partition because Grub isn't responsible for mounting it; Grub just has to mount /boot, and since that's an ext2 partition that shouldn't be an issue for Grub.

But I'll give it a shot and see what happens.
Comment 5 Dan Scott 2004-03-21 16:18:18 UTC
Hmm. How about I eat a little bit of humble pie...

My ReiserFS partition is actually on /dev/hda8, not /dev/hda7,
so I had the wrong root= parameter. So, major duh for me.

However, if the root= parameter actually isn't necessary in most
cases, doesn't it make sense to remove that parameter from the
default case and remove one more potential for error?

We could then add "If your system experiences difficulty loading 
the root partition, add the root= parameter to the kernel line
of your Grub configuration file." to take care of the non-standard
cases.

http://www.ibiblio.org/mdw/HOWTO/BootPrompt-HOWTO-3.html says of the
root= parameter:

<begin>
This argument tells the kernel what device is to be used as the root filesystem while booting. The default of this setting is the value of the root device of the system that the kernel was built on. For example, if the kernel in question was built on a system that used `/dev/hda1' as the root partition, then the default root device would be `/dev/hda1'. To override this default value, and select the second floppy drive as the root device, one would use `root=/dev/fd1'. 
</end>

Given that most kernels built during install will be built on the same partition as the root partition, we could even qualify the advice for using
the root= parameter to only require it for installations that have not
followed the default partitioning scheme.

Comment 6 Sven Vermeulen (RETIRED) gentoo-dev 2004-03-22 02:50:19 UTC
It does have the disadvantage that it enlarges the instructions once more, while the current situation is just working fine (even though it has some redundancy :)
Comment 7 Sven Vermeulen (RETIRED) gentoo-dev 2004-03-25 16:00:49 UTC
Okay, it's good (and common) practice to add a root= line to the kernel. I'm marking this as WONTFIX.