by Cory Rauch 2005-07-28 Category: Linux-System
Wow! When I initially published the article, Boot Fedora Linux Faster: How I Modified Fedora To Boot In Under 25 Seconds, neither my server or me was ready for 22k visitors in one day. It seems that there is a great interest in the topic of reducing boot time. So I think a challenge is in order to get Linux people together to try to reduce boot time. The challenge would be the fastest boot time from bootloader to GDM Login on Fedora Core 4 Linux running the listed services in the "Boot Fedora Linux Faster: How I Modified Fedora To Boot In Under 25 Seconds" article. To participate send me (see below) a description of what was done including any scripts files needed, a bootchart, the specs of you computer, and your name or alias (if you want it published) and I will publish your findings in this article below if what you found has not already been done before. I will also publish the top 25 fastest boot times. The goal would be valuable research from everyone to help the Linux community at large.
Send To: cory@improvedsource.com
DISCLAIMER: Modifying core aspects of any operating system even Linux may render you computer unuseable, participating in this challenge is at your own risk.
Getting StartedI recommend first you read Boot Fedora Linux Faster: How I Modified Fedora To Boot In Under 25 Seconds if you have not already done so to get an idea where to start. Some readers have already pointed out to me that a faster boot time may be had with using a parallel service manager like init-ng which may give you a pointer in the right direction. Please note I have not tried this on Fedora 4 so it may need work before it will work on Fedora 4.
Other Points Of InterestdeveloperWorks: Boot Linux Faster
Compiling A Custom Kernel [on Fedora 4]
The Findings So Far
A user called "cybrjackle" (Justin Conover) has posted how he got initng working under Fedora 4 and reduced his boot time from 1:20 to 18 seconds (in bootchart).
To see his work and bootcharts click here. Nice work!
I have also got initng to work and found it to boot my system in 16 seconds in bootchart and 21.55 seconds in real wall time. I had to modify the initial.i file to get LVM to work and used the instructions in cybrjackle's post. I also had to modify the fake-default.runlevel entry "test" to "halt" to get shutdown to work (It still works funny though).
My altered initial.i file (which goes under /etc/initng/system) is here.

Here is the my bootchart for initng.
I also alternatively hacked the rc.sysinit script in the /etc/rc.d to start in parallel certain aspects of the Fedora boot and it seems to work fine on my side. It is about the same speed as initng wth a 16 second boot time and 23.81 real wall time.
This script hack is here, just copy into /etc/rc.d (make a backup of the original just in case). Note this will disable SELinux, again there is no guarantee on any of these modifications.
This is my boot chart with the rc.sysinit hack.
32-Bit Fedora vs 64-bit Fedora
It seems 64-bit Fedora takes longer to boot. On a slower PC I have, (Athlon XP 1.8GHZ, 256mb RAM, ATA 80GB HD vs Athlon64 3000+ (2.2GHz) 1GB Ram, SATA 80GB HD) 32-Bit Fedora with the hacks I mentioned above booted in 11 seconds in bootchart and 17.55 if you timed it with a stop watch! See the boot chart below:

One thing might be hardware initialization, SATA control plus an ATA controller need to be initialized on the Athlon64 among other additional hardware. This consumes time during boot up.
10 Second Boot Time
I have acheived a 10 second boot time (from boot loader to login) on Fedora 4 using initng. The following had to be done:
Compile kernel with driver compiled in. Ex: Parallel Port Driver, Serial Driver, USB Driver, set processor specific optimization, EXT3 fs, Sound Card drivers, MD5 Crypt., Disabled SELinux, and Removed unneeded drivers for my system.
Installed initng as instruction posted above. Shutdown still does not work though so this is still very experimental.
Disabled network. Now you are probably going to say I would not use it in this configuration, but I was thinking that quite often a laptop is booted with not net connection enabled and I found it takes about 3 seconds to bring up a network connection. With it enabled the systems boots in 13 seconds.

One very cools stat too is this systems total boot up time, from power on (you press the power button) to gdm login, takes just under 17 seconds. I'm starting to think that motherboard manufacturers should post BIOS initialization time for specific processor configuration. This way system builders who need to meet a certain time have in mind what portion of time the BIOS will consume. The bios in this computer eats 6 seconds and change.
Other ImprovedSource Articles:
Boot Fedora Linux Faster: How I Modified Fedora To Boot In Under 25 Seconds
How to make a System Restore CD-ROM
Updating Your Ubuntu Server From The Command Line