5.
systemd By starting services and mounting le systems systemd handles the
actual booting of the system. systemd is described in Chapter 8, The systemd
daemon (page 133).
7.1.1
initramfs
initramfs is a small cpio archive that the Kernel can load into a RAM disk. It pro-
vides a minimal Linux environment that enables the execution of programs before the
actual root le system is mounted. This minimal Linux environment is loaded into
memory by BIOS or UEFI routines and does not have specic hardware requirements
other than sufcient memory. The initramfs archive must always provide an exe-
cutable named init that executes the systemd daemon on the root le system for
the boot process to proceed.
Before the root le system can be mounted and the operating system can be started,
the Kernel needs the corresponding drivers to access the device on which the root le
system is located. These drivers may include special drivers for certain kinds of hard
drives or even network drivers to access a network le system. The needed modules
for the root le system may be loaded by init on initramfs. After the modules
are loaded, udev provides the initramfs with the needed devices. Later in the boot
process, after changing the root le system, it is necessary to regenerate the devices.
This is done by the systemd unit udev.service with the command
udevtrigger.
If you need to change hardware (for example hard disks) in an installed system and this
hardware requires different drivers to be present in the Kernel at boot time, you must
update initramfs. This is done by calling mkinitrd. Calling mkinitrd without
any argument creates an initramfs. Calling mkinitrd -R creates an init exe-
cutable. In openSUSE®, the modules to load are specied by the variable
INITRD_MODULES in /etc/sysconfig/kernel. After installation, this variable
is automatically set to the correct value. The modules are loaded in exactly the order
in which they appear in INITRD_MODULES.
Booting a Linux System 129