faster booting

Dan Nelson dnelson at
Wed Mar 5 20:51:22 UTC 2008

In the last episode (Mar 05), Daniel Feenberg said:
> We have several network services hosted on a FreeBSD system, and want
> it to come up quickly, so that these services (dhcp, nameservice,
> nis, tftp etc) are available when systems are restarting after a
> prolonged power failure.
> That is, several times a year we have multi-hour power failures
> (generally starting at midnight because that is utility maintainance
> time) and our UPSs run out of power. That is OK, but we would like
> the systems to come up when the power returns, without going to the
> server room and restarting systems in a prescribed order.
> In most cases the clients hang because essential services are not
> available, and in most cases the clients do not proceed to boot later
> when the service does become available.
> So, is there advice anywhere about speeding up the boot process? It
> appears that most of the 1 minute 45 seconds to boot our system is
> wait time for checking the existence of non-existant hardware and
> would not be appreciable reduced with a faster CPU or disk. Are there
> kernel options that we could use to avoid this checking? Would
> recompiling the kernel in some specialized way help? Would pico-bsd
> be faster?

If it's a PCI system, removing unused drivers can't hurt, but if a
driver doesn't find a supported PCI ID on the system is usually exits
immediately.  But removing drivers for hardware that you have but don't
use might help more.  I know it takes a few seconds to scan for USB
devices even if none are connected, for example.  You can also set
"" in loader.conf to take the settling time for
SCSI devices down to .5 sec instead of 2 sec per bus.  There's probably
a similar tunable for IDE/SATA controllers.  Best thing to do is watch
the console and eliminate drivers (or adjust timeouts) that seem to
cause the scrolling to stop :)
> About the only thing I can find is to reduce the 10 second boot screen 
> delay - but we need to cut more than 30 seconds.

There might actually be three boot delays: one from boot0 (the F1,F2,F3
boot menu), boot2 (the bootblock that loads /boot/loader), and the
loader.  You can remove the boot0 timeout with "boot0cfg -t 0" or
simply replace it with a dumb mbr with "fdisk -B".  boot2 can be sped
up by creating a boot.config file in your root directory with "-n" in
it, and you alreay know how to reduce /boot/loader's timeout.

Some of this is documented in the boot0cfg(8) and boot(8) manpages.

	Dan Nelson
	dnelson at

More information about the freebsd-questions mailing list