|
From: Jonathan R. <mma...@ya...> - 2002-02-12 05:40:55
|
Hi trinux-talkers,
Yes, the solution did come from looking at Bill's kernel config
for his uml. This is a really interesting problem. What is happening is
that the order in which the VFS (Virtual File System) is being checked by
the kernel for filesystem type determines when the bug occurs.
In this case cramfs is the culprit. Notice what is happening below:
RAMDISK: Minix filesystem found at block 0
RAMDISK: Loading 4096 blocks [1 disk] into ram disk... done.
Freeing initrd memory: 4096k freed
cramfs: wrong magic
MINIX-fs: mounting unchecked file system, running fsck is recommended.
VFS: Mounted root (minix filesystem).
Warning: unable to open an initial console.
Kernel panic: No init found. Try passing init= option to kernel.
When CONFIG_CRAMFS is made into a module or not included, the problem
disappears. But when I ran the same uml kernel with cramfs on an initrd
which has ext2 fs, the problem also disappears. This is because the
kernel uses an order when checking the fs. You can look at this order in
/proc/filesystems.
For instance:
nodev rootfs
nodev bdev
nodev proc
nodev sockfs
nodev tmpfs
nodev shm
nodev pipefs
nodev binfmt_misc
ext2
cramfs
minix
umsdos
msdos
An initrd with minix will fail in the above situation, but an initrd with
ext2 won't. So at this point if you want minix or msdos you can't have
cramfs included in the kernel. This may be related to a documented bug in
cramfs, regardless, a simple solution would be to put cramf at the end of
the VFS check list since it would be nice to have cramfs and everything
else, too.
Thanks for the config. I am going to be posting a bug report at
user-mode-linux-devel, if you notice another fs causing this VFS problem
contact me, or add to this post.
Regards,
Jonathan
|