I managed to solve this problem... /dev/console was
broken. So while init managed to bring the system to
runlevel 5 (eventually launching the login screen) it
didn't know how to print anything to the console.
With the debugging that was part of the "disklessrc"
script, I had booted with an option INITRD_DBG=8
passed to the kernel which brings up a bash prompt
before init starts. At that point the root file
system is mounted. Exploring in /dev revealed that
/dev/console and /dev/null were both files. Hence "rm
-f /dev/console; mknod /dev/console c 5 1" and then
running init fixed this. I added those lines to
disklessrc immediately before "exec /sbin/init" to
automate this.
It looked like the bad device entries were coming from
the snapshot. However after playing around with this,
I do not need or want the snapshot setup (I just want
one plain old file system for various reasons). So
because I removed all the snapshot stuff from
disklessrc anyway, I did not bother to track down
where or how the /dev/console was getting broken.
Another hint: udev seemed to hang sometimes, but not
every time, on executing
/etc/sysconfig/network-scripts/net.hotplug. But since
I know I will never have any of those network hot plug
devices, I just replaced that script with a copy of
/bin/true and now the machine boots very reliably.
____________________________________________________________________________________
Be a better Heartthrob. Get better relationship answers from someone who knows. Yahoo! Answers - Check it out.
http://answers.yahoo.com/dir/?link=list&sid=396545433