How do I do a COLD Reboot on FreeBSD?

Billy Newsom smartweb at
Tue Feb 1 06:48:04 PST 2005

Billy Newsom wrote:
> Oh, yeah.  I could try that.  I could boot an old DOS 6.2 or whatever 
> and try CTRL-ALT-DELETE.  I think that is what you mean.  I don't 
> remember that actual command, although I'm sure there's a lot of 
> third-party reboot commands...  Some of which I'd like to see in the 
> assembler code, myself.  I'll just bet someone has an old MS-DOS BASIC 
> program or assembler written in C, Pascal, or something, which could do 
> a warm or cold reset.

Well, I just tried a Windows 98 Startup disk.  I booted to floppy, and 
then hit CTRL-alt-delete.  Guess what?  This system did a warm reboot, I 
  removed the floppy, and FreeBSD booted from the hard disk perfectly. 
So I have to come to this conclusion: something in the FreeBSD 5-Stable 
code has made this machine break anytime it performs a halt followed by 
a power cycle, or a reboot followed by a power cycle (since the reboot 
always fails).  My surmise is that the new SMP code has somehow done 
some sort of corruption to the CPU state(s) and the BIOS is somehow 
confused during the attempted reboot.

0. System has passed every diagnostic I can throw at it.  Everything 
checks out during normal operation.  Dual processor Pentium Pro.  DOS, 
Windows, and FreeBSD 4.7 with SMP do not have this problem.  Latest 
5-Stable code from 1/30/2005.

1.  I type shutdown -r now or reboot.  This shows the normal cpu_reset 
stuff, and then the system beeps and hangs. (a memory error beep code 
saying the first 64KB are bad.)  If I turn power off and back on, the 
system bypasses its memory check in POST and crashes on next boot.

2.  I type shutdown now, followed by halt in single user mode.  This 
puts me at the "press any key to reboot" screen.  If I press a key, 
system won't reset, and gives a memory error beep code saying the first 
64KB are bad.  If I turn power off and back on, (no matter if I tried 
the reboot or not) the system bypasses its memory check in POST and 
crashes on next boot.

3. I must turn power off and unplug the cord usually.  Then, on 
subsequesnt boot, the memory will be tested during POST and FreeBSD 
boots normally.

4. None of these problems appear after a DOS warm boot on this machine.

5. I'm looking for a cold reboot utility to patch the kernel or the 
reboot command of FreeBSD 5.3.

6. I recompiled the kernel with the BROKEN_KEYBOARD_RESET option.  The 
reboot hangs and system does not reboot, but the beep codes aren't 
there.  I suppose that the BROKEN_KEYBOARD_RESET style reboot (I saw the 
source code and thought I'd try it) does not work.  Again, when I power 
cycle the machine, the POST is still a short POST (and the kernel 
crashes when loading) and so I must disengage the power cable as above.


More information about the freebsd-questions mailing list