DRACUT.BOOTUP(7)

πŸ’… DRACUT.BOOTUP πŸ’…

okay so this little icon is dracut.bootup, section 7 of the dracut manual, and it's literally just the blueprint of how boot goes down inside the initramfs. if you've ever wondered what order everything wakes up in? this is the group chat receipts. 🫢


✨ NAME ✨

dracut.bootup β€” boot ordering in the initramfs, no cap.


πŸ¦‹ DESCRIPTION πŸ¦‹

so this flow chart (yes bestie, the whole page is basically one big chart, and it ate) shows the ordering of the services β€” but only if systemd is used in the dracut initramfs. like, systemd specifically. that's the vibe check. πŸ’…

follow the arrows top to bottom, that's the whole plot:

                                               systemd-journal.socket
                                                          |
                                                          v
                                               dracut-cmdline.service
                                                          |
                                                          v
                                               dracut-pre-udev.service
                                                          |
                                                          v
                                                systemd-udevd.service
                                                          |
                                                          v
           local-fs-pre.target                dracut-pre-trigger.service
                    |                                     |
                    v                                     v
            (various mounts)  (various swap  systemd-udev-trigger.service
                    |           devices...)               |             (various low-level   (various low-level
                    |               |                     |             services: seed,       API VFS mounts:
                    v               v                     v             tmpfiles, random     mqueue, configfs,
             local-fs.target   swap.target     dracut-initqueue.service    sysctl, ...)        debugfs, ...)
                    |               |                     |                    |                    |
                    \_______________|____________________ | ___________________|____________________/
                                                         \|/
                                                          v
                                                   sysinit.target
                                                          |
                                        _________________/|\___________________
                                       /                  |                    \
                                       |                  |                    |
                                       v                  |                    v
                                   (various               |              rescue.service
                                  sockets...)             |                    |
                                       |                  |                    v
                                       v                  |              rescue.target
                                sockets.target            |
                                       |                  |
                                       \_________________ |                                 emergency.service
                                                         \|                                         |
                                                          v                                         v
                                                    basic.target                             emergency.target
                                                          |
                                   ______________________/|
                                  /                       |
                                  |                       v
                                  |            initrd-root-device.target
                                  |                       |
                                  |                       v
                                  |            dracut-pre-mount.service
                                  |                       |
                                  |                       v
                                  |                  sysroot.mount
                                  |                       |
                                  |                       v
                                  |             initrd-root-fs.target
                      (custom initrd services)            |
                                  |                       v
                                  |             dracut-mount.service
                                  |                       |
                                  |                       v
                                  |            initrd-parse-etc.service
                                  |                       |
                                  |                       v
                                  |            (sysroot-usr.mount and
                                  |             various mounts marked
                                  |               with fstab option
                                  |                x-initrd.mount)
                                  |                       |
                                  |                       v
                                  |                initrd-fs.target
                                  \______________________ |
                                                         \|
                                                          v
                                                     initrd.target
                                                          |
                                                          v
                                               dracut-pre-pivot.service
                                                          |
                                                          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

like… it's giving "main character energy" for every single unit in there. systemd-journal.socket starts the whole thing off and switch-root is the final boss. the way that sysinit.target just collects everything into one big \|/ moment? obsessed. 😭πŸ”₯

a couple of bits worth squinting at, because they're easy to miss in the chaos:

  • local-fs-pre.target and dracut-pre-trigger.service both fork off into their own little branches, and local-fs.target has swap.target chillin' next to it (that's the (various swap devices...) lane).
  • dracut-initqueue.service and systemd-udev-trigger.service both funnel into the same \|/ party at sysinit.target, along with those two far-right columns β€” (various low-level services: seed, tmpfiles, random sysctl, ...) and (various low-level API VFS mounts: mqueue, configfs, debugfs, ...). iykyk. πŸ’€
  • sockets.target and (various sockets...) come up out of sysinit.target too, and rescue.service β†’ rescue.target lives on the right. emergency.service β†’ emergency.target sits even further out β€” that's your "everything is on fire" lane, bestie. πŸ™ˆ
  • basic.target then hands off down to initrd-root-device.target β†’ dracut-pre-mount.service β†’ sysroot.mount β†’ initrd-root-fs.target β†’ dracut-mount.service β†’ initrd-parse-etc.service, and that one opens up into (sysroot-usr.mount and various mounts marked with fstab option x-initrd.mount) β†’ initrd-fs.target.
  • meanwhile (custom initrd services) hangs out on the left, quietly doing its thing, and rejoins at initrd.target. 🧚
  • after initrd.target you get dracut-pre-pivot.service β†’ initrd-cleanup.service, which isolates to initrd-switch-root.target. then initrd-udevadm-cleanup-db.service and (custom initrd services) (again! queen of cameos) merge back into initrd-switch-root.target β†’ initrd-switch-root.service β†’ switch-root. periodt. πŸ’…
ngl, the whole thing is basically "we're so back β†’ it's so over β†’ we're so back" but as a dependency graph. follow the arrows, don't skip the arrows. ⭐

πŸ‘‘ AUTHOR πŸ‘‘

Harald Hoyer β€” iconic. thank you for this masterpiece. πŸŽ€


🌈 SEE ALSO 🌈

  • dracut β€” section 8, the main character of the whole manual
  • bootup β€” section 7, external

so yeah, that's the page! source is dracut, version/date stamped 2026-06-01 β€” mwah, slay, go boot something, bestie πŸ’–πŸ¦‹πŸŒΈβœ¨

πŸ“¦ where this page comes from