32-bit will not reboot (64-bit does OK)
I was testing out a 32 bit install of -current (14.1-beta) for the first time. I've been doing all 64-bit up to now. There is a strange problem: the reboot will not finish. It goes through all the shut down and unmounting steps, and outputs the last message "Rebooting." and just stays there. If I press Ctrl+Alt+Sysrq+b then the kernel does reboot OK so I believe there is no hardware issue causing this. The reboot command when done on the system running from the install disk works OK for either bit size. It's only the installed system that is having trouble in 32-bit mode.
Which actual program is calling the kernel to do the reboot at the end of all this? Is that init? I'm guessing maybe init is not performing the reboot syscall correctly.
Or MAYBE because NVIDIA always crashes, the kernel is somehow hosed up?
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
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).
|All times are GMT -5. The time now is 03:30 PM.|