<refnamediv>
<refname>bootup</refname>
- <refpurpose>The System Bootup Process</refpurpose>
+ <refpurpose>System bootup process</refpurpose>
</refnamediv>
<refsect1>
<para>A number of different components are involved in the
system boot. Immediately after power-up, the system
BIOS will do minimal hardware initialization, and hand
- control over to a boot loader stored on a persistant
+ control over to a boot loader stored on a persistent
storage device. This boot loader will then invoke an
OS kernel from disk (or the network). In the Linux
case this kernel now (optionally) extracts and
storage technologies backing them), and then
(optionally) jumps back into the initrd code which
unmounts/detaches the root file system and the storage
- it resides on. As last step the system powered down.</para>
+ it resides on. As last step the system is powered down.</para>
<para>Additional information about the system boot
process may be found in
target units are available, as listed on
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
- <para>The follow chart is a structural overview of
+ <para>The following chart is a structural overview of
these well-known units and their position in the
boot-up logic. The arrows describe which units are
pulled in and ordered before which other units. Units
v
basic.target
|
- _________________/| emergency.service
- / | |
- | | v
- v v <emphasis>emergency.target</emphasis>
- (various system (various system
- services services)
- required for |
- graphical UIs) v
- | <emphasis>multi-user.target</emphasis>
- | |
- | _________________/
- |/
+ __________________________________/| emergency.service
+ / | | |
+ | | | v
+ v v v <emphasis>emergency.target</emphasis>
+ display- (various system (various system
+ manager.service services services)
+ | required for |
+ | graphical UIs) v
+ | | <emphasis>multi-user.target</emphasis>
+ | | |
+ \_______________ | _________________/
+ \|/
v
<emphasis>graphical.target</emphasis></programlisting>
to them.</para>
</refsect1>
+ <refsect1>
+ <title>Initrd System Manager Bootup</title>
+ <para>The default target in the initrd is the initrd.target. The bootup process is
+ identical to the System Manager Bootup until it reaches basic.target. From there,
+ systemd approaches the special initrd.target. If the root device can be mounted at
+ /sysroot, the sysroot.mount unit becomes active and the initrd-root-fs.target is
+ reached.
+ The initrd-parse-etc.service scans /sysroot/etc/fstab for a possible /usr mountpoint
+ and additional entries marked with the <emphasis>x-initrd.mount</emphasis> option.
+ All entries found are mounted below /sysroot, and the initrd-fs.target is reached.
+ The initrd-cleanup.service isolates to the initrd-switch-root.target, where cleanup
+ services can run. As the very last step, the initrd-switch-root.service is activated,
+ which will cause the system to switch its root to /sysroot.
+ </para>
+
+<programlisting>
+ (identical to System Manager Bootup)
+ :
+ :
+ v
+ basic.target
+ | emergency.service
+ ______________________/| |
+ / | v
+ | sysroot.mount <emphasis>emergency.target</emphasis>
+ | |
+ | v
+ | initrd-root-fs.target
+ | |
+ | v
+ | initrd-parse-etc.service
+ (custom initrd services) |
+ | v
+ | (sysroot-usr.mount and
+ | various mounts marked
+ | with fstab option
+ | x-initrd.mount)
+ | |
+ | v
+ | initrd-fs.target
+ \______________________ |
+ \|
+ v
+ initrd.target
+ |
+ v
+ initrd-cleanup.service
+ isolates to
+ initrd-switch-root.target
+ |
+ v
+ ______________________/|
+ / |
+ | initrd-udevadm-cleanup-db.service
+ | |
+ (custom initrd services) |
+ | |
+ \______________________ |
+ \|
+ v
+ initrd-switch-root.target
+ |
+ v
+ initrd-switch-root.service
+ |
+ v
+ switch-root
+</programlisting>
+ </refsect1>
+
+
<refsect1>
<title>System Manager Shutdown</title>
-<programlisting> (conflicts with (conflicts with
- all system all file system
- services) mounts, swaps,
- | cryptsetup
- | devices, ...)
- | |
- v v
- shutdown.target umount.target
- | |
- \_______ ______/
- \ /
- v
- (various low-level
- services)
- |
- v
- final.target
- |
- __________________________/ \_____________________
- / | | \
- | | | |
- v v v v
-reboot.service poweroff.service halt.service kexec.service
- | | | |
- v v v v
-<emphasis>reboot.target</emphasis> <emphasis>poweroff.target</emphasis> <emphasis>halt.target</emphasis> <emphasis>kexec.target</emphasis></programlisting>
+<programlisting> (conflicts with (conflicts with
+ all system all file system
+ services) mounts, swaps,
+ | cryptsetup
+ | devices, ...)
+ | |
+ v v
+ shutdown.target umount.target
+ | |
+ \_______ ______/
+ \ /
+ v
+ (various low-level
+ services)
+ |
+ v
+ final.target
+ |
+ _____________________________________/ \_________________________________
+ / | | \
+ | | | |
+ v v v v
+systemd-reboot.service systemd-poweroff.service systemd-halt.service systemd-kexec.service
+ | | | |
+ v v v v
+ <emphasis>reboot.target</emphasis> <emphasis>poweroff.target</emphasis> <emphasis>halt.target</emphasis> <emphasis>kexec.target</emphasis></programlisting>
<para>Commonly used system shutdown targets are <emphasis>emphasized</emphasis>.</para>
</refsect1>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>