]> pere.pagekite.me Git - homepage.git/blob - blog/tags/bootsystem/index.html
c18952547e1544d31ec2919b14962ef8e5017db6
[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_to_stay_with_sysvinit_in_Debian_Jessie.html">How to stay with sysvinit in Debian Jessie</a>
26 </div>
27 <div class="date">
28 22nd November 2014
29 </div>
30 <div class="body">
31 <p>By now, it is well known that Debian Jessie will not be using
32 sysvinit as its boot system by default. But how can one keep using
33 sysvinit in Jessie? It is fairly easy, and here are a few recipes,
34 courtesy of
35 <a href="http://www.vitavonni.de/blog/201410/2014102101-avoiding-systemd.html">Erich
36 Schubert</a> and
37 <a href="http://smcv.pseudorandom.co.uk/2014/still_universal/">Simon
38 McVittie</a>.
39
40 <p>If you already are using Wheezy and want to upgrade to Jessie and
41 keep sysvinit as your boot system, create a file
42 <tt>/etc/apt/preferences.d/use-sysvinit</tt> with this content before
43 you upgrade:</p>
44
45 <p><blockquote><pre>
46 Package: systemd-sysv
47 Pin: release o=Debian
48 Pin-Priority: -1
49 </pre></blockquote><p>
50
51 <p>This file content will tell apt and aptitude to not consider
52 installing systemd-sysv as part of any installation and upgrade
53 solution when resolving dependencies, and thus tell it to avoid
54 systemd as a default boot system. The end result should be that the
55 upgraded system keep using sysvinit.</p>
56
57 <p>If you are installing Jessie for the first time, there is no way to
58 get sysvinit installed by default (debootstrap used by
59 debian-installer have no option for this), but one can tell the
60 installer to switch to sysvinit before the first boot. Either by
61 using a kernel argument to the installer, or by adding a line to the
62 preseed file used. First, the kernel command line argument:
63
64 <p><blockquote><pre>
65 preseed/late_command="in-target apt-get install -y sysvinit-core"
66 </pre></blockquote><p>
67
68 <p>Next, the line to use in a preseed file:</p>
69
70 <p><blockquote><pre>
71 d-i preseed/late_command string in-target apt-get install -y sysvinit-core
72 </pre></blockquote><p>
73
74 <p>One can of course also do this after the first boot by installing
75 the sysvinit-core package.</p>
76
77 <p>I recommend only using sysvinit if you really need it, as the
78 sysvinit boot sequence in Debian have several hardware specific bugs
79 on Linux caused by the fact that it is unpredictable when hardware
80 devices show up during boot. But on the other hand, the new default
81 boot system still have a few rough edges I hope will be fixed before
82 Jessie is released.</p>
83
84 </div>
85 <div class="tags">
86
87
88 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>.
89
90
91 </div>
92 </div>
93 <div class="padding"></div>
94
95 <div class="entry">
96 <div class="title">
97 <a href="http://people.skolelinux.org/pere/blog/Testing_sysvinit_from_experimental_in_Debian_Hurd.html">Testing sysvinit from experimental in Debian Hurd</a>
98 </div>
99 <div class="date">
100 3rd February 2014
101 </div>
102 <div class="body">
103 <p>A few days ago I decided to try to help the Hurd people to get
104 their changes into sysvinit, to allow them to use the normal sysvinit
105 boot system instead of their old one. This follow up on the
106 <a href="https://teythoon.cryptobitch.de//categories/gsoc.html">great
107 Google Summer of Code work</a> done last summer by Justus Winter to
108 get Debian on Hurd working more like Debian on Linux. To get started,
109 I downloaded a prebuilt hard disk image from
110 <a href="http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz">http://ftp.debian-ports.org/debian-cd/hurd-i386/current/debian-hurd.img.tar.gz</a>,
111 and started it using virt-manager.</p>
112
113 <p>The first think I had to do after logging in (root without any
114 password) was to get the network operational. I followed
115 <a href="https://www.debian.org/ports/hurd/hurd-install">the
116 instructions on the Debian GNU/Hurd ports page</a> and ran these
117 commands as root to get the machine to accept a IP address from the
118 kvm internal DHCP server:</p>
119
120 <p><blockquote><pre>
121 settrans -fgap /dev/netdde /hurd/netdde
122 kill $(ps -ef|awk '/[p]finet/ { print $2}')
123 kill $(ps -ef|awk '/[d]evnode/ { print $2}')
124 dhclient /dev/eth0
125 </pre></blockquote></p>
126
127 <p>After this, the machine had internet connectivity, and I could
128 upgrade it and install the sysvinit packages from experimental and
129 enable it as the default boot system in Hurd.</p>
130
131 <p>But before I did that, I set a password on the root user, as ssh is
132 running on the machine it for ssh login to work a password need to be
133 set. Also, note that a bug somewhere in openssh on Hurd block
134 compression from working. Remember to turn that off on the client
135 side.</p>
136
137 <p>Run these commands as root to upgrade and test the new sysvinit
138 stuff:</p>
139
140 <p><blockquote><pre>
141 cat > /etc/apt/sources.list.d/experimental.list &lt;&lt;EOF
142 deb http://http.debian.net/debian/ experimental main
143 EOF
144 apt-get update
145 apt-get dist-upgrade
146 apt-get install -t experimental initscripts sysv-rc sysvinit \
147 sysvinit-core sysvinit-utils
148 update-alternatives --config runsystem
149 </pre></blockquote></p>
150
151 <p>To reboot after switching boot system, you have to use
152 <tt>reboot-hurd</tt> instead of just <tt>reboot</tt>, as there is not
153 yet a sysvinit process able to receive the signals from the normal
154 'reboot' command. After switching to sysvinit as the boot system,
155 upgrading every package and rebooting, the network come up with DHCP
156 after boot as it should, and the settrans/pkill hack mentioned at the
157 start is no longer needed. But for some strange reason, there are no
158 longer any login prompt in the virtual console, so I logged in using
159 ssh instead.
160
161 <p>Note that there are some race conditions in Hurd making the boot
162 fail some times. No idea what the cause is, but hope the Hurd porters
163 figure it out. At least Justus said on IRC (#debian-hurd on
164 irc.debian.org) that they are aware of the problem. A way to reduce
165 the impact is to upgrade to the Hurd packages built by Justus by
166 adding this repository to the machine:</p>
167
168 <p><blockquote><pre>
169 cat > /etc/apt/sources.list.d/hurd-ci.list &lt;&lt;EOF
170 deb http://darnassus.sceen.net/~teythoon/hurd-ci/ sid main
171 EOF
172 </pre></blockquote></p>
173
174 <p>At the moment the prebuilt virtual machine get some packages from
175 http://ftp.debian-ports.org/debian, because some of the packages in
176 unstable do not yet include the required patches that are lingering in
177 BTS. This is the completely list of "unofficial" packages installed:</p>
178
179 <p><blockquote><pre>
180 # aptitude search '?narrow(?version(CURRENT),?origin(Debian Ports))'
181 i emacs - GNU Emacs editor (metapackage)
182 i gdb - GNU Debugger
183 i hurd-recommended - Miscellaneous translators
184 i isc-dhcp-client - ISC DHCP client
185 i isc-dhcp-common - common files used by all the isc-dhcp* packages
186 i libc-bin - Embedded GNU C Library: Binaries
187 i libc-dev-bin - Embedded GNU C Library: Development binaries
188 i libc0.3 - Embedded GNU C Library: Shared libraries
189 i A libc0.3-dbg - Embedded GNU C Library: detached debugging symbols
190 i libc0.3-dev - Embedded GNU C Library: Development Libraries and Hea
191 i multiarch-support - Transitional package to ensure multiarch compatibilit
192 i A x11-common - X Window System (X.Org) infrastructure
193 i xorg - X.Org X Window System
194 i A xserver-xorg - X.Org X server
195 i A xserver-xorg-input-all - X.Org X server -- input driver metapackage
196 #
197 </pre></blockquote></p>
198
199 <p>All in all, testing hurd has been an interesting experience. :)
200 X.org did not work out of the box and I never took the time to follow
201 the porters instructions to fix it. This time I was interested in the
202 command line stuff.<p>
203
204 </div>
205 <div class="tags">
206
207
208 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>.
209
210
211 </div>
212 </div>
213 <div class="padding"></div>
214
215 <div class="entry">
216 <div class="title">
217 <a href="http://people.skolelinux.org/pere/blog/Debian_init_d_boot_script_example_for_rsyslog.html">Debian init.d boot script example for rsyslog</a>
218 </div>
219 <div class="date">
220 2nd November 2013
221 </div>
222 <div class="body">
223 <p>If one of the points of switching to a new init system in Debian is
224 <a href="http://thomas.goirand.fr/blog/?p=147">to get rid of huge
225 init.d scripts</a>, I doubt we need to switch away from sysvinit and
226 init.d scripts at all. Here is an example init.d script, ie a rewrite
227 of /etc/init.d/rsyslog:</p>
228
229 <p><pre>
230 #!/lib/init/init-d-script
231 ### BEGIN INIT INFO
232 # Provides: rsyslog
233 # Required-Start: $remote_fs $time
234 # Required-Stop: umountnfs $time
235 # X-Stop-After: sendsigs
236 # Default-Start: 2 3 4 5
237 # Default-Stop: 0 1 6
238 # Short-Description: enhanced syslogd
239 # Description: Rsyslog is an enhanced multi-threaded syslogd.
240 # It is quite compatible to stock sysklogd and can be
241 # used as a drop-in replacement.
242 ### END INIT INFO
243 DESC="enhanced syslogd"
244 DAEMON=/usr/sbin/rsyslogd
245 </pre></p>
246
247 <p>Pretty minimalistic to me... For the record, the original sysv-rc
248 script was 137 lines, and the above is just 15 lines, most of it meta
249 info/comments.</p>
250
251 <p>How to do this, you ask? Well, one create a new script
252 /lib/init/init-d-script looking something like this:
253
254 <p><pre>
255 #!/bin/sh
256
257 # Define LSB log_* functions.
258 # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
259 # and status_of_proc is working.
260 . /lib/lsb/init-functions
261
262 #
263 # Function that starts the daemon/service
264
265 #
266 do_start()
267 {
268 # Return
269 # 0 if daemon has been started
270 # 1 if daemon was already running
271 # 2 if daemon could not be started
272 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \
273 || return 1
274 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
275 $DAEMON_ARGS \
276 || return 2
277 # Add code here, if necessary, that waits for the process to be ready
278 # to handle requests from services started subsequently which depend
279 # on this one. As a last resort, sleep for some time.
280 }
281
282 #
283 # Function that stops the daemon/service
284 #
285 do_stop()
286 {
287 # Return
288 # 0 if daemon has been stopped
289 # 1 if daemon was already stopped
290 # 2 if daemon could not be stopped
291 # other if a failure occurred
292 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
293 RETVAL="$?"
294 [ "$RETVAL" = 2 ] && return 2
295 # Wait for children to finish too if this is a daemon that forks
296 # and if the daemon is only ever run from this initscript.
297 # If the above conditions are not satisfied then add some other code
298 # that waits for the process to drop all resources that could be
299 # needed by services started subsequently. A last resort is to
300 # sleep for some time.
301 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
302 [ "$?" = 2 ] && return 2
303 # Many daemons don't delete their pidfiles when they exit.
304 rm -f $PIDFILE
305 return "$RETVAL"
306 }
307
308 #
309 # Function that sends a SIGHUP to the daemon/service
310 #
311 do_reload() {
312 #
313 # If the daemon can reload its configuration without
314 # restarting (for example, when it is sent a SIGHUP),
315 # then implement that here.
316 #
317 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
318 return 0
319 }
320
321 SCRIPTNAME=$1
322 scriptbasename="$(basename $1)"
323 echo "SN: $scriptbasename"
324 if [ "$scriptbasename" != "init-d-library" ] ; then
325 script="$1"
326 shift
327 . $script
328 else
329 exit 0
330 fi
331
332 NAME=$(basename $DAEMON)
333 PIDFILE=/var/run/$NAME.pid
334
335 # Exit if the package is not installed
336 #[ -x "$DAEMON" ] || exit 0
337
338 # Read configuration variable file if it is present
339 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
340
341 # Load the VERBOSE setting and other rcS variables
342 . /lib/init/vars.sh
343
344 case "$1" in
345 start)
346 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
347 do_start
348 case "$?" in
349 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
350 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
351 esac
352 ;;
353 stop)
354 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
355 do_stop
356 case "$?" in
357 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
358 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
359 esac
360 ;;
361 status)
362 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
363 ;;
364 #reload|force-reload)
365 #
366 # If do_reload() is not implemented then leave this commented out
367 # and leave 'force-reload' as an alias for 'restart'.
368 #
369 #log_daemon_msg "Reloading $DESC" "$NAME"
370 #do_reload
371 #log_end_msg $?
372 #;;
373 restart|force-reload)
374 #
375 # If the "reload" option is implemented then remove the
376 # 'force-reload' alias
377 #
378 log_daemon_msg "Restarting $DESC" "$NAME"
379 do_stop
380 case "$?" in
381 0|1)
382 do_start
383 case "$?" in
384 0) log_end_msg 0 ;;
385 1) log_end_msg 1 ;; # Old process is still running
386 *) log_end_msg 1 ;; # Failed to start
387 esac
388 ;;
389 *)
390 # Failed to stop
391 log_end_msg 1
392 ;;
393 esac
394 ;;
395 *)
396 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
397 exit 3
398 ;;
399 esac
400
401 :
402 </pre></p>
403
404 <p>It is based on /etc/init.d/skeleton, and could be improved quite a
405 lot. I did not really polish the approach, so it might not always
406 work out of the box, but you get the idea. I did not try very hard to
407 optimize it nor make it more robust either.</p>
408
409 <p>A better argument for switching init system in Debian than reducing
410 the size of init scripts (which is a good thing to do anyway), is to
411 get boot system that is able to handle the kernel events sensibly and
412 robustly, and do not depend on the boot to run sequentially. The boot
413 and the kernel have not behaved sequentially in years.</p>
414
415 </div>
416 <div class="tags">
417
418
419 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>.
420
421
422 </div>
423 </div>
424 <div class="padding"></div>
425
426 <div class="entry">
427 <div class="title">
428 <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>
429 </div>
430 <div class="date">
431 4th August 2011
432 </div>
433 <div class="body">
434 <p>Wouter Verhelst have some
435 <a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
436 comments and opinions</a> on my blog post on
437 <a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
438 need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
439 <a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
440 default KDE desktop in Debian</a>. I only have time to address one
441 small piece of his comment now, and though it best to address the
442 misunderstanding he bring forward:</p>
443
444 <p><blockquote>
445 Currently, a system admin has four options: [...] boot to a
446 single-user system (by adding 'single' to the kernel command line;
447 this runs rcS and rc1 scripts)
448 </blockquote></p>
449
450 <p>This make me believe Wouter believe booting into single user mode
451 and booting into runlevel 1 is the same. I am not surprised he
452 believe this, because it would make sense and is a quite sensible
453 thing to believe. But because the boot in Debian is slightly broken,
454 runlevel 1 do not work properly and it isn't the same as single user
455 mode. I'll try to explain what is actually happing, but it is a bit
456 hard to explain.</p>
457
458 <p>Single user mode is defined like this in /etc/inittab:
459 "<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
460 executed in single user mode is sulogin. Single user mode is a boot
461 state "between" the runlevels, and when booting into single user mode,
462 only the scripts in /etc/rcS.d/ are executed before the init process
463 enters the single user state. When switching to runlevel 1, the state
464 is in fact not ending in runlevel 1, but it passes through runlevel 1
465 and end up in the single user mode (see /etc/rc1.d/S03single, which
466 runs "init -t1 S" to switch to single user mode at the end of runlevel
467 1. It is confusing that the 'S' (single user) init mode is not the
468 mode enabled by /etc/rcS.d/ (which is more like the initial boot
469 mode).</p>
470
471 <p>This summary might make it clearer. When booting for the first
472 time into single user mode, the following commands are executed:
473 "<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
474 runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
475 S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
476 trying to continue after visiting single user mode. Not all services
477 are started again as they should, causing the machine to end up in an
478 unpredicatble state. This is why Debian admins recommend rebooting
479 after visiting single user mode.</p>
480
481 <p>A similar problem with runlevel 1 is caused by the amount of
482 scripts executed from /etc/rcS.d/. When switching from say runlevel 2
483 to runlevel 1, the services started from /etc/rcS.d/ are not properly
484 stopped when passing through the scripts in /etc/rc1.d/, and not
485 started again when switching away from runlevel 1 to the runlevels
486 2-5. I believe the problem is best fixed by moving all the scripts
487 out of /etc/rcS.d/ that are not <strong>required</strong> to get a
488 functioning single user mode during boot.</p>
489
490 <p>I have spent several years investigating the Debian boot system,
491 and discovered this problem a few years ago. I suspect it originates
492 from when sysvinit was introduced into Debian, a long time ago.</p>
493
494 </div>
495 <div class="tags">
496
497
498 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>.
499
500
501 </div>
502 </div>
503 <div class="padding"></div>
504
505 <div class="entry">
506 <div class="title">
507 <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>
508 </div>
509 <div class="date">
510 30th July 2011
511 </div>
512 <div class="body">
513 <p>In the Debian boot system, several packages include scripts that
514 are started from /etc/rcS.d/. In fact, there is a bite more of them
515 than make sense, and this causes a few problems. What kind of
516 problems, you might ask. There are at least two problems. The first
517 is that it is not possible to recover a machine after switching to
518 runlevel 1. One need to actually reboot to get the machine back to
519 the expected state. The other is that single user boot will sometimes
520 run into problems because some of the subsystems are activated before
521 the root login is presented, causing problems when trying to recover a
522 machine from a problem in that subsystem. A minor additional point is
523 that moving more scripts out of rcS.d/ and into the other rc#.d/
524 directories will increase the amount of scripts that can run in
525 parallel during boot, and thus decrease the boot time.</p>
526
527 <p>So, which scripts should start from rcS.d/. In short, only the
528 scripts that _have_ to execute before the root login prompt is
529 presented during a single user boot should go there. Everything else
530 should go into the numeric runlevels. This means things like
531 lm-sensors, fuse and x11-common should not run from rcS.d, but from
532 the numeric runlevels. Today in Debian, there are around 115 init.d
533 scripts that are started from rcS.d/, and most of them should be moved
534 out. Do your package have one of them? Please help us make single
535 user and runlevel 1 better by moving it.</p>
536
537 <p>Scripts setting up the screen, keyboard, system partitions
538 etc. should still be started from rcS.d/, but there is for example no
539 need to have the network enabled before the single user login prompt
540 is presented.</p>
541
542 <p>As always, things are not so easy to fix as they sound. To keep
543 Debian systems working while scripts migrate and during upgrades, the
544 scripts need to be moved from rcS.d/ to rc2.d/ in reverse dependency
545 order, ie the scripts that nothing in rcS.d/ depend on can be moved,
546 and the next ones can only be moved when their dependencies have been
547 moved first. This migration must be done sequentially while we ensure
548 that the package system upgrade packages in the right order to keep
549 the system state correct. This will require some coordination when it
550 comes to network related packages, but most of the packages with
551 scripts that should migrate do not have anything in rcS.d/ depending
552 on them. Some packages have already been updated, like the sudo
553 package, while others are still left to do. I wish I had time to work
554 on this myself, but real live constrains make it unlikely that I will
555 find time to push this forward.</p>
556
557 </div>
558 <div class="tags">
559
560
561 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>.
562
563
564 </div>
565 </div>
566 <div class="padding"></div>
567
568 <div class="entry">
569 <div class="title">
570 <a href="http://people.skolelinux.org/pere/blog/Automatic_upgrade_testing_from_Lenny_to_Squeeze.html">Automatic upgrade testing from Lenny to Squeeze</a>
571 </div>
572 <div class="date">
573 11th June 2010
574 </div>
575 <div class="body">
576 <p>The last few days I have done some upgrade testing in Debian, to
577 see if the upgrade from Lenny to Squeeze will go smoothly. A few bugs
578 have been discovered and reported in the process
579 (<a href="http://bugs.debian.org/585410">#585410</a> in nagios3-cgi,
580 <a href="http://bugs.debian.org/584879">#584879</a> already fixed in
581 enscript and <a href="http://bugs.debian.org/584861">#584861</a> in
582 kdebase-workspace-data), and to get a more regular testing going on, I
583 am working on a script to automate the test.</p>
584
585 <p>The idea is to create a Lenny chroot and use tasksel to install a
586 Gnome or KDE desktop installation inside the chroot before upgrading
587 it. To ensure no services are started in the chroot, a policy-rc.d
588 script is inserted. To make sure tasksel believe it is to install a
589 desktop on a laptop, the tasksel tests are replaced in the chroot
590 (only acceptable because this is a throw-away chroot).</p>
591
592 <p>A naive upgrade from Lenny to Squeeze using aptitude dist-upgrade
593 currently always fail because udev refuses to upgrade with the kernel
594 in Lenny, so to avoid that problem the file /etc/udev/kernel-upgrade
595 is created. The bug report
596 <a href="http://bugs.debian.org/566000">#566000</a> make me suspect
597 this problem do not trigger in a chroot, but I touch the file anyway
598 to make sure the upgrade go well. Testing on virtual and real
599 hardware have failed me because of udev so far, and creating this file
600 do the trick in such settings anyway. This is a
601 <a href="http://www.linuxquestions.org/questions/debian-26/failed-dist-upgrade-due-to-udev-config_sysfs_deprecated-nonsense-804130/">known
602 issue</a> and the current udev behaviour is intended by the udev
603 maintainer because he lack the resources to rewrite udev to keep
604 working with old kernels or something like that. I really wish the
605 udev upstream would keep udev backwards compatible, to avoid such
606 upgrade problem, but given that they fail to do so, I guess
607 documenting the way out of this mess is the best option we got for
608 Debian Squeeze.</p>
609
610 <p>Anyway, back to the task at hand, testing upgrades. This test
611 script, which I call <tt>upgrade-test</tt> for now, is doing the
612 trick:</p>
613
614 <blockquote><pre>
615 #!/bin/sh
616 set -ex
617
618 if [ "$1" ] ; then
619 desktop=$1
620 else
621 desktop=gnome
622 fi
623
624 from=lenny
625 to=squeeze
626
627 exec &lt; /dev/null
628 unset LANG
629 mirror=http://ftp.skolelinux.org/debian
630 tmpdir=chroot-$from-upgrade-$to-$desktop
631 fuser -mv .
632 debootstrap $from $tmpdir $mirror
633 chroot $tmpdir aptitude update
634 cat > $tmpdir/usr/sbin/policy-rc.d &lt;&lt;EOF
635 #!/bin/sh
636 exit 101
637 EOF
638 chmod a+rx $tmpdir/usr/sbin/policy-rc.d
639 exit_cleanup() {
640 umount $tmpdir/proc
641 }
642 mount -t proc proc $tmpdir/proc
643 # Make sure proc is unmounted also on failure
644 trap exit_cleanup EXIT INT
645
646 chroot $tmpdir aptitude -y install debconf-utils
647
648 # Make sure tasksel autoselection trigger. It need the test scripts
649 # to return the correct answers.
650 echo tasksel tasksel/desktop multiselect $desktop | \
651 chroot $tmpdir debconf-set-selections
652
653 # Include the desktop and laptop task
654 for test in desktop laptop ; do
655 echo > $tmpdir/usr/lib/tasksel/tests/$test &lt;&lt;EOF
656 #!/bin/sh
657 exit 2
658 EOF
659 chmod a+rx $tmpdir/usr/lib/tasksel/tests/$test
660 done
661
662 DEBIAN_FRONTEND=noninteractive
663 DEBIAN_PRIORITY=critical
664 export DEBIAN_FRONTEND DEBIAN_PRIORITY
665 chroot $tmpdir tasksel --new-install
666
667 echo deb $mirror $to main > $tmpdir/etc/apt/sources.list
668 chroot $tmpdir aptitude update
669 touch $tmpdir/etc/udev/kernel-upgrade
670 chroot $tmpdir aptitude -y dist-upgrade
671 fuser -mv
672 </pre></blockquote>
673
674 <p>I suspect it would be useful to test upgrades with both apt-get and
675 with aptitude, but I have not had time to look at how they behave
676 differently so far. I hope to get a cron job running to do the test
677 regularly and post the result on the web. The Gnome upgrade currently
678 work, while the KDE upgrade fail because of the bug in
679 kdebase-workspace-data</p>
680
681 <p>I am not quite sure what kind of extract from the huge upgrade logs
682 (KDE 167 KiB, Gnome 516 KiB) it make sense to include in this blog
683 post, so I will refrain from trying. I can report that for Gnome,
684 aptitude report 760 packages upgraded, 448 newly installed, 129 to
685 remove and 1 not upgraded and 1024MB need to be downloaded while for
686 KDE the same numbers are 702 packages upgraded, 507 newly installed,
687 193 to remove and 0 not upgraded and 1117MB need to be downloaded</p>
688
689 <p>I am very happy to notice that the Gnome desktop + laptop upgrade
690 is able to migrate to dependency based boot sequencing and parallel
691 booting without a hitch. Was unsure if there were still bugs with
692 packages failing to clean up their obsolete init.d script during
693 upgrades, and no such problem seem to affect the Gnome desktop+laptop
694 packages.</p>
695
696 </div>
697 <div class="tags">
698
699
700 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>.
701
702
703 </div>
704 </div>
705 <div class="padding"></div>
706
707 <div class="entry">
708 <div class="title">
709 <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>
710 </div>
711 <div class="date">
712 6th June 2010
713 </div>
714 <div class="body">
715 <p>If Debian is to migrate to upstart on Linux, I expect some init.d
716 scripts to migrate (some of) their operations to upstart job while
717 keeping the init.d for hurd and kfreebsd. The packages with such
718 needs will need a way to get their init.d scripts to behave
719 differently when used with sysvinit and with upstart. Because of
720 this, I had a look at the environment variables set when a init.d
721 script is running under upstart, and when it is not.</p>
722
723 <p>With upstart, I notice these environment variables are set when a
724 script is started from rcS.d/ (ignoring some irrelevant ones like
725 COLUMNS):</p>
726
727 <blockquote><pre>
728 DEFAULT_RUNLEVEL=2
729 previous=N
730 PREVLEVEL=
731 RUNLEVEL=
732 runlevel=S
733 UPSTART_EVENTS=startup
734 UPSTART_INSTANCE=
735 UPSTART_JOB=rc-sysinit
736 </pre></blockquote>
737
738 <p>With sysvinit, these environment variables are set for the same
739 script.</p>
740
741 <blockquote><pre>
742 INIT_VERSION=sysvinit-2.88
743 previous=N
744 PREVLEVEL=N
745 RUNLEVEL=S
746 runlevel=S
747 </pre></blockquote>
748
749 <p>The RUNLEVEL and PREVLEVEL environment variables passed on from
750 sysvinit are not set by upstart. Not sure if it is intentional or not
751 to not be compatible with sysvinit in this regard.</p>
752
753 <p>For scripts needing to behave differently when upstart is used,
754 looking for the UPSTART_JOB environment variable seem to be a good
755 choice.</p>
756
757 </div>
758 <div class="tags">
759
760
761 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>.
762
763
764 </div>
765 </div>
766 <div class="padding"></div>
767
768 <div class="entry">
769 <div class="title">
770 <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>
771 </div>
772 <div class="date">
773 1st June 2010
774 </div>
775 <div class="body">
776 <p>It is strange to watch how a bug in Debian causing KDM to fail to
777 start at boot when an NVidia video card is used is handled. The
778 problem seem to be that the nvidia X.org driver uses a long time to
779 initialize, and this duration is longer than kdm is configured to
780 wait.</p>
781
782 <p>I came across two bugs related to this issue,
783 <a href="http://bugs.debian.org/583312">#583312</a> initially filed
784 against initscripts and passed on to nvidia-glx when it became obvious
785 that the nvidia drivers were involved, and
786 <a href="http://bugs.debian.org/524751">#524751</a> initially filed against
787 kdm and passed on to src:nvidia-graphics-drivers for unknown reasons.</p>
788
789 <p>To me, it seem that no-one is interested in actually solving the
790 problem nvidia video card owners experience and make sure the Debian
791 distribution work out of the box for these users. The nvidia driver
792 maintainers expect kdm to be set up to wait longer, while kdm expect
793 the nvidia driver maintainers to fix the driver to start faster, and
794 while they wait for each other I guess the users end up switching to a
795 distribution that work for them. I have no idea what the solution is,
796 but I am pretty sure that waiting for each other is not it.</p>
797
798 <p>I wonder why we end up handling bugs this way.</p>
799
800 </div>
801 <div class="tags">
802
803
804 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>.
805
806
807 </div>
808 </div>
809 <div class="padding"></div>
810
811 <div class="entry">
812 <div class="title">
813 <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>
814 </div>
815 <div class="date">
816 27th May 2010
817 </div>
818 <div class="body">
819 <p>A few days ago, parallel booting was enabled in Debian/testing.
820 The feature seem to hold up pretty well, but three fairly serious
821 issues are known and should be solved:
822
823 <p><ul>
824
825 <li>The wicd package seen to
826 <a href="http://bugs.debian.org/508289">break NFS mounting</a> and
827 <a href="http://bugs.debian.org/581586">network setup</a> when
828 parallel booting is enabled. No idea why, but the wicd maintainer
829 seem to be on the case.</li>
830
831 <li>The nvidia X driver seem to
832 <a href="http://bugs.debian.org/583312">have a race condition</a>
833 triggered more easily when parallel booting is in effect. The
834 maintainer is on the case.</li>
835
836 <li>The sysv-rc package fail to properly enable dependency based boot
837 sequencing (the shutdown is broken) when old file-rc users
838 <a href="http://bugs.debian.org/575080">try to switch back</a> to
839 sysv-rc. One way to solve it would be for file-rc to create
840 /etc/init.d/.legacy-bootordering, and another is to try to make
841 sysv-rc more robust. Will investigate some more and probably upload a
842 workaround in sysv-rc to help those trying to move from file-rc to
843 sysv-rc get a working shutdown.</li>
844
845 </ul></p>
846
847 <p>All in all not many surprising issues, and all of them seem
848 solvable before Squeeze is released. In addition to these there are
849 some packages with bugs in their dependencies and run level settings,
850 which I expect will be fixed in a reasonable time span.</p>
851
852 <p>If you report any problems with dependencies in init.d scripts to
853 the BTS, please usertag the report to get it to show up at
854 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
855 list of usertagged bugs related to this</a>.</p>
856
857 <p>Update: Correct bug number to file-rc issue.</p>
858
859 </div>
860 <div class="tags">
861
862
863 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>.
864
865
866 </div>
867 </div>
868 <div class="padding"></div>
869
870 <div class="entry">
871 <div class="title">
872 <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>
873 </div>
874 <div class="date">
875 14th May 2010
876 </div>
877 <div class="body">
878 <p>Since this evening, parallel booting is the default in
879 Debian/unstable for machines using dependency based boot sequencing.
880 Apparently the testing of concurrent booting has been wider than
881 expected, if I am to believe the
882 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
883 on debian-devel@</a>, and I concluded a few days ago to move forward
884 with the feature this weekend, to give us some time to detect any
885 remaining problems before Squeeze is frozen. If serious problems are
886 detected, it is simple to change the default back to sequential boot.
887 The upload of the new sysvinit package also activate a new upstream
888 version.</p>
889
890 More information about
891 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
892 based boot sequencing</a> is available from the Debian wiki. It is
893 currently possible to disable parallel booting when one run into
894 problems caused by it, by adding this line to /etc/default/rcS:</p>
895
896 <blockquote><pre>
897 CONCURRENCY=none
898 </pre></blockquote>
899
900 <p>If you report any problems with dependencies in init.d scripts to
901 the BTS, please usertag the report to get it to show up at
902 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
903 list of usertagged bugs related to this</a>.</p>
904
905 </div>
906 <div class="tags">
907
908
909 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>.
910
911
912 </div>
913 </div>
914 <div class="padding"></div>
915
916 <div class="entry">
917 <div class="title">
918 <a href="http://people.skolelinux.org/pere/blog/systemd__an_interesting_alternative_to_upstart.html">systemd, an interesting alternative to upstart</a>
919 </div>
920 <div class="date">
921 13th May 2010
922 </div>
923 <div class="body">
924 <p>The last few days a new boot system called
925 <a href="http://www.freedesktop.org/wiki/Software/systemd">systemd</a>
926 has been
927 <a href="http://0pointer.de/blog/projects/systemd.html">introduced</a>
928
929 to the free software world. I have not yet had time to play around
930 with it, but it seem to be a very interesting alternative to
931 <a href="http://upstart.ubuntu.com/">upstart</a>, and might prove to be
932 a good alternative for Debian when we are able to switch to an event
933 based boot system. Tollef is
934 <a href="http://bugs.debian.org/580814">in the process</a> of getting
935 systemd into Debian, and I look forward to seeing how well it work. I
936 like the fact that systemd handles init.d scripts with dependency
937 information natively, allowing them to run in parallel where upstart
938 at the moment do not.</p>
939
940 <p>Unfortunately do systemd have the same problem as upstart regarding
941 platform support. It only work on recent Linux kernels, and also need
942 some new kernel features enabled to function properly. This means
943 kFreeBSD and Hurd ports of Debian will need a port or a different boot
944 system. Not sure how that will be handled if systemd proves to be the
945 way forward.</p>
946
947 <p>In the mean time, based on the
948 <a href="http://lists.debian.org/debian-devel/2010/05/msg00122.html">input
949 on debian-devel@</a> regarding parallel booting in Debian, I have
950 decided to enable full parallel booting as the default in Debian as
951 soon as possible (probably this weekend or early next week), to see if
952 there are any remaining serious bugs in the init.d dependencies. A
953 new version of the sysvinit package implementing this change is
954 already in experimental. If all go well, Squeeze will be released
955 with parallel booting enabled by default.</p>
956
957 </div>
958 <div class="tags">
959
960
961 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>.
962
963
964 </div>
965 </div>
966 <div class="padding"></div>
967
968 <div class="entry">
969 <div class="title">
970 <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>
971 </div>
972 <div class="date">
973 6th May 2010
974 </div>
975 <div class="body">
976 <p>These days, the init.d script dependencies in Squeeze are quite
977 complete, so complete that it is actually possible to run all the
978 init.d scripts in parallell based on these dependencies. If you want
979 to test your Squeeze system, make sure
980 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
981 based boot sequencing</a> is enabled, and add this line to
982 /etc/default/rcS:</p>
983
984 <blockquote><pre>
985 CONCURRENCY=makefile
986 </pre></blockquote>
987
988 <p>That is it. It will cause sysv-rc to use the startpar tool to run
989 scripts in parallel using the dependency information stored in
990 /etc/init.d/.depend.boot, /etc/init.d/.depend.start and
991 /etc/init.d/.depend.stop to order the scripts. Startpar is configured
992 to try to start the kdm and gdm scripts as early as possible, and will
993 start the facilities required by kdm or gdm as early as possible to
994 make this happen.</p>
995
996 <p>Give it a try, and see if you like the result. If some services
997 fail to start properly, it is most likely because they have incomplete
998 init.d script dependencies in their startup script (or some of their
999 dependent scripts have incomplete dependencies). Report bugs and get
1000 the package maintainers to fix it. :)</p>
1001
1002 <p>Running scripts in parallel could be the default in Debian when we
1003 manage to get the init.d script dependencies complete and correct. I
1004 expect we will get there in Squeeze+1, if we get manage to test and
1005 fix the remaining issues.</p>
1006
1007 <p>If you report any problems with dependencies in init.d scripts to
1008 the BTS, please usertag the report to get it to show up at
1009 <a href="http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=initscripts-ng-devel@lists.alioth.debian.org">the
1010 list of usertagged bugs related to this</a>.</p>
1011
1012 </div>
1013 <div class="tags">
1014
1015
1016 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>.
1017
1018
1019 </div>
1020 </div>
1021 <div class="padding"></div>
1022
1023 <div class="entry">
1024 <div class="title">
1025 <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>
1026 </div>
1027 <div class="date">
1028 27th July 2009
1029 </div>
1030 <div class="body">
1031 <p>Since this evening, with the upload of sysvinit version 2.87dsf-2,
1032 and the upload of insserv version 1.12.0-10 yesterday, Debian unstable
1033 have been migrated to using dependency based boot sequencing. This
1034 conclude work me and others have been doing for the last three days.
1035 It feels great to see this finally part of the default Debian
1036 installation. Now we just need to weed out the last few problems that
1037 are bound to show up, to get everything ready for Squeeze.</p>
1038
1039 <p>The next step is migrating /sbin/init from sysvinit to upstart, and
1040 fixing the more fundamental problem of handing the event based
1041 non-predictable kernel in the early boot.</p>
1042
1043 </div>
1044 <div class="tags">
1045
1046
1047 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>.
1048
1049
1050 </div>
1051 </div>
1052 <div class="padding"></div>
1053
1054 <div class="entry">
1055 <div class="title">
1056 <a href="http://people.skolelinux.org/pere/blog/Taking_over_sysvinit_development.html">Taking over sysvinit development</a>
1057 </div>
1058 <div class="date">
1059 22nd July 2009
1060 </div>
1061 <div class="body">
1062 <p>After several years of frustration with the lack of activity from
1063 the existing sysvinit upstream developer, I decided a few weeks ago to
1064 take over the package and become the new upstream. The number of
1065 patches to track for the Debian package was becoming a burden, and the
1066 lack of synchronization between the distribution made it hard to keep
1067 the package up to date.</p>
1068
1069 <p>On the new sysvinit team is the SuSe maintainer Dr. Werner Fink,
1070 and my Debian co-maintainer Kel Modderman. About 10 days ago, I made
1071 a new upstream tarball with version number 2.87dsf (for Debian, SuSe
1072 and Fedora), based on the patches currently in use in these
1073 distributions. We Debian maintainers plan to move to this tarball as
1074 the new upstream as soon as we find time to do the merge. Since the
1075 new tarball was created, we agreed with Werner at SuSe to make a new
1076 upstream project at <a href="http://savannah.nongnu.org/">Savannah</a>, and continue
1077 development there. The project is registered and currently waiting
1078 for approval by the Savannah administrators, and as soon as it is
1079 approved, we will import the old versions from svn and continue
1080 working on the future release.</p>
1081
1082 <p>It is a bit ironic that this is done now, when some of the involved
1083 distributions are moving to upstart as a syvinit replacement.</p>
1084
1085 </div>
1086 <div class="tags">
1087
1088
1089 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>.
1090
1091
1092 </div>
1093 </div>
1094 <div class="padding"></div>
1095
1096 <div class="entry">
1097 <div class="title">
1098 <a href="http://people.skolelinux.org/pere/blog/Debian_boots_quicker_and_quicker.html">Debian boots quicker and quicker</a>
1099 </div>
1100 <div class="date">
1101 24th June 2009
1102 </div>
1103 <div class="body">
1104 <p>I spent Monday and tuesday this week in London with a lot of the
1105 people involved in the boot system on Debian and Ubuntu, to see if we
1106 could find more ways to speed up the boot system. This was an Ubuntu
1107 funded
1108 <a href="https://wiki.ubuntu.com/FoundationsTeam/BootPerformance/DebianUbuntuSprint">developer
1109 gathering</a>. It was quite productive. We also discussed the future
1110 of boot systems, and ways to handle the increasing number of boot
1111 issues introduced by the Linux kernel becoming more and more
1112 asynchronous and event base. The Ubuntu approach using udev and
1113 upstart might be a good way forward. Time will show.</p>
1114
1115 <p>Anyway, there are a few ways at the moment to speed up the boot
1116 process in Debian. All of these should be applied to get a quick
1117 boot:</p>
1118
1119 <ul>
1120
1121 <li>Use dash as /bin/sh.</li>
1122
1123 <li>Disable the init.d/hwclock*.sh scripts and make sure the hardware
1124 clock is in UTC.</li>
1125
1126 <li>Install and activate the insserv package to enable
1127 <a href="http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot">dependency
1128 based boot sequencing</a>, and enable concurrent booting.</li>
1129
1130 </ul>
1131
1132 These points are based on the Google summer of code work done by
1133 <a href="http://initscripts-ng.alioth.debian.org/soc2006-bootsystem/">Carlos
1134 Villegas</a>.
1135
1136 <p>Support for makefile-style concurrency during boot was uploaded to
1137 unstable yesterday. When we tested it, we were able to cut 6 seconds
1138 from the boot sequence. It depend on very correct dependency
1139 declaration in all init.d scripts, so I expect us to find edge cases
1140 where the dependences in some scripts are slightly wrong when we start
1141 using this.</p>
1142
1143 <p>On our IRC channel for this effort, #pkg-sysvinit, a new idea was
1144 introduced by Raphael Geissert today, one that could affect the
1145 startup speed as well. Instead of starting some scripts concurrently
1146 from rcS.d/ and another set of scripts from rc2.d/, it would be
1147 possible to run a of them in the same process. A quick way to test
1148 this would be to enable insserv and run 'mv /etc/rc2.d/S* /etc/rcS.d/;
1149 insserv'. Will need to test if that work. :)</p>
1150
1151 </div>
1152 <div class="tags">
1153
1154
1155 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>.
1156
1157
1158 </div>
1159 </div>
1160 <div class="padding"></div>
1161
1162 <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>
1163 <div id="sidebar">
1164
1165
1166
1167 <h2>Archive</h2>
1168 <ul>
1169
1170 <li>2014
1171 <ul>
1172
1173 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/01/">January (2)</a></li>
1174
1175 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/02/">February (3)</a></li>
1176
1177 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/03/">March (8)</a></li>
1178
1179 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/04/">April (7)</a></li>
1180
1181 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/05/">May (1)</a></li>
1182
1183 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/06/">June (2)</a></li>
1184
1185 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/07/">July (2)</a></li>
1186
1187 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/08/">August (2)</a></li>
1188
1189 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/09/">September (5)</a></li>
1190
1191 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/10/">October (6)</a></li>
1192
1193 <li><a href="http://people.skolelinux.org/pere/blog/archive/2014/11/">November (3)</a></li>
1194
1195 </ul></li>
1196
1197 <li>2013
1198 <ul>
1199
1200 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/01/">January (11)</a></li>
1201
1202 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/02/">February (9)</a></li>
1203
1204 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/03/">March (9)</a></li>
1205
1206 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/04/">April (6)</a></li>
1207
1208 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/05/">May (9)</a></li>
1209
1210 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/06/">June (10)</a></li>
1211
1212 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/07/">July (7)</a></li>
1213
1214 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/08/">August (3)</a></li>
1215
1216 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/09/">September (5)</a></li>
1217
1218 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/10/">October (7)</a></li>
1219
1220 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/11/">November (9)</a></li>
1221
1222 <li><a href="http://people.skolelinux.org/pere/blog/archive/2013/12/">December (3)</a></li>
1223
1224 </ul></li>
1225
1226 <li>2012
1227 <ul>
1228
1229 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/01/">January (7)</a></li>
1230
1231 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/02/">February (10)</a></li>
1232
1233 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/03/">March (17)</a></li>
1234
1235 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/04/">April (12)</a></li>
1236
1237 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/05/">May (12)</a></li>
1238
1239 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/06/">June (20)</a></li>
1240
1241 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/07/">July (17)</a></li>
1242
1243 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/08/">August (6)</a></li>
1244
1245 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/09/">September (9)</a></li>
1246
1247 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/10/">October (17)</a></li>
1248
1249 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/11/">November (10)</a></li>
1250
1251 <li><a href="http://people.skolelinux.org/pere/blog/archive/2012/12/">December (7)</a></li>
1252
1253 </ul></li>
1254
1255 <li>2011
1256 <ul>
1257
1258 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/01/">January (16)</a></li>
1259
1260 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/02/">February (6)</a></li>
1261
1262 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/03/">March (6)</a></li>
1263
1264 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/04/">April (7)</a></li>
1265
1266 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/05/">May (3)</a></li>
1267
1268 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/06/">June (2)</a></li>
1269
1270 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/07/">July (7)</a></li>
1271
1272 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/08/">August (6)</a></li>
1273
1274 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/09/">September (4)</a></li>
1275
1276 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/10/">October (2)</a></li>
1277
1278 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/11/">November (3)</a></li>
1279
1280 <li><a href="http://people.skolelinux.org/pere/blog/archive/2011/12/">December (1)</a></li>
1281
1282 </ul></li>
1283
1284 <li>2010
1285 <ul>
1286
1287 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/01/">January (2)</a></li>
1288
1289 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/02/">February (1)</a></li>
1290
1291 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/03/">March (3)</a></li>
1292
1293 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/04/">April (3)</a></li>
1294
1295 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/05/">May (9)</a></li>
1296
1297 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/06/">June (14)</a></li>
1298
1299 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/07/">July (12)</a></li>
1300
1301 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/08/">August (13)</a></li>
1302
1303 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/09/">September (7)</a></li>
1304
1305 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/10/">October (9)</a></li>
1306
1307 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/11/">November (13)</a></li>
1308
1309 <li><a href="http://people.skolelinux.org/pere/blog/archive/2010/12/">December (12)</a></li>
1310
1311 </ul></li>
1312
1313 <li>2009
1314 <ul>
1315
1316 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/01/">January (8)</a></li>
1317
1318 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/02/">February (8)</a></li>
1319
1320 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/03/">March (12)</a></li>
1321
1322 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/04/">April (10)</a></li>
1323
1324 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/05/">May (9)</a></li>
1325
1326 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/06/">June (3)</a></li>
1327
1328 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/07/">July (4)</a></li>
1329
1330 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/08/">August (3)</a></li>
1331
1332 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/09/">September (1)</a></li>
1333
1334 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/10/">October (2)</a></li>
1335
1336 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/11/">November (3)</a></li>
1337
1338 <li><a href="http://people.skolelinux.org/pere/blog/archive/2009/12/">December (3)</a></li>
1339
1340 </ul></li>
1341
1342 <li>2008
1343 <ul>
1344
1345 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/11/">November (5)</a></li>
1346
1347 <li><a href="http://people.skolelinux.org/pere/blog/archive/2008/12/">December (7)</a></li>
1348
1349 </ul></li>
1350
1351 </ul>
1352
1353
1354
1355 <h2>Tags</h2>
1356 <ul>
1357
1358 <li><a href="http://people.skolelinux.org/pere/blog/tags/3d-printer">3d-printer (13)</a></li>
1359
1360 <li><a href="http://people.skolelinux.org/pere/blog/tags/amiga">amiga (1)</a></li>
1361
1362 <li><a href="http://people.skolelinux.org/pere/blog/tags/aros">aros (1)</a></li>
1363
1364 <li><a href="http://people.skolelinux.org/pere/blog/tags/bankid">bankid (4)</a></li>
1365
1366 <li><a href="http://people.skolelinux.org/pere/blog/tags/bitcoin">bitcoin (8)</a></li>
1367
1368 <li><a href="http://people.skolelinux.org/pere/blog/tags/bootsystem">bootsystem (15)</a></li>
1369
1370 <li><a href="http://people.skolelinux.org/pere/blog/tags/bsa">bsa (2)</a></li>
1371
1372 <li><a href="http://people.skolelinux.org/pere/blog/tags/chrpath">chrpath (2)</a></li>
1373
1374 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian">debian (109)</a></li>
1375
1376 <li><a href="http://people.skolelinux.org/pere/blog/tags/debian edu">debian edu (151)</a></li>
1377
1378 <li><a href="http://people.skolelinux.org/pere/blog/tags/digistan">digistan (10)</a></li>
1379
1380 <li><a href="http://people.skolelinux.org/pere/blog/tags/dld">dld (15)</a></li>
1381
1382 <li><a href="http://people.skolelinux.org/pere/blog/tags/docbook">docbook (12)</a></li>
1383
1384 <li><a href="http://people.skolelinux.org/pere/blog/tags/drivstoffpriser">drivstoffpriser (4)</a></li>
1385
1386 <li><a href="http://people.skolelinux.org/pere/blog/tags/english">english (263)</a></li>
1387
1388 <li><a href="http://people.skolelinux.org/pere/blog/tags/fiksgatami">fiksgatami (21)</a></li>
1389
1390 <li><a href="http://people.skolelinux.org/pere/blog/tags/fildeling">fildeling (12)</a></li>
1391
1392 <li><a href="http://people.skolelinux.org/pere/blog/tags/freeculture">freeculture (13)</a></li>
1393
1394 <li><a href="http://people.skolelinux.org/pere/blog/tags/freedombox">freedombox (9)</a></li>
1395
1396 <li><a href="http://people.skolelinux.org/pere/blog/tags/frikanalen">frikanalen (11)</a></li>
1397
1398 <li><a href="http://people.skolelinux.org/pere/blog/tags/intervju">intervju (41)</a></li>
1399
1400 <li><a href="http://people.skolelinux.org/pere/blog/tags/isenkram">isenkram (10)</a></li>
1401
1402 <li><a href="http://people.skolelinux.org/pere/blog/tags/kart">kart (19)</a></li>
1403
1404 <li><a href="http://people.skolelinux.org/pere/blog/tags/ldap">ldap (9)</a></li>
1405
1406 <li><a href="http://people.skolelinux.org/pere/blog/tags/lenker">lenker (8)</a></li>
1407
1408 <li><a href="http://people.skolelinux.org/pere/blog/tags/lsdvd">lsdvd (2)</a></li>
1409
1410 <li><a href="http://people.skolelinux.org/pere/blog/tags/ltsp">ltsp (1)</a></li>
1411
1412 <li><a href="http://people.skolelinux.org/pere/blog/tags/mesh network">mesh network (8)</a></li>
1413
1414 <li><a href="http://people.skolelinux.org/pere/blog/tags/multimedia">multimedia (32)</a></li>
1415
1416 <li><a href="http://people.skolelinux.org/pere/blog/tags/norsk">norsk (249)</a></li>
1417
1418 <li><a href="http://people.skolelinux.org/pere/blog/tags/nuug">nuug (163)</a></li>
1419
1420 <li><a href="http://people.skolelinux.org/pere/blog/tags/offentlig innsyn">offentlig innsyn (11)</a></li>
1421
1422 <li><a href="http://people.skolelinux.org/pere/blog/tags/open311">open311 (2)</a></li>
1423
1424 <li><a href="http://people.skolelinux.org/pere/blog/tags/opphavsrett">opphavsrett (49)</a></li>
1425
1426 <li><a href="http://people.skolelinux.org/pere/blog/tags/personvern">personvern (76)</a></li>
1427
1428 <li><a href="http://people.skolelinux.org/pere/blog/tags/raid">raid (1)</a></li>
1429
1430 <li><a href="http://people.skolelinux.org/pere/blog/tags/reactos">reactos (1)</a></li>
1431
1432 <li><a href="http://people.skolelinux.org/pere/blog/tags/reprap">reprap (11)</a></li>
1433
1434 <li><a href="http://people.skolelinux.org/pere/blog/tags/rfid">rfid (3)</a></li>
1435
1436 <li><a href="http://people.skolelinux.org/pere/blog/tags/robot">robot (9)</a></li>
1437
1438 <li><a href="http://people.skolelinux.org/pere/blog/tags/rss">rss (1)</a></li>
1439
1440 <li><a href="http://people.skolelinux.org/pere/blog/tags/ruter">ruter (4)</a></li>
1441
1442 <li><a href="http://people.skolelinux.org/pere/blog/tags/scraperwiki">scraperwiki (2)</a></li>
1443
1444 <li><a href="http://people.skolelinux.org/pere/blog/tags/sikkerhet">sikkerhet (41)</a></li>
1445
1446 <li><a href="http://people.skolelinux.org/pere/blog/tags/sitesummary">sitesummary (4)</a></li>
1447
1448 <li><a href="http://people.skolelinux.org/pere/blog/tags/skepsis">skepsis (4)</a></li>
1449
1450 <li><a href="http://people.skolelinux.org/pere/blog/tags/standard">standard (46)</a></li>
1451
1452 <li><a href="http://people.skolelinux.org/pere/blog/tags/stavekontroll">stavekontroll (3)</a></li>
1453
1454 <li><a href="http://people.skolelinux.org/pere/blog/tags/stortinget">stortinget (9)</a></li>
1455
1456 <li><a href="http://people.skolelinux.org/pere/blog/tags/surveillance">surveillance (27)</a></li>
1457
1458 <li><a href="http://people.skolelinux.org/pere/blog/tags/sysadmin">sysadmin (2)</a></li>
1459
1460 <li><a href="http://people.skolelinux.org/pere/blog/tags/valg">valg (8)</a></li>
1461
1462 <li><a href="http://people.skolelinux.org/pere/blog/tags/video">video (45)</a></li>
1463
1464 <li><a href="http://people.skolelinux.org/pere/blog/tags/vitenskap">vitenskap (4)</a></li>
1465
1466 <li><a href="http://people.skolelinux.org/pere/blog/tags/web">web (34)</a></li>
1467
1468 </ul>
1469
1470
1471 </div>
1472 <p style="text-align: right">
1473 Created by <a href="http://steve.org.uk/Software/chronicle">Chronicle v4.6</a>
1474 </p>
1475
1476 </body>
1477 </html>