]> pere.pagekite.me Git - homepage.git/blob - blog/tags/bootsystem/index.html
0a77ea00b2b58b113bc8ff75839f3f8de3adb63c
[homepage.git] / blog / tags / bootsystem / index.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
6 <title>Petter Reinholdtsen: Entries Tagged bootsystem</title>
7 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/style.css" />
8 <link rel="stylesheet" type="text/css" media="screen" href="http://people.skolelinux.org/pere/blog/vim.css" />
9 <link rel="alternate" title="RSS Feed" href="bootsystem.rss" type="application/rss+xml" />
10 </head>
11 <body>
12 <div class="title">
13 <h1>
14 <a href="http://people.skolelinux.org/pere/blog/">Petter Reinholdtsen</a>
15
16 </h1>
17
18 </div>
19
20
21 <h3>Entries tagged "bootsystem".</h3>
22
23 <div class="entry">
24 <div class="title">
25 <a href="http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html">How is booting into runlevel 1 different from single user boots?</a>
26 </div>
27 <div class="date">
28 4th August 2011
29 </div>
30 <div class="body">
31 <p>Wouter Verhelst have some
32 <a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
33 comments and opinions</a> on my blog post on
34 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
35 need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
36 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
37 default KDE desktop in Debian</a>. I only have time to address one
38 small piece of his comment now, and though it best to address the
39 misunderstanding he bring forward:</p>
40
41 <p><blockquote>
42 Currently, a system admin has four options: [...] boot to a
43 single-user system (by adding 'single' to the kernel command line;
44 this runs rcS and rc1 scripts)
45 </blockquote></p>
46
47 <p>This make me believe Wouter believe booting into single user mode
48 and booting into runlevel 1 is the same. I am not surprised he
49 believe this, because it would make sense and is a quite sensible
50 thing to believe. But because the boot in Debian is slightly broken,
51 runlevel 1 do not work properly and it isn't the same as single user
52 mode. I'll try to explain what is actually happing, but it is a bit
53 hard to explain.</p>
54
55 <p>Single user mode is defined like this in /etc/inittab:
56 "<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
57 executed in single user mode is sulogin. Single user mode is a boot
58 state "between" the runlevels, and when booting into single user mode,
59 only the scripts in /etc/rcS.d/ are executed before the init process
60 enters the single user state. When switching to runlevel 1, the state
61 is in fact not ending in runlevel 1, but it passes through runlevel 1
62 and end up in the single user mode (see /etc/rc1.d/S03single, which
63 runs "init -t1 S" to switch to single user mode at the end of runlevel
64 1. It is confusing that the 'S' (single user) init mode is not the
65 mode enabled by /etc/rcS.d/ (which is more like the initial boot
66 mode).</p>
67
68 <p>This summary might make it clearer. When booting for the first
69 time into single user mode, the following commands are executed:
70 "<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
71 runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
72 S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
73 trying to continue after visiting single user mode. Not all services
74 are started again as they should, causing the machine to end up in an
75 unpredicatble state. This is why Debian admins recommend rebooting
76 after visiting single user mode.</p>
77
78 <p>A similar problem with runlevel 1 is caused by the amount of
79 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
80 to runlevel 1, the services started from /etc/rcS.d/ are not properly
81 stopped when passing through the scripts in /etc/rc1.d/, and not
82 started again when switching away from runlevel 1 to the runlevels
83 2-5. I believe the problem is best fixed by moving all the scripts
84 out of /etc/rcS.d/ that are not <strong>required</strong> to get a
85 functioning single user mode during boot.</p>
86
87 <p>I have spent several years investigating the Debian boot system,
88 and discovered this problem a few years ago. I suspect it originates
89 from when sysvinit was introduced into Debian, a long time ago.</p>
90
91 </div>
92 <div class="tags">
93
94
95 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
96
97
98 </div>
99 </div>
100 <div class="padding"></div>
101
102 <div class="entry">
103 <div class="title">
104 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">What should start from /etc/rcS.d/ in Debian? - almost nothing</a>
105 </div>
106 <div class="date">
107 30th July 2011
108 </div>
109 <div class="body">
110 <p>In the Debian boot system, several packages include scripts that
111 are started from /etc/rcS.d/. In fact, there is a bite more of them
112 than make sense, and this causes a few problems. What kind of
113 problems, you might ask. There are at least two problems. The first
114 is that it is not possible to recover a machine after switching to
115 runlevel 1. One need to actually reboot to get the machine back to
116 the expected state. The other is that single user boot will sometimes
117 run into problems because some of the subsystems are activated before
118 the root login is presented, causing problems when trying to recover a
119 machine from a problem in that subsystem. A minor additional point is
120 that moving more scripts out of rcS.d/ and into the other rc#.d/
121 directories will increase the amount of scripts that can run in
122 parallel during boot, and thus decrease the boot time.</p>
123
124 <p>So, which scripts should start from rcS.d/. In short, only the
125 scripts that _have_ to execute before the root login prompt is
126 presented during a single user boot should go there. Everything else
127 should go into the numeric runlevels. This means things like
128 lm-sensors, fuse and x11-common should not run from rcS.d, but from
129 the numeric runlevels. Today in Debian, there are around 115 init.d
130 scripts that are started from rcS.d/, and most of them should be moved
131 out. Do your package have one of them? Please help us make single
132 user and runlevel 1 better by moving it.</p>
133
134 <p>Scripts setting up the screen, keyboard, system partitions
135 etc. should still be started from rcS.d/, but there is for example no
136 need to have the network enabled before the single user login prompt
137 is presented.</p>
138
139 <p>As always, things are not so easy to fix as they sound. To keep
140 Debian systems working while scripts migrate and during upgrades, the
141 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
142 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
143 and the next ones can only be moved when their dependencies have been
144 moved first. This migration must be done sequentially while we ensure
145 that the package system upgrade packages in the right order to keep
146 the system state correct. This will require some coordination when it
147 comes to network related packages, but most of the packages with
148 scripts that should migrate do not have anything in rcS.d/ depending
149 on them. Some packages have already been updated, like the sudo
150 package, while others are still left to do. I wish I had time to work
151 on this myself, but real live constrains make it unlikely that I will
152 find time to push this forward.</p>
153
154 </div>
155 <div class="tags">
156
157
158 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
159
160
161 </div>
162 </div>
163 <div class="padding"></div>
164
165 <div class="entry">
166 <div class="title">
167 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
168 </div>
169 <div class="date">
170 11th June 2010
171 </div>
172 <div class="body">
173 <p>The last few days I have done some upgrade testing in Debian, to
174 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
175 have been discovered and reported in the process
176 (<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
177 <a href="http://bugs.debian.org/584879">#584879</a> already fixed in
178 enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
179 kdebase-workspace-data), and to get a more regular testing going on, I
180 am working on a script to automate the test.</p>
181
182 <p>The idea is to create a Lenny chroot and use tasksel to install a
183 Gnome or KDE desktop installation inside the chroot before upgrading
184 it. To ensure no services are started in the chroot, a policy-rc.d
185 script is inserted. To make sure tasksel believe it is to install a
186 desktop on a laptop, the tasksel tests are replaced in the chroot
187 (only acceptable because this is a throw-away chroot).</p>
188
189 <p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
190 currently always fail because udev refuses to upgrade with the kernel
191 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
192 is created. The bug report
193 <a href="http://bugs.debian.org/566000">#566000</a> make me suspect
194 this problem do not trigger in a chroot, but I touch the file anyway
195 to make sure the upgrade go well. Testing on virtual and real
196 hardware have failed me because of udev so far, and creating this file
197 do the trick in such settings anyway. This is a
198 <a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
199 issue</a> and the current udev behaviour is intended by the udev
200 maintainer because he lack the resources to rewrite udev to keep
201 working with old kernels or something like that. I really wish the
202 udev upstream would keep udev backwards compatible, to avoid such
203 upgrade problem, but given that they fail to do so, I guess
204 documenting the way out of this mess is the best option we got for
205 Debian Squeeze.</p>
206
207 <p>Anyway, back to the task at hand, testing upgrades. This test
208 script, which I call <tt>upgrade-test</tt> for now, is doing the
209 trick:</p>
210
211 <blockquote><pre>
212 #!/bin/sh
213 set -ex
214
215 if [ "$1" ] ; then
216 desktop=$1
217 else
218 desktop=gnome
219 fi
220
221 from=lenny
222 to=squeeze
223
224 exec &lt; /dev/null
225 unset LANG
226 mirror=http://ftp.skolelinux.org/debian
227 tmpdir=chroot-$from-upgrade-$to-$desktop
228 fuser -mv .
229 debootstrap $from $tmpdir $mirror
230 chroot $tmpdir aptitude update
231 cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
232 #!/bin/sh
233 exit 101
234 EOF
235 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
236 exit_cleanup() {
237 umount $tmpdir/proc
238 }
239 mount -t proc proc $tmpdir/proc
240 # Make sure proc is unmounted also on failure
241 trap exit_cleanup EXIT INT
242
243 chroot $tmpdir aptitude -y install debconf-utils
244
245 # Make sure tasksel autoselection trigger. It need the test scripts
246 # to return the correct answers.
247 echo tasksel tasksel/desktop multiselect $desktop | \
248 chroot $tmpdir debconf-set-selections
249
250 # Include the desktop and laptop task
251 for test in desktop laptop ; do
252 echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
253 #!/bin/sh
254 exit 2
255 EOF
256 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
257 done
258
259 DEBIAN_FRONTEND=noninteractive
260 DEBIAN_PRIORITY=critical
261 export DEBIAN_FRONTEND DEBIAN_PRIORITY
262 chroot $tmpdir tasksel --new-install
263
264 echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
265 chroot $tmpdir aptitude update
266 touch $tmpdir/etc/udev/kernel-upgrade
267 chroot $tmpdir aptitude -y dist-upgrade
268 fuser -mv
269 </pre></blockquote>
270
271 <p>I suspect it would be useful to test upgrades with both apt-get and
272 with aptitude, but I have not had time to look at how they behave
273 differently so far. I hope to get a cron job running to do the test
274 regularly and post the result on the web. The Gnome upgrade currently
275 work, while the KDE upgrade fail because of the bug in
276 kdebase-workspace-data</p>
277
278 <p>I am not quite sure what kind of extract from the huge upgrade logs
279 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
280 post, so I will refrain from trying. I can report that for Gnome,
281 aptitude report 760 packages upgraded, 448 newly installed, 129 to
282 remove and 1 not upgraded and 1024MB need to be downloaded while for
283 KDE the same numbers are 702 packages upgraded, 507 newly installed,
284 193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
285
286 <p>I am very happy to notice that the Gnome desktop + laptop upgrade
287 is able to migrate to dependency based boot sequencing and parallel
288 booting without a hitch. Was unsure if there were still bugs with
289 packages failing to clean up their obsolete init.d script during
290 upgrades, and no such problem seem to affect the Gnome desktop+laptop
291 packages.</p>
292
293 </div>
294 <div class="tags">
295
296
297 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
298
299
300 </div>
301 </div>
302 <div class="padding"></div>
303
304 <div class="entry">
305 <div class="title">
306 <a href="http://people.skolelinux.org/pere/blog/Upstart_or_sysvinit___as_init_d_scripts_see_it.html">Upstart or sysvinit - as init.d scripts see it</a>
307 </div>
308 <div class="date">
309 6th June 2010
310 </div>
311 <div class="body">
312 <p>If Debian is to migrate to upstart on Linux, I expect some init.d
313 scripts to migrate (some of) their operations to upstart job while
314 keeping the init.d for hurd and kfreebsd. The packages with such
315 needs will need a way to get their init.d scripts to behave
316 differently when used with sysvinit and with upstart. Because of
317 this, I had a look at the environment variables set when a init.d
318 script is running under upstart, and when it is not.</p>
319
320 <p>With upstart, I notice these environment variables are set when a
321 script is started from rcS.d/ (ignoring some irrelevant ones like
322 COLUMNS):</p>
323
324 <blockquote><pre>
325 DEFAULT_RUNLEVEL=2
326 previous=N
327 PREVLEVEL=
328 RUNLEVEL=
329 runlevel=S
330 UPSTART_EVENTS=startup
331 UPSTART_INSTANCE=
332 UPSTART_JOB=rc-sysinit
333 </pre></blockquote>
334
335 <p>With sysvinit, these environment variables are set for the same
336 script.</p>
337
338 <blockquote><pre>
339 INIT_VERSION=sysvinit-2.88
340 previous=N
341 PREVLEVEL=N
342 RUNLEVEL=S
343 runlevel=S
344 </pre></blockquote>
345
346 <p>The RUNLEVEL and PREVLEVEL environment variables passed on from
347 sysvinit are not set by upstart. Not sure if it is intentional or not
348 to not be compatible with sysvinit in this regard.</p>
349
350 <p>For scripts needing to behave differently when upstart is used,
351 looking for the UPSTART_JOB environment variable seem to be a good
352 choice.</p>
353
354 </div>
355 <div class="tags">
356
357
358 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
359
360
361 </div>
362 </div>
363 <div class="padding"></div>
364
365 <div class="entry">
366 <div class="title">
367 <a href="http://people.skolelinux.org/pere/blog/KDM_fail_at_boot_with_NVidia_cards___and_no_one_try_to_fix_it_.html">KDM fail at boot with NVidia cards - and no one try to fix it?</a>
368 </div>
369 <div class="date">
370 1st June 2010
371 </div>
372 <div class="body">
373 <p>It is strange to watch how a bug in Debian causing KDM to fail to
374 start at boot when an NVidia video card is used is handled. The
375 problem seem to be that the nvidia X.org driver uses a long time to
376 initialize, and this duration is longer than kdm is configured to
377 wait.</p>
378
379 <p>I came across two bugs related to this issue,
380 <a href="http://bugs.debian.org/583312">#583312</a> initially filed
381 against initscripts and passed on to nvidia-glx when it became obvious
382 that the nvidia drivers were involved, and
383 <a href="http://bugs.debian.org/524751">#524751</a> initially filed against
384 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
385
386 <p>To me, it seem that no-one is interested in actually solving the
387 problem nvidia video card owners experience and make sure the Debian
388 distribution work out of the box for these users. The nvidia driver
389 maintainers expect kdm to be set up to wait longer, while kdm expect
390 the nvidia driver maintainers to fix the driver to start faster, and
391 while they wait for each other I guess the users end up switching to a
392 distribution that work for them. I have no idea what the solution is,
393 but I am pretty sure that waiting for each other is not it.</p>
394
395 <p>I wonder why we end up handling bugs this way.</p>
396
397 </div>
398 <div class="tags">
399
400
401 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
402
403
404 </div>
405 </div>
406 <div class="padding"></div>
407
408 <div class="entry">
409 <div class="title">
410 <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_seem_to_hold_up_well_in_Debian_testing.html">Parallellized boot seem to hold up well in Debian/testing</a>
411 </div>
412 <div class="date">
413 27th May 2010
414 </div>
415 <div class="body">
416 <p>A few days ago, parallel booting was enabled in Debian/testing.
417 The feature seem to hold up pretty well, but three fairly serious
418 issues are known and should be solved:
419
420 <p><ul>
421
422 <li>The wicd package seen to
423 <a href="http://bugs.debian.org/508289">break NFS mounting</a> and
424 <a href="http://bugs.debian.org/581586">network setup</a> when
425 parallel booting is enabled. No idea why, but the wicd maintainer
426 seem to be on the case.</li>
427
428 <li>The nvidia X driver seem to
429 <a href="http://bugs.debian.org/583312">have a race condition</a>
430 triggered more easily when parallel booting is in effect. The
431 maintainer is on the case.</li>
432
433 <li>The sysv-rc package fail to properly enable dependency based boot
434 sequencing (the shutdown is broken) when old file-rc users
435 <a href="http://bugs.debian.org/575080">try to switch back</a> to
436 sysv-rc. One way to solve it would be for file-rc to create
437 /etc/init.d/.legacy-bootordering, and another is to try to make
438 sysv-rc more robust. Will investigate some more and probably upload a
439 workaround in sysv-rc to help those trying to move from file-rc to
440 sysv-rc get a working shutdown.</li>
441
442 </ul></p>
443
444 <p>All in all not many surprising issues, and all of them seem
445 solvable before Squeeze is released. In addition to these there are
446 some packages with bugs in their dependencies and run level settings,
447 which I expect will be fixed in a reasonable time span.</p>
448
449 <p>If you report any problems with dependencies in init.d scripts to
450 the BTS, please usertag the report to get it to show up at
451 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
452 list of usertagged bugs related to this</a>.</p>
453
454 <p>Update: Correct bug number to file-rc issue.</p>
455
456 </div>
457 <div class="tags">
458
459
460 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
461
462
463 </div>
464 </div>
465 <div class="padding"></div>
466
467 <div class="entry">
468 <div class="title">
469 <a href="http://people.skolelinux.org/pere/blog/Parallellized_boot_is_now_the_default_in_Debian_unstable.html">Parallellized boot is now the default in Debian/unstable</a>
470 </div>
471 <div class="date">
472 14th May 2010
473 </div>
474 <div class="body">
475 <p>Since this evening, parallel booting is the default in
476 Debian/unstable for machines using dependency based boot sequencing.
477 Apparently the testing of concurrent booting has been wider than
478 expected, if I am to believe the
479 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
480 on debian-devel@</a>, and I concluded a few days ago to move forward
481 with the feature this weekend, to give us some time to detect any
482 remaining problems before Squeeze is frozen. If serious problems are
483 detected, it is simple to change the default back to sequential boot.
484 The upload of the new sysvinit package also activate a new upstream
485 version.</p>
486
487 More information about
488 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
489 based boot sequencing</a> is available from the Debian wiki. It is
490 currently possible to disable parallel booting when one run into
491 problems caused by it, by adding this line to /etc/default/rcS:</p>
492
493 <blockquote><pre>
494 CONCURRENCY=none
495 </pre></blockquote>
496
497 <p>If you report any problems with dependencies in init.d scripts to
498 the BTS, please usertag the report to get it to show up at
499 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
500 list of usertagged bugs related to this</a>.</p>
501
502 </div>
503 <div class="tags">
504
505
506 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
507
508
509 </div>
510 </div>
511 <div class="padding"></div>
512
513 <div class="entry">
514 <div class="title">
515 <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
516 </div>
517 <div class="date">
518 13th May 2010
519 </div>
520 <div class="body">
521 <p>The last few days a new boot system called
522 <a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
523 has been
524 <a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
525
526 to the free software world. I have not yet had time to play around
527 with it, but it seem to be a very interesting alternative to
528 <a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
529 a good alternative for Debian when we are able to switch to an event
530 based boot system. Tollef is
531 <a href="http://bugs.debian.org/580814">in the process</a> of getting
532 systemd into Debian, and I look forward to seeing how well it work. I
533 like the fact that systemd handles init.d scripts with dependency
534 information natively, allowing them to run in parallel where upstart
535 at the moment do not.</p>
536
537 <p>Unfortunately do systemd have the same problem as upstart regarding
538 platform support. It only work on recent Linux kernels, and also need
539 some new kernel features enabled to function properly. This means
540 kFreeBSD and Hurd ports of Debian will need a port or a different boot
541 system. Not sure how that will be handled if systemd proves to be the
542 way forward.</p>
543
544 <p>In the mean time, based on the
545 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
546 on debian-devel@</a> regarding parallel booting in Debian, I have
547 decided to enable full parallel booting as the default in Debian as
548 soon as possible (probably this weekend or early next week), to see if
549 there are any remaining serious bugs in the init.d dependencies. A
550 new version of the sysvinit package implementing this change is
551 already in experimental. If all go well, Squeeze will be released
552 with parallel booting enabled by default.</p>
553
554 </div>
555 <div class="tags">
556
557
558 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
559
560
561 </div>
562 </div>
563 <div class="padding"></div>
564
565 <div class="entry">
566 <div class="title">
567 <a href="http://people.skolelinux.org/pere/blog/Parallellizing_the_boot_in_Debian_Squeeze___ready_for_wider_testing.html">Parallellizing the boot in Debian Squeeze - ready for wider testing</a>
568 </div>
569 <div class="date">
570 6th May 2010
571 </div>
572 <div class="body">
573 <p>These days, the init.d script dependencies in Squeeze are quite
574 complete, so complete that it is actually possible to run all the
575 init.d scripts in parallell based on these dependencies. If you want
576 to test your Squeeze system, make sure
577 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
578 based boot sequencing</a> is enabled, and add this line to
579 /etc/default/rcS:</p>
580
581 <blockquote><pre>
582 CONCURRENCY=makefile
583 </pre></blockquote>
584
585 <p>That is it. It will cause sysv-rc to use the startpar tool to run
586 scripts in parallel using the dependency information stored in
587 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
588 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
589 to try to start the kdm and gdm scripts as early as possible, and will
590 start the facilities required by kdm or gdm as early as possible to
591 make this happen.</p>
592
593 <p>Give it a try, and see if you like the result. If some services
594 fail to start properly, it is most likely because they have incomplete
595 init.d script dependencies in their startup script (or some of their
596 dependent scripts have incomplete dependencies). Report bugs and get
597 the package maintainers to fix it. :)</p>
598
599 <p>Running scripts in parallel could be the default in Debian when we
600 manage to get the init.d script dependencies complete and correct. I
601 expect we will get there in Squeeze+1, if we get manage to test and
602 fix the remaining issues.</p>
603
604 <p>If you report any problems with dependencies in init.d scripts to
605 the BTS, please usertag the report to get it to show up at
606 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
607 list of usertagged bugs related to this</a>.</p>
608
609 </div>
610 <div class="tags">
611
612
613 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
614
615
616 </div>
617 </div>
618 <div class="padding"></div>
619
620 <div class="entry">
621 <div class="title">
622 <a href="http://people.skolelinux.org/pere/blog/Debian_has_switched_to_dependency_based_boot_sequencing.html">Debian has switched to dependency based boot sequencing</a>
623 </div>
624 <div class="date">
625 27th July 2009
626 </div>
627 <div class="body">
628 <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
629 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
630 have been migrated to using dependency based boot sequencing. This
631 conclude work me and others have been doing for the last three days.
632 It feels great to see this finally part of the default Debian
633 installation. Now we just need to weed out the last few problems that
634 are bound to show up, to get everything ready for Squeeze.</p>
635
636 <p>The next step is migrating /sbin/init from sysvinit to upstart, and
637 fixing the more fundamental problem of handing the event based
638 non-predictable kernel in the early boot.</p>
639
640 </div>
641 <div class="tags">
642
643
644 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
645
646
647 </div>
648 </div>
649 <div class="padding"></div>
650
651 <div class="entry">
652 <div class="title">
653 <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
654 </div>
655 <div class="date">
656 22nd July 2009
657 </div>
658 <div class="body">
659 <p>After several years of frustration with the lack of activity from
660 the existing sysvinit upstream developer, I decided a few weeks ago to
661 take over the package and become the new upstream. The number of
662 patches to track for the Debian package was becoming a burden, and the
663 lack of synchronization between the distribution made it hard to keep
664 the package up to date.</p>
665
666 <p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
667 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
668 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
669 and Fedora), based on the patches currently in use in these
670 distributions. We Debian maintainers plan to move to this tarball as
671 the new upstream as soon as we find time to do the merge. Since the
672 new tarball was created, we agreed with Werner at SuSe to make a new
673 upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
674 development there. The project is registered and currently waiting
675 for approval by the Savannah administrators, and as soon as it is
676 approved, we will import the old versions from svn and continue
677 working on the future release.</p>
678
679 <p>It is a bit ironic that this is done now, when some of the involved
680 distributions are moving to upstart as a syvinit replacement.</p>
681
682 </div>
683 <div class="tags">
684
685
686 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>, <a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug</a>.
687
688
689 </div>
690 </div>
691 <div class="padding"></div>
692
693 <div class="entry">
694 <div class="title">
695 <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
696 </div>
697 <div class="date">
698 24th June 2009
699 </div>
700 <div class="body">
701 <p>I spent Monday and tuesday this week in London with a lot of the
702 people involved in the boot system on Debian and Ubuntu, to see if we
703 could find more ways to speed up the boot system. This was an Ubuntu
704 funded
705 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
706 gathering</a>. It was quite productive. We also discussed the future
707 of boot systems, and ways to handle the increasing number of boot
708 issues introduced by the Linux kernel becoming more and more
709 asynchronous and event base. The Ubuntu approach using udev and
710 upstart might be a good way forward. Time will show.</p>
711
712 <p>Anyway, there are a few ways at the moment to speed up the boot
713 process in Debian. All of these should be applied to get a quick
714 boot:</p>
715
716 <ul>
717
718 <li>Use dash as /bin/sh.</li>
719
720 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
721 clock is in UTC.</li>
722
723 <li>Install and activate the insserv package to enable
724 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
725 based boot sequencing</a>, and enable concurrent booting.</li>
726
727 </ul>
728
729 These points are based on the Google summer of code work done by
730 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
731 Villegas</a>.
732
733 <p>Support for makefile-style concurrency during boot was uploaded to
734 unstable yesterday. When we tested it, we were able to cut 6 seconds
735 from the boot sequence. It depend on very correct dependency
736 declaration in all init.d scripts, so I expect us to find edge cases
737 where the dependences in some scripts are slightly wrong when we start
738 using this.</p>
739
740 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
741 introduced by Raphael Geissert today, one that could affect the
742 startup speed as well. Instead of starting some scripts concurrently
743 from rcS.d/ and another set of scripts from rc2.d/, it would be
744 possible to run a of them in the same process. A quick way to test
745 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
746 insserv'. Will need to test if that work. :)</p>
747
748 </div>
749 <div class="tags">
750
751
752 Tags: <a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem</a>, <a href="http://people.skolelinux.org/pere/blog/tags/debian">debian</a>, <a href="http://people.skolelinux.org/pere/blog/tags/english">english</a>.
753
754
755 </div>
756 </div>
757 <div class="padding"></div>
758
759 <p style="text-align: right;"><a href="bootsystem.rss"><img src="http://people.skolelinux.org/pere/blog/xml.gif" alt="RSS Feed" width="36" height="14" /></a></p>
760 <div id="sidebar">
761
762
763
764 <h2>Archive</h2>
765 <ul>
766
767 <li>2012
768 <ul>
769
770 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
771
772 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
773
774 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
775
776 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
777
778 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
779
780 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
781
782 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
783
784 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
785
786 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
787
788 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
789
790 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
791
792 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (2)</a></li>
793
794 </ul></li>
795
796 <li>2011
797 <ul>
798
799 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
800
801 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
802
803 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
804
805 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
806
807 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
808
809 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
810
811 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
812
813 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
814
815 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
816
817 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
818
819 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
820
821 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
822
823 </ul></li>
824
825 <li>2010
826 <ul>
827
828 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
829
830 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
831
832 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
833
834 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
835
836 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
837
838 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
839
840 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
841
842 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
843
844 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
845
846 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
847
848 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
849
850 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
851
852 </ul></li>
853
854 <li>2009
855 <ul>
856
857 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
858
859 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
860
861 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
862
863 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
864
865 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
866
867 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
868
869 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
870
871 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
872
873 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
874
875 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
876
877 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
878
879 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
880
881 </ul></li>
882
883 <li>2008
884 <ul>
885
886 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
887
888 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
889
890 </ul></li>
891
892 </ul>
893
894
895
896 <h2>Tags</h2>
897 <ul>
898
899 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
900
901 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
902
903 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
904
905 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (3)</a></li>
906
907 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (3)</a></li>
908
909 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (12)</a></li>
910
911 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
912
913 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (57)</a></li>
914
915 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (116)</a></li>
916
917 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (9)</a></li>
918
919 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (7)</a></li>
920
921 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
922
923 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (161)</a></li>
924
925 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
926
927 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
928
929 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (9)</a></li>
930
931 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (9)</a></li>
932
933 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (32)</a></li>
934
935 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (17)</a></li>
936
937 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (8)</a></li>
938
939 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (5)</a></li>
940
941 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
942
943 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (25)</a></li>
944
945 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (217)</a></li>
946
947 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (147)</a></li>
948
949 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (6)</a></li>
950
951 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
952
953 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (39)</a></li>
954
955 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (60)</a></li>
956
957 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
958
959 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
960
961 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (2)</a></li>
962
963 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (4)</a></li>
964
965 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
966
967 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
968
969 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
970
971 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (28)</a></li>
972
973 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
974
975 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
976
977 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (39)</a></li>
978
979 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
980
981 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (5)</a></li>
982
983 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (12)</a></li>
984
985 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (1)</a></li>
986
987 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (7)</a></li>
988
989 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (35)</a></li>
990
991 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
992
993 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (26)</a></li>
994
995 </ul>
996
997
998 </div>
999 <p style="text-align: right">
1000 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.4</a>
1001 </p>
1002
1003 </body>
1004 </html>