Red Hat Bugzilla – Bug 158590
"unable to open initial console" / initrd and udev madness
Last modified: 2007-11-30 17:11:06 EST
Description of problem:
/dev/console etc missing from install
Version-Release number of selected component (if applicable):
Steps to Reproduce:
2.try to boot custom kernel without initrd
'unable to open initial console' and kernel panic.
it should work, but it doesnt.
The FC3 installer doesnt create device nodes in /dev when installing. Eg if you
mount --bind / /mnt and cd /mnt/dev you'll see dev is totally empty. The FC3
boot process is apparently very dependent on initrd and udev.
This is rather a PITA when trying to make a secured server with monolithic
kernels and no initrd.
The solution? A minimal /dev on-disk (instead of a completely empty one, which
is what we have now).
drwxr-xr-x 4 root root 168 May 20 13:14 .
drwxr-xr-x 23 root root 568 May 20 13:16 ..
crw-r--r-- 1 root root 5, 1 May 20 13:16 console
crw-r--r-- 1 root root 1, 3 May 20 13:14 null
drwxr-xr-x 2 root root 48 May 20 13:14 pts
drwxr-xr-x 2 root root 48 May 20 13:14 shm
crw-r--r-- 1 root root 1, 5 May 20 13:14 zero
This lets us boot monolithic initrd-less kernels far enough to where udev can
take over normally.
I know about the http://fedora.redhat.com/docs/udev/ and "Udev without initrd"
instructions, but I can't see any good reason to omit these few devices on
install and thus saving a lot of people head scratching / google / wasted time.
There's no way to include them in a package -- if we put them in a package and
the package gets updated (to include more or something else of that nature),
then you've got a dynamic /dev mounted and the update doesn't do what you
expect. Plus rpm -V fails.
An initrd is _REQUIRED_.
er. it doesn't have to be in a package. hell, the device nodes aren't even in a
package _now_ !
all the installer has to do is create a few nodes when making /dev on-disk. it
does this for a bunch of other things which arent in any package so I dont see
why this would be any different really.
whats interesting is that rpm claims /dev is owned by udev but rpm -ql says no.