Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Problems booting off an external USB disk

51 views
Skip to first unread message

J. Sommers

unread,
Nov 23, 2008, 5:35:24 PM11/23/08
to
I have installed Slackware 12.1 on an external USB disk. I am
trying to boot a PC off this USB disk. The boot process works fine, until
it tries to mount the root filesystem, at which point I get the following:

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?

Christopher D. Kyle

unread,
Nov 23, 2008, 7:24:15 PM11/23/08
to


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

Eef Hartman

unread,
Nov 24, 2008, 3:42:49 AM11/24/08
to
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).
--
*******************************************************************
** 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 **
*******************************************************************

J. Sommers

unread,
Nov 24, 2008, 9:38:31 AM11/24/08
to
On Sun, 23 Nov 2008 17:24:15 -0700, Christopher D. Kyle wrote:

> 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

unread,
Nov 24, 2008, 9:44:00 AM11/24/08
to
On Mon, 24 Nov 2008 09:42:49 +0100, Eef Hartman wrote:

> 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?


John K. Herreshoff

unread,
Nov 24, 2008, 10:38:33 AM11/24/08
to
J. Sommers wrote:

A question: after reconfiguring lilo.conf, you ran lilo to update things,
right?

John.
--
Using the White Box

J. Sommers

unread,
Nov 24, 2008, 11:52:17 AM11/24/08
to
On Mon, 24 Nov 2008 10:38:33 -0500, John K. Herreshoff wrote:

> A question: after reconfiguring lilo.conf, you ran lilo to update
> things, right?

Right.

Message has been deleted

Jerry Peters

unread,
Nov 24, 2008, 4:07:41 PM11/24/08
to
I haven't used lilo in years, but don't you need a line like "append
root=/dev/sdb1" to actually pass root= to the kernel?

IIRC, the root = /dev/sdb1 you have only tells lilo where to find the
kernel.

Jerry

Eef Hartman

unread,
Nov 25, 2008, 4:50:31 AM11/25/08
to
J. Sommers <jsom...@sessrimnir.net> wrote:
> Also, what do yo mean, "configured your root in the kernel"?
> How does one do that?

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.

0 new messages