VFS: Cannot open root device "801" or 08:01
Please append a correct "root=" boot option Kernel panic: VFS: Unable
to mount oot fs on 08:01
The root filesystem is the /dev/sdb1, where /dev/sdb1 is the only
partition in the USB drive. The PC has an internal (IDE) hard drive, that
is identified as /dev/sda1. However, the only filesystem I am trying to
mount at boot time is the one in /dev/sdb1. According to the boot traces,
the external USB disk in indeed recognized as /dev/sdb, whereas the
internal drive is /dev/sda.
The kernel I am using is vmlinuz-huge-smp-2.6.24.5-smp, from the
Slackware 12.1 installation disk, and my lilo.conf file is
# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
boot = /dev/sdb
# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted # foreground,
highlighted background, highlighted shadow):
bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of #
columns, lines per column (max 15), "spill" (this is how many # entries
must be in the first column before the next begins to # be used. We don't
specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color, # background
color, shadow color.
bmp-timer = 65,27,0,255
# Standard menu.
# Or, you can comment out the bitmap menu above and # use a boot message
with the standard menu: #message = /boot/boot_message.txt
# Wait until the timeout to boot (if commented out, boot the # first entry
immediately):
prompt
# Timeout before the first entry boots. # This is given in tenths of a
second, so 600 for every minute: timeout = 120
# Override dangerous defaults that rewrite the partition table:
change-rules
reset
# Normal VGA console
vga = normal
# End LILO global section
# Linux bootable partition config begins image = /boot/vmlinuz
# initrd = /boot/initrd.gz
root = /dev/sdb1
label = SL121
read-only
# Linux bootable partition config ends
It would seem that my kernel is missing something - but, what?
Here is something I learned from Mr. Weissman a little while back in
this news group. With a USB drive, sometimes it needs extra time to
fully initialize before trying to mount it. You could try adding a ten
second delay in the boot process by adding an append option in the
lilo.conf file and reinstalling lilo.
Try add in the following to your lilo.conf
# Start LILO global section
# Append any additional kernel parameters:
append="rootdelay=10"
The rootdelay option causes the kernel to sleep for ten seconds before
attempting to mount the root file system.
I hope this helps.
Chris
It seems to want to open /dev/sda1 as the root:
brw-r----- 1 root disk 8, 1 2008-10-23 13:26 /dev/sda1
^^^^
The /dev/sdb1 device would have been 8:17 (16 for "b" plus 1 for the
partition). So you have incorrectly configured your root in the kernel,
or given the wrong device in the boot loader, or so.
Note that the mount table (/etc/fstab) is NOT what the kernel will
use for the root, it has to be configured internally or to be passed
TO the kernel by the boot loader (as / has already TO be available
to read files like /etc/fstab FROM it).
--
*******************************************************************
** Eef Hartman, Delft University of Technology, dept. SSC/ICT **
** e-mail: E.J.M....@tudelft.nl, fax: +31-15-278 7295 **
** snail-mail: P.O. Box 5031, 2600 GA Delft, The Netherlands **
*******************************************************************
> Here is something I learned from Mr. Weissman a little while back in
> this news group. With a USB drive, sometimes it needs extra time to
> fully initialize before trying to mount it. You could try adding a ten
> second delay in the boot process by adding an append option in the
> lilo.conf file and reinstalling lilo.
>
> Try add in the following to your lilo.conf
>
> # Start LILO global section
> # Append any additional kernel parameters: append="rootdelay=10"
>
>
> The rootdelay option causes the kernel to sleep for ten seconds before
> attempting to mount the root file system.
>
> I hope this helps.
Thanks for your suggestion. Unfortunately, the problem described
is still there.
> J. Sommers <jsom...@sessrimnir.net> wrote:
>> VFS: Cannot open root device "801" or 08:01
>> Please append a correct "root=" boot option Kernel panic: VFS:
>> Unable to mount oot fs on 08:01
>
> It seems to want to open /dev/sda1 as the root: brw-r----- 1 root disk
> 8, 1 2008-10-23 13:26 /dev/sda1
> ^^^^
> The /dev/sdb1 device would have been 8:17 (16 for "b" plus 1 for the
> partition). So you have incorrectly configured your root in the kernel,
> or given the wrong device in the boot loader, or so. Note that the mount
> table (/etc/fstab) is NOT what the kernel will use for the root, it has
> to be configured internally or to be passed TO the kernel by the boot
> loader (as / has already TO be available to read files like /etc/fstab
> FROM it).
OK, I am confused. In my lilo.conf I specified that my root
filesystem lives in /dev/sdb1. My /etc/fstab file also says so (although,
based on what you are saying, that's not relevant). How do I have to
change lilo.conf to get to boot loader to use /dev/sdb1, instead of /dev/
sda1, as the root filesystem? Also, what do yo mean, "configured your
root in the kernel"? How does one do that?
A question: after reconfiguring lilo.conf, you ran lilo to update things,
right?
John.
--
Using the White Box
> A question: after reconfiguring lilo.conf, you ran lilo to update
> things, right?
Right.
IIRC, the root = /dev/sdb1 you have only tells lilo where to find the
kernel.
Jerry
There is a command, rdev (see "man rdev" or "/sbin/rdev -h" with
which you can set the defaults for several parameters (root part,
ro/rw, video mode) IN the kernel image itself.
It will still be overridden by parameters, entered on the kernel
commandline, by your boot loader (lilo, grub, etc.), but it will
give a "reasonable default" when the kernel is started without
parameters.
PS: you can also look up the current values with it, by JUST
specifying the kernel location, like
rdev /boot/vmlinuz
(will return root partition and mount point)
rdev -R /boot/vmlinuz
should return "1", which means "mount read-only"
rdev -v /boot/vmlinuz
should return the video mode. 65535 means "-1" = "normal VGA",
for other modes, see the man page.
PS: rdev is discouraged, other than "looking at the current defaults"
in a kernel as it depends on "magic offsets and magic numbers".
But it still works, even with a 2.6 kernel.