<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
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>Systemd in the Initrd</title>
+ <para>If the initrd creation tool used the services provided
+ by systemd, the default target in the initrd is the
+ initrd-fs.target. The process is the same as above until the basic.target is reached.
+ Systemd now continues to the initrd.target. If the root device could be mounted
+ on /sysroot, the sysroot.mount unit is active and the initrd-root-fs.target is reached.
+ initrd-parse-etc.service scans /sysroot/etc/fstab for the /usr mountpoint and for entries
+ marked with the <emphasis>x-initrd.mount</emphasis> option set. If these mountpoint are
+ mounted in /sysroot, the initrd-fs.target is reached.
+ The initrd-cleanup.service isolates to the initrd-switch-root.target,
+ where cleanup services can run. At the very last end
+ initrd-switch-root.service is activated, which will cause
+ the system to switch root to /sysroot.
+ </para>
+
+<programlisting>
+ (same as above)
+ :
+ :
+ 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>
<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>