- | | | | |
- \__________________|_________________ | ___________________|____________________/
- \|/
- v
- sysinit.target
- |
- _________________/|\___________________
- / | \
- | | |
- v | v
- (various | rescue.service
- sockets...) | |
- | | v
- v | <emphasis>rescue.target</emphasis>
- sockets.target |
- | |
- \_________________ |
- \|
- v
- basic.target
- |
- __________________________________/| 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>
-
- <para>Target units that are commonly used as boot
- targets are <emphasis>emphasized</emphasis>. These
- units are good choices as goal targets, for
- example by passing them to the
- <varname>systemd.unit=</varname> kernel command line
- option (see
- <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
- or by symlinking <filename>default.target</filename>
- 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>
-
- <para>System shutdown also consists of various target
- units with some minimal ordering structure
- applied:</para>
-
-
-
-
-<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
+ | | | | |
+ \__________________|_________________ | ___________________|____________________/
+ \|/
+ v
+ sysinit.target
+ |
+ ____________________________________/|\________________________________________
+ / | | | \
+ | | | | |
+ v v | v v
+ (various (various | (various rescue.service
+ timers...) paths...) | sockets...) |
+ | | | | v
+ v v | v <emphasis>rescue.target</emphasis>
+ timers.target paths.target | sockets.target
+ | | | |
+ v |_________________ | ___________________/
+ \|/
+ v
+ basic.target
+ |
+ ____________________________________/| 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>
+
+ <para>Target units that are commonly used as boot targets are
+ <emphasis>emphasized</emphasis>. These units are good choices as
+ goal targets, for example by passing them to the
+ <varname>systemd.unit=</varname> kernel command line option (see
+ <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
+ or by symlinking <filename>default.target</filename> to
+ them.</para>
+
+ <para><filename>timers.target</filename> is pulled-in by
+ <filename>basic.target</filename> asynchronously. This allows
+ timers units to depend on services which become only available
+ later in boot.</para>
+ </refsect1>
+
+ <refsect1>
+ <title>Bootup in the Initial RAM Disk (initrd)</title>
+ <para>The initial RAM disk implementation (initrd) can be set up
+ using systemd as well. In this case, boot up inside the initrd
+ follows the following structure.</para>
+
+ <para>The default target in the initrd is
+ <filename>initrd.target</filename>. The bootup process begins
+ identical to the system manager bootup (see above) until it
+ reaches <filename>basic.target</filename>. From there, systemd
+ approaches the special target <filename>initrd.target</filename>.
+ If the root device can be mounted at
+ <filename>/sysroot</filename>, the
+ <filename>sysroot.mount</filename> unit becomes active and
+ <filename>initrd-root-fs.target</filename> is reached. The service
+ <filename>initrd-parse-etc.service</filename> scans
+ <filename>/sysroot/etc/fstab</filename> for a possible
+ <filename>/usr</filename> mount point and additional entries
+ marked with the <emphasis>x-initrd.mount</emphasis> option. All
+ entries found are mounted below <filename>/sysroot</filename>, and
+ <filename>initrd-fs.target</filename> is reached. The service
+ <filename>initrd-cleanup.service</filename> isolates to the
+ <filename>initrd-switch-root.target</filename>, where cleanup
+ services can run. As the very last step, the
+ <filename>initrd-switch-root.service</filename> is activated,
+ which will cause the system to switch its root to
+ <filename>/sysroot</filename>.
+ </para>
+
+<programlisting> : (beginning identical to above)
+ :
+ v
+ basic.target
+ | emergency.service
+ ______________________/| |
+ / | v
+ | sysroot.mount <emphasis>emergency.target</emphasis>
+ | |
+ | v
+ | initrd-root-fs.target
+ | |
+ | v
+ 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
+ ______________________/|
+ / v
+ | initrd-udevadm-cleanup-db.service
+ v |
+ (custom initrd |
+ services...) |
+ \______________________ |
+ \|
+ v
+ initrd-switch-root.target
+ |
+ v
+ initrd-switch-root.service
+ |
+ v
+ Transition to Host OS</programlisting>
+ </refsect1>
+
+
+ <refsect1>
+ <title>System Manager Shutdown</title>
+
+ <para>System shutdown with systemd also consists of various target
+ units with some minimal ordering structure applied:</para>
+
+<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