- <item>
- <title>How is booting into runlevel 1 different from single user boots?</title>
- <link>http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html</link>
- <guid isPermaLink="true">http://people.skolelinux.org/pere/blog/How_is_booting_into_runlevel_1_different_from_single_user_boots_.html</guid>
- <pubDate>Thu, 4 Aug 2011 12:40:00 +0200</pubDate>
- <description><p>Wouter Verhelst have some
-<a href="http://grep.be/blog/en/retorts/pere_kubuntu_boot">interesting
-comments and opinions</a> on my blog post on
-<a href="http://people.skolelinux.org/pere/blog/What_should_start_from__etc_rcS_d__in_Debian____almost_nothing.html">the
-need to clean up /etc/rcS.d/ in Debian</a> and my blog post about
-<a href="http://people.skolelinux.org/pere/blog/What_is_missing_in_the_Debian_desktop__or_why_my_parents_use_Kubuntu.html">the
-default KDE desktop in Debian</a>. I only have time to address one
-small piece of his comment now, and though it best to address the
-misunderstanding he bring forward:</p>
-
-<p><blockquote>
-Currently, a system admin has four options: [...] boot to a
-single-user system (by adding 'single' to the kernel command line;
-this runs rcS and rc1 scripts)
-</blockquote></p>
-
-<p>This make me believe Wouter believe booting into single user mode
-and booting into runlevel 1 is the same. I am not surprised he
-believe this, because it would make sense and is a quite sensible
-thing to believe. But because the boot in Debian is slightly broken,
-runlevel 1 do not work properly and it isn't the same as single user
-mode. I'll try to explain what is actually happing, but it is a bit
-hard to explain.</p>
-
-<p>Single user mode is defined like this in /etc/inittab:
-"<tt>~~:S:wait:/sbin/sulogin</tt>". This means the only thing that is
-executed in single user mode is sulogin. Single user mode is a boot
-state "between" the runlevels, and when booting into single user mode,
-only the scripts in /etc/rcS.d/ are executed before the init process
-enters the single user state. When switching to runlevel 1, the state
-is in fact not ending in runlevel 1, but it passes through runlevel 1
-and end up in the single user mode (see /etc/rc1.d/S03single, which
-runs "init -t1 S" to switch to single user mode at the end of runlevel
-1. It is confusing that the 'S' (single user) init mode is not the
-mode enabled by /etc/rcS.d/ (which is more like the initial boot
-mode).</p>
-
-<p>This summary might make it clearer. When booting for the first
-time into single user mode, the following commands are executed:
-"<tt>/etc/init.d/rc S; /sbin/sulogin</tt>". When booting into
-runlevel 1, the following commands are executed: "<tt>/etc/init.d/rc
-S; /etc/init.d/rc 1; /sbin/sulogin</tt>". A problem show up when
-trying to continue after visiting single user mode. Not all services
-are started again as they should, causing the machine to end up in an
-unpredicatble state. This is why Debian admins recommend rebooting
-after visiting single user mode.</p>
-
-<p>A similar problem with runlevel 1 is caused by the amount of
-scripts executed from /etc/rcS.d/. When switching from say runlevel 2
-to runlevel 1, the services started from /etc/rcS.d/ are not properly
-stopped when passing through the scripts in /etc/rc1.d/, and not
-started again when switching away from runlevel 1 to the runlevels
-2-5. I believe the problem is best fixed by moving all the scripts
-out of /etc/rcS.d/ that are not <strong>required</strong> to get a
-functioning single user mode during boot.</p>
-
-<p>I have spent several years investigating the Debian boot system,
-and discovered this problem a few years ago. I suspect it originates
-from when sysvinit was introduced into Debian, a long time ago.</p>
-</description>
- </item>
-