chiark / gitweb /
Make initrd.target the default target in the initrd
[elogind.git] / man / bootup.xml
index ae84cff0b79d82ba5c049b5652ba2418e24aa3c7..6bd22ef476c73743e6a441fc9691f45ddf48451c 100644 (file)
@@ -44,7 +44,7 @@
 
         <refnamediv>
                 <refname>bootup</refname>
-                <refpurpose>The System Bootup Process</refpurpose>
+                <refpurpose>System bootup process</refpurpose>
         </refnamediv>
 
         <refsect1>
@@ -53,7 +53,7 @@
                 <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
@@ -73,7 +73,7 @@
                 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>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>
 
 
 
 
-<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>
@@ -219,7 +292,8 @@ reboot.service    poweroff.service   halt.service   kexec.service
                         <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>