After the latest upgrades on my gentoo vserver system running a 3.3.0 Linux vserver-kernel (vserver-sources-126.96.36.199), the system did not start up properly anymore. No kernel modules got loaded and even the network devices have not been available after a reboot. This is more or less the worst case, since then one has to be physically in front of the machine and can not repair the system via ssh remote login.
The kernel upgrade was not the reason for this, but the upgrade to udev-182. This is what the log said:
Mar 21 17:20:05 mittelerde /etc/init.d/sshd: ERROR: cannot start sshd as net.eth0 would not start
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount: Udev uses a devtmpfs mounted on /dev to manage devices.
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount: This means that CONFIG_DEVTMPFS=y is required
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount: in the kernel configuration.
Mar 21 17:20:09 mittelerde /etc/init.d/udev-mount: ERROR: udev-mount failed to start
Mar 21 17:20:09 mittelerde /etc/init.d/udev: ERROR: cannot start udev as udev-mount would not start
Mar 21 17:21:06 mittelerde /etc/init.d/net.eth0: ERROR: interface eth0 does not exist
With the information “CONFIG_DEVTMPFS=y is required” the log contains the necessary hint to get things to work. The CONFIG_DEVTMPFS option had to be enabled in the kernel. Afterwards the kernel has to be recompiled. The option can be found in menuconfig under Device Drivers-> Generic Driver options and is called Maintain a devtmpfs filesystem to mount at /dev. For getting the devfs automatically mounted at boot time it makes sense to also enable the option Automount devtmpfs at /dev, after the kernel mounted the rootfs (CONFIG_DEVTMPFS_MOUNT).
It is safe to enable these options with older udev versions. Doing so protects your system from not working any more when you get the udev update later.