Wouter Verhelst have some
-interesting
-comments and opinions on my blog post on
-the
-need to clean up /etc/rcS.d/ in Debian and my blog post about
-the
-default KDE desktop in Debian. I only have time to address one
-small piece of his comment now, and though it best to address the
-misunderstanding he bring forward:
-
-
-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)
-
-
-
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.
-
-
Single user mode is defined like this in /etc/inittab:
-"~~:S:wait:/sbin/sulogin". 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).
-
-
This summary might make it clearer. When booting for the first
-time into single user mode, the following commands are executed:
-"/etc/init.d/rc S; /sbin/sulogin". When booting into
-runlevel 1, the following commands are executed: "/etc/init.d/rc
-S; /etc/init.d/rc 1; /sbin/sulogin". 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.
-
-
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 required to get a
-functioning single user mode during boot.
-
-
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.
-