1 Title: Debian boots quicker and quicker
2 Tags: english, debian, bootsystem
5 <p>I spent Monday and tuesday this week in London with a lot of the
6 people involved in the boot system on Debian and Ubuntu, to see if we
7 could find more ways to speed up the boot system. This was an Ubuntu
9 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
10 gathering</a>. It was quite productive. We also discussed the future
11 of boot systems, and ways to handle the increasing number of boot
12 issues introduced by the Linux kernel becoming more and more
13 asynchronous and event base. The Ubuntu approach using udev and
14 upstart might be a good way forward. Time will show.</p>
16 <p>Anyway, there are a few ways at the moment to speed up the boot
17 process in Debian. All of these should be applied to get a quick
22 <li>Use dash as /bin/sh.</li>
24 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
27 <li>Install and activate the insserv package to enable
28 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
29 based boot sequencing</a>, and enable concurrent booting.</li>
33 These points are based on the Google summer of code work done by
34 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
37 <p>Support for makefile-style concurrency during boot was uploaded to
38 unstable yesterday. When we tested it, we were able to cut 6 seconds
39 from the boot sequence. It depend on very correct dependency
40 declaration in all init.d scripts, so I expect us to find edge cases
41 where the dependences in some scripts are slightly wrong when we start
44 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
45 introduced by Raphael Geissert today, one that could affect the
46 startup speed as well. Instead of starting some scripts concurrently
47 from rcS.d/ and another set of scripts from rc2.d/, it would be
48 possible to run a of them in the same process. A quick way to test
49 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
50 insserv'. Will need to test if that work. :)</p>