Originally Posted by pan64
here is a quick explanation on how the boot process works: https://en.wikipedia.org/wiki/Linux_startup_process
I think you mixed the 32bit/64bit environments (probably some kernel modules?) but we should know much more about partitions and installations to be able to give you further help
Booting UP works fine. It's booting DOWN that fails. Do you have any documentation on THAT?
I know that kernel syscall reboot(2) needs to be called. I suspect that /sbin/shutdown should be making this call and for some reason is not doing so. Could it be waiting for something that isn't happening?
Ctrl+Alt+SysRq+b does work, so the kernel can at least do that much. Ctrl+C echos a "^C". Ctrl+Alt+Del causes the string "shutdown: warning: cannot open /var/run/shutdown.pid" to be output. So this suggests to me that userland is still up.
OTOH, if I do "reboot -f" it just freezes. Then Ctrl+C does nothing and Ctrl+Alt+Del does nothing. But Ctrl+Alt+SysRq+b still works.
I was wrong about the reboot(2) call. I edited the /etc/rc.d/rc.6 script and where it invokes "/sbin/reboot", I made it invoke "/sbin/strace -ftt /sbin/reboot" (I copied /usr/bin/strace to /sbin/strace to be sure it was available). It showed that reboot(LINUX_REBOOT_MAGIC1, LINUX REBOOT_MAGIC2, LINUX_REBOOT_CMD_RESTART) was being called. So it is the kernel that is hanging on this.
I'm going to change this script to do "echo b > /proc/sysrq-trigger" instead of /sbin/reboot. Maybe that will work better (if /proc is still mounted).
The "echo b > /proc/sysrq-trigger" works (so /proc was still mounted OK).