Linux rarely needs to be rebooted but, when it does, it often takes longer than you'd like. Below are the summary:
- Disable unnecessary services.
- Disable unnecessary kernel modules.
- Use a lightweight window manager, such as Enlightenment or Xfce, instead of Gnome or KDE.
- Use a text-based login instead of a graphical login.
- Use a lighter-weight distribution.
- Use an OpenBIOS - It allows Linux to actually initialize the hardware as it boots, instead of relying on the BIOS.
- Avoid DHCP.
- Get rid of hotplug - Note that udev has, for the most part, replaced hotplug. However, if you're running an older distribution, the above does apply.
- Try init-ng system (to replace SysVinit) - Decrease boot times in Unix-like operating systems.
- Use a hack with Debian - If you're using Debian, there is a simple hack you can use to switch your start up scripts to run in parallel. If you look at the /etc/init.d/rc script, you will see: 'Concurrency=none' around line 24. Change this line to 'Concurrency=shell' and you should see a reduction in boot times.