Search:  
Gentoo Wiki

Sysinit


Please format this article according to the guidelines and Wikification suggestions, then remove this notice {{Wikify}} from the article


The system initialization process

The inittab configuration file contains the following entry:

si::sysinit:/sbin/rc sysinit

This line tells the init process to run to initialize the system using the rc script using the sysinit parameter.

The init process sets the following environmental variables, before invoking the rc script:

PATH = /bin:/usr/bin:/sbin:/usr/sbin
INIT_VERSION = sysvinit-2.86
RUNLEVEL = S
PREVLEVEL = N
CONSOLE = /dev/console

The init process now invokes the rc script with the sysinit command line parameter, which causes the script to take the following actions:


rcsigtrap Configure the signal trap

Set the umask to 022

functions.sh Obtain definitions and functions from the functions.sh include file

RC_INTERACTIVE Set the RC_INTERACTIVE flag to "yes" if possible

Define try, check_statedir, noblock_read, user_want_interactive, do_interactive, get_critical_services, and check_critical_services functions.

Set argv1 to the "sysinit" (passed as a parameter from inittab by the init daemon.)

Configure the initial system path

Prepare some recovery console devices

Sets the console logging level using dmesg with RC_DMESG_LEVEL set to 1 from (/etc/conf.d/rc via functions.sh)

Display the welcome message

Display "Press I for interactive mode" (If RC_INTERACTIVE is set to "yes")

Mount procfs !/proc

Read the kernel command line, looking for special settings

Mount sysfs !/sys

Examine RC_DEVICES, bootparms, and kernel version, to determine whether to use devfs or udev or static devices.

Start udevd using the start_addon function (this runs udev-start.sh)

Start devfs using the start_addon function (this runs devfs-start.sh)

Display failure information messages if udev or devfs failed to configure

Create and mount !/dev/pts

Export the BOOT flag as a "yes" value

Run the setup_defaultlevels function to configure a forced SOFTLEVEL from the kernel command line

Compile a list of criticalservices using the get_critical_services function

Update the splashscreen

Start the criticalservices using the start_critical_service function (in a loop)

Notify the init process of a runlevel change using [telinit].

Start RAID and LVM related addon processes.

Save bootlog output using bootlog sync.

Mount tmpfs, ramfs or ramdisk directories.

Ensure criticalservices are in the boot runlevel.

Use depscan.sh to perform a dependency scan.

Mark criticalservices as started

Display an error if !/dev/null or !/dev/console are missing

Initialize !/var/run/utmp and !/var/log/wtmp

Remove !/var/run/utmpx

Issue a quit command to bootlog

See also

bootinit The initial bootwait process

Retrieved from "http://www.gentoo-wiki.info/Sysinit"

Last modified: Mon, 08 Sep 2008 19:44:00 +0000 Hits: 2,907