2002-03-07 06:21:01

by Voluspa

[permalink] [raw]
Subject: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02


All 2.5.5-pre1/2.5.5 and 2.5.6-pre1/2 have worked well, but this -pre3 won't boot.
Low end system: Pentium 166 &200, 64 meg mem. Same .config used. Ext2 fs. Root at hda2.

Screen transcript:

[invisible]
Intel Corp. 82371FB PIIX IDE [Triton I]: IDE controller on PCI slot 00:07.1
Intel Corp. 82371FB PIIX IDE [Triton I]: chipset revision 2
Intel Corp. 82371FB PIIX IDE [Triton I]: not 100% native mode: will probe irqs later
ide0: BM-DMA at 0x3000-0x3007, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x3008-0x300f, BIOS settings: hdc:pio, hdd:pio
hda: IBM-DTLA-307015, ATA DISK drive
hdb: CD-ROM CDU4011, ATAPI CD/DVD-ROM drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
blk: queue c030740c, I/O limit 4095 MB (mask 0xffffffff)
hda: 30003120 sectors (15362 MB) w/1916 KiB Cache, CHS=29765/16/63, (U)DMA
hdb: ATAPI 40X CD-ROM drive, 120 kB Cache, (U)DMA
Uniform CD-ROM driver Revision: 3.12
Partition check:
hda: [PTBL] [1867/255/63] hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 hda9 >
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Cannot open root device "302" or 03:02
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 03:02

I don't want to polute lkml with unnecessary dumps of /proc or .config, so ask for specifics and I will comply.

Regards,
Mats Johannesson
Sweden


2002-03-07 06:29:52

by Alexander Viro

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02



On Thu, 7 Mar 2002, Voluspa wrote:

> VFS: Cannot open root device "302" or 03:02

Add
printk("mount() -> %d\n", err);
right before
printk ("VFS: Cannot open root device \"%s\" or %s\n",
root_device_name, kdevname (ROOT_DEV));
in init/do_mounts.c and see what it prints.

2002-03-07 07:56:13

by Voluspa

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02

On Thu, 7 Mar 2002 01:29:30 -0500 (EST)
Alexander Viro <[email protected]> wrote:

> Add
> printk("mount() -> %d\n", err);
> right before
> printk ("VFS: Cannot open root device \"%s\" or %s\n",
> root_device_name, kdevname (ROOT_DEV));
> in init/do_mounts.c and see what it prints.

(An hour of compile time later):

[...]
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
mount() -> -14
VFS: Cannot open root device "302" or 03:02
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 03:02

I'm writing this on the exact same partition setup with 2.4.18-pre7-ac2 so there's nothing wrong with how lilo handles the boot process.

Regards,
Mats Johannesson
Sweden

2002-03-07 08:42:53

by Alexander Viro

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02



On Thu, 7 Mar 2002, Voluspa wrote:

> mount() -> -14
> VFS: Cannot open root device "302" or 03:02

Bloody hell... 14 is EFAULT. And that - from sys_mount() called by
task that has KERNEL_DS as addr_limit. What options do you pass to kernel
and what filesystems are compiled in? Actually, adding printk("%s\n", p);
in the same place might give some hints...

Basically, sys_mount() is called in conditions when -EFAULT should not
be generated at all - it is handled on a pretty low level and AFAICS
that area hadn't been changed between -pre2 and -pre3. Weird...

2002-03-07 09:21:24

by Voluspa

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02

On Thu, 7 Mar 2002 03:42:32 -0500 (EST)
Alexander Viro <[email protected]> wrote:


> > mount() -> -14
> > VFS: Cannot open root device "302" or 03:02
>
> Bloody hell... 14 is EFAULT. And that - from sys_mount() called by

Hey, you're talking to pure user land here (but I guess it's meant for the other kernel hackers :-)

> task that has KERNEL_DS as addr_limit. What options do you pass to kernel
> and what filesystems are compiled in?

No options at all, except what lilo provides:

loke:loke:/proc$ cat cmdline
BOOT_IMAGE=2.4-Linux-test ro root=302 ramdisk=0

(Exchange 2.4-Linux-test with 2.5-Linux-test)

File systems compiled in:

loke:loke:/proc$ cat filesystems
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev pipefs
nodev binfmt_misc
ext2
minix
msdos
vfat
iso9660
nodev nfs

Not changed in 2.5 (preempt enabled there shouldn't make a difference)

> Actually, adding printk("%s\n", p);
> in the same place might give some hints...

I interpret that as printk("mount() -> %d\n", err); can be swapped with printk("%s\n", p); and I'll do that right away. Last compile, then I must rush to work.

Regards,
Mats Johannesson
Sweden

2002-03-07 10:48:16

by Voluspa

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02

On Thu, 7 Mar 2002 03:42:32 -0500 (EST)
Alexander Viro <[email protected]> wrote:

> and what filesystems are compiled in? Actually, adding printk("%s\n", p);
> in the same place might give some hints...

Gave:

NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
ext2
VFS: Cannot open root device "302" or 03:02
Please append a correct "root=" boot option
Kernel panic: VFS: Unable to mount root fs on 03:02

Since I've used "make oldconfig" and:

loke:loke:/usr/src/test$ diff my-2.5.6-pre2-.config my-2.5.6-pre3-.config
288d287
< CONFIG_IDE_TASK_IOCTL=y
291c290
< # IDE chipset support/bugfixes
---
> # IDE chipset support
301d299
< # CONFIG_BLK_DEV_IDEDMA_FORCED is not set

only show enforced differences, I could boot into 2.5.6-pre2 tonight (about 6 hours from now) and dump whatever info you need - if it is deemed necessary. Otherwise I'll just enjoy the -ac series until a -preX turns up that is bootable.

Regards,
Mats Johannesson
Sweden

2002-03-07 11:09:32

by Alexander Viro

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02



On Thu, 7 Mar 2002, Voluspa wrote:

> only show enforced differences, I could boot into 2.5.6-pre2 tonight (about 6 hours from now) and dump whatever info you need - if it is deemed necessary. Otherwise I'll just enjoy the -ac series until a -preX turns up that is bootable.

Very interesting...

It boots fine from ext2 on IDE here. Do you have any oddities in
.config? (e.g. something silly enabled - CONFIG_PREEMPT, etc.)

Bug looks very odd. -EFAULT from mount(2) done by a thread that
runs with equivalent of set_fs(KERNEL_DS)...

.config might be really useful. Or not - it may boil down to checking
which path it actually takes and where does -EFAULT come from.

2002-03-07 12:38:28

by Martin Dalecki

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02

Voluspa wrote:

> VFS: Cannot open root device "302" or 03:02
> Please append a correct "root=" boot option
> Kernel panic: VFS: Unable to mount root fs on 03:02
>
> I don't want to polute lkml with unnecessary dumps of /proc or .config, so ask for specifics and I will comply.
>

The problem is that your are propably using a modularized ide drivers,
loaded by default from a initial ram disk. This has to be fixed soon,
since in fact I was too lazy to convert my system to do this.
As a temporary solution please compile the ide core driver directly into
your kernel (which is saner anyway if you are booting from this device.)

The next round of ide patches is supposed to fix this.

2002-03-07 16:29:17

by Voluspa

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02


PS. I've got a rather good grip of my Linux From Scratch system - with a BSD style init for even better control - and only load modules for one NIC and ALSA stuff here. Never have had file systems modulari(z)(s)ed DS.

On Thu, 7 Mar 2002 06:09:04 -0500 (EST)
Alexander Viro <[email protected]> wrote:

> It boots fine from ext2 on IDE here. Do you have any oddities in
> .config? (e.g. something silly enabled - CONFIG_PREEMPT, etc.)

Silly :-) A P166 needs every boost possible. Yes, I have preempt enabled. And yes, you are right on the mark. Compiling without preempt the booting of 2.5.6-pre3 runs flawlessly. And after a few tests no file corruption visible. But 2.5.6-pre2 + preempt-UP-bug-patch worked like a charm. So there's something else involved, it seems.

During the compilation I happened to get a brief glimpse of a warning in ide.c Don't know C so can't evaluate its severity. Went something like this: 'In function choose_drive Warning: distinkt pointer lacks a cast'.

> .config might be really useful. Or not - it may boil down to checking

I judge it a moot point to dump all those lines now. If I'm in err, nudge me.

Thanks for the discussion.
MJ

2002-03-07 16:58:51

by Martin Dalecki

[permalink] [raw]
Subject: Re: 2.5.6-pre3 Kernel panic: VFS: Unable to mount root fs on 03:02

Voluspa wrote:
> PS. I've got a rather good grip of my Linux From Scratch system - with a BSD style init for even better control - and only load modules for one NIC and ALSA stuff here. Never have had file systems modulari(z)(s)ed DS.

OK I didn't actually get around to test pre3 in life. But at least
it's nice to hear that this is apparently not my fault ;-).

>
> On Thu, 7 Mar 2002 06:09:04 -0500 (EST)
> Alexander Viro <[email protected]> wrote:
>
>
>>It boots fine from ext2 on IDE here. Do you have any oddities in
>>.config? (e.g. something silly enabled - CONFIG_PREEMPT, etc.)
>>
>
> Silly :-) A P166 needs every boost possible. Yes, I have preempt enabled. And yes, you are right on the mark. Compiling without preempt the booting of 2.5.6-pre3 runs flawlessly. And after a few tests no file corruption visible. But 2.5.6-pre2 + preempt-UP-bug-patch worked like a charm. So there's something else involved, it seems.
>
> During the compilation I happened to get a brief glimpse of a warning in ide.c Don't know C so can't evaluate its severity. Went something like this: 'In function choose_drive Warning: distinkt pointer lacks a cast'.
That's spurious and will vanish soon. I just peplaced IDE_MAX and
IDE_MIN with the generic min() max(), which are showing nicely where
int entities of different size are compared.

>
>
>>.config might be really useful. Or not - it may boil down to checking
>>
>
> I judge it a moot point to dump all those lines now. If I'm in err, nudge me.
>
> Thanks for the discussion.
> MJ
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>
>



--
- phone: +49 214 8656 283
- job: eVision-Ventures AG, LEV .de (MY OPINIONS ARE MY OWN!)
- langs: de_DE.ISO8859-1, en_US, pl_PL.ISO8859-2, last ressort: ru_RU.KOI8-R