Comment 0 for bug 11364

Revision history for this message
In , John R. McPherson (jrm+udevbug) wrote :

Package: udev
Version: 0.048-2
Severity: grave
Justification: renders computer unusable

Debian sarge/x86, custom kernel 2.6.9.

I built a kernel and didn't set CONFIG_TMPFS, and after installing the
kernel and rebooting, udev mounts an unusable tmpfs over /dev, so
no device files are accessible. The mount doesn't fail, but the
directory is unusable.
If I use 'strace', any accesses to files or dirs in "/dev" return ENODIR.
The init process complains that it can't mount filesystems and only
single-user login prompt is available.
Changing this kernel option and recompiling/installed fixed it.

The problem seems to be that the kernel lists "tmpfs" in
/proc/filesystems even if CONFIG_TMPFS is not set, and /etc/init.d/udev
tests for that to assume tmpfs can be used.

As seen in /usr/src/linux/Documentation/filesystems/tmpfs.txt:
   1) There is always a kernel internal mount which you will not see at
     all. This is used for shared anonymous mappings and SYSV shared
     memory.

     This mount does not depend on CONFIG_TMPFS. If CONFIG_TMPFS is not
     set, the user visible part of tmpfs is not build. But the internal
     mechanisms are always present.

So maybe the kernel will list tmpfs in /proc/filesystems if other
options are set, even if tmpfs ramdisks are not available?

I can provide a kernel config if more information is required.

John McPherson