OK, my guess is that it's got to have something to do with the initrd image. You either don't have a driver that you need to have (like for the hard drive, for instance) or the the console device is missing or something. Mount the initrd:
# mount -t ext2 -o loop initrd.img-2.6.10 /mnt/initrd
or something like that and see what you have in there. You NEED /dev/null and /dev/console in order to have a sucessful boot. Looks like you're missing /dev/console. Go into the initrd and then into the dev directory. Make the device file via
# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3
I'm not too familiar with initrds but that's where you need to start. Also, be warned that I may be wrong in certain areas as I haven't done this myself. pivot_root
is the process of moving / from one filesystem to another (or one partition to another) without disrupting anything else (like processes and whatnot).
I'd like to help you out more but I don't have enough experience. Just trying to point you to where I think the problem is.
-- the dudeman
Also, Is it possible to swith completely to udev?
Yes, it is...but not in all cases. Here's a quote from the udev FAQ
Q: How will udev handle devices found before init runs?
A: udev will be placed in initramfs and run for every device that is found.
Work to get this implemented is still underway.
So you might not want to go completely udev until the initrd is fixed up right. Also, udev does not support all devices yet and sometimes you just need to do it the "olde fashion" way and create a device file without udev deleting it!