Click to See Complete Forum and Search --> : Kernel panic: VFS: Unable to mountroot fs on unknown-block (3,6)


Dizzybacon
05-02-2005, 10:12 AM
I'm trying to upgrade my kernel on Debian to 2.6.8. I've down.loaded the source, compiled, set up Lilo and rebooted. When selecting the new kernel in Lilo it starts to boot and then this:

Kernel panic: VFS: Unable to mountroot fs on unknown-block (3,6)

I've done a lot of searching and first thing I found was a problem with cramfs in the initrd. I set mkinitrd to use genromfs and compiled the kernel with ROM support built in but this gives me the same error.

I found a lot of posts about lilo.config and the root partition address, but both my kernels use the same root partition and the old kernel still boots fine.

I also found advice about making sure the hard drive modules are compiled into the kernel and I've done this too. I'm pretty sure that the new kernel is seeing the hard drive and that it is reading the initrd OK because the two lines preceeding the kernel panic are:

RAMDISK: romfs filesystem found at block 0
RAMDISK: Loading 1767 blocks [1 disk] into ram disk ... done

Searching for this error only seems to bring up the three fixes I've tried but to no avail.

Can anybody offer any words of wisdom?

Thanks,

Dizzy

vontez
05-02-2005, 01:59 PM
Post your lilo.conf, please.

More than likely it is a problem with the kernel configuration. Are you booting without an initrd?

Check out the Gentoo Handbook (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7) for a couple kernel options that are usually required to boot without an initrd. Skip the first part and read the section titled "Activating required options".

Dizzybacon
05-03-2005, 02:43 AM
I am using an initrd to boot. I had problems with this and cramfs, so I am now using genromfs with this line in /etc/mkinitrd/mkinitrd.conf:

MKIMAGE='genromfs -d %s -f %s'

Here is my lilo.conf, the first image, Linux, boots fine. The second, Linux_26, is the one that fails.

prompt
timeout=50
boot=/dev/hda
root=/dev/hda6

install=/boot/boot.b
map=/boot/map
vga=normal
delay=20
image=/vmlinuz
label=Linux
read-only
image=/vmlinuznew
label=Linux_26
initrd=/initrd.img


other=/dev/hda1
label=Windows


Thanks for your help!

Dizzy

XiaoKJ
05-03-2005, 09:29 AM
once you use initrd, you have to use both root and real_root --- root points to a path IN the initrd, and real_root points to the filesystem you want.

Dizzybacon
05-03-2005, 05:24 PM
OK, so if I set my lilio.conf to:

prompt
timeout=50
boot=/dev/hda
install=/boot/boot.b
map=/boot/map
vga=normal
delay=20

image=/vmlinuz
label=Linux
root=/dev/hda6
read-only

image=/vmlinuznew
label=Linux_26
initrd=/initrd.img
real_root=/dev/hda6
root=**********

other=/dev/hda1
label=Windows

how do I know what value to put ion for root?

/etc/mkinitrd/mkinitrd.conf has:

ROOT=probe

is that something to do with it?

Thanks,

Dizzy

Dizzybacon
05-04-2005, 01:55 PM
OK a bit of googling gave me this:

prompt
timeout=50
boot=/dev/hda


install=/boot/boot.b
map=/boot/map
vga=normal
delay=20
image=/vmlinuz
label=Linux
read-only
root=/dev/hda6

image=/vmlinuznew
label=Linux_26
initrd=/initrd.img
append="real_root=/dev/hda6"
root=/dev/ram0

other=/dev/hda1
label=Windows

But I still get the same error except is uknown-block (1,0).
From what I've read that a ram device I don't know why it won't mount on it.

cat /usr/src/linux/.config | grep RAM gives:

CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096

I'm really stuck now!

Dizzy