Basic systemd functionality is in 00systemd now.
Switching root and the initrd.target is in 00systemd-initrd.
Dracut additions to the systemd initrd are in 98dracut-systemd.
dracut-catimages.8 \
mkinitrd.8 \
mkinitrd-suse.8 \
- modules.d/98systemd/dracut-cmdline.service.8 \
- modules.d/98systemd/dracut-initqueue.service.8 \
- modules.d/98systemd/dracut-mount.service.8 \
- modules.d/98systemd/dracut-shutdown.service.8 \
- modules.d/98systemd/dracut-pre-mount.service.8 \
- modules.d/98systemd/dracut-pre-pivot.service.8 \
- modules.d/98systemd/dracut-pre-trigger.service.8 \
- modules.d/98systemd/dracut-pre-udev.service.8
+ modules.d/98dracut-systemd/dracut-cmdline.service.8 \
+ modules.d/98dracut-systemd/dracut-initqueue.service.8 \
+ modules.d/98dracut-systemd/dracut-mount.service.8 \
+ modules.d/98dracut-systemd/dracut-shutdown.service.8 \
+ modules.d/98dracut-systemd/dracut-pre-mount.service.8 \
+ modules.d/98dracut-systemd/dracut-pre-pivot.service.8 \
+ modules.d/98dracut-systemd/dracut-pre-trigger.service.8 \
+ modules.d/98dracut-systemd/dracut-pre-udev.service.8
manpages = $(man1pages) $(man5pages) $(man7pages) $(man8pages)
endif
if [ -n "$(systemdsystemunitdir)" ]; then \
mkdir -p $(DESTDIR)$(systemdsystemunitdir); \
- ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98systemd/dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \
+ ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/dracut-shutdown.service $(DESTDIR)$(systemdsystemunitdir)/dracut-shutdown.service; \
mkdir -p $(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants; \
ln -s ../dracut-shutdown.service \
$(DESTDIR)$(systemdsystemunitdir)/sysinit.target.wants/dracut-shutdown.service; \
dracut-pre-trigger.service \
dracut-pre-udev.service \
; do \
- ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98systemd/$$i $(DESTDIR)$(systemdsystemunitdir); \
+ ln -srf $(DESTDIR)$(pkglibdir)/modules.d/98dracut-systemd/$$i $(DESTDIR)$(systemdsystemunitdir); \
ln -s ../$$i \
$(DESTDIR)$(systemdsystemunitdir)/initrd.target.wants/$$i; \
done \
$systemdsystemunitdir/basic.target \
$systemdsystemunitdir/halt.target \
$systemdsystemunitdir/kexec.target \
- $systemdsystemunitdir/initrd.target \
- $systemdsystemunitdir/initrd-fs.target \
- $systemdsystemunitdir/initrd-root-fs.target \
$systemdsystemunitdir/local-fs.target \
$systemdsystemunitdir/local-fs-pre.target \
$systemdsystemunitdir/remote-fs.target \
$systemdsystemunitdir/sysinit.target.wants/systemd-sysctl.service \
\
$systemdsystemunitdir/ctrl-alt-del.target \
+ $systemdsystemunitdir/reboot.target \
+ $systemdsystemunitdir/systemd-reboot.service \
$systemdsystemunitdir/syslog.socket \
- $systemdsystemunitdir/initrd-switch-root.target \
- $systemdsystemunitdir/initrd-switch-root.service \
- $systemdsystemunitdir/initrd-cleanup.service \
- $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \
- $systemdsystemunitdir/initrd-parse-etc.service \
\
$systemdsystemunitdir/slices.target \
$systemdsystemunitdir/system.slice \
ln_r $systemdutildir/systemd "/init"
ln_r $systemdutildir/systemd "/sbin/init"
- inst_script "$moddir/dracut-emergency.sh" /bin/dracut-emergency
- inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/emergency.service
- inst_simple "$moddir/dracut-emergency.service" ${systemdsystemunitdir}/dracut-emergency.service
- inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/rescue.service
-
- ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
-
- inst_script "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline
- inst_script "$moddir/dracut-cmdline-ask.sh" /bin/dracut-cmdline-ask
- inst_script "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev
- inst_script "$moddir/dracut-pre-trigger.sh" /bin/dracut-pre-trigger
- inst_script "$moddir/dracut-initqueue.sh" /bin/dracut-initqueue
- inst_script "$moddir/dracut-pre-mount.sh" /bin/dracut-pre-mount
- inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
- inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
-
- inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator
-
inst_binary true
ln_r $(type -P true) "/usr/bin/loginctl"
ln_r $(type -P true) "/bin/loginctl"
for i in \
emergency.target \
- dracut-emergency.service \
- rescue.service \
+ rescue.target \
systemd-ask-password-console.service \
systemd-ask-password-plymouth.service \
; do
"${systemdsystemunitdir}/${i}.wants/systemd-vconsole-setup.service"
done
- mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
- for i in \
- dracut-cmdline.service \
- dracut-cmdline-ask.service \
- dracut-initqueue.service \
- dracut-mount.service \
- dracut-pre-mount.service \
- dracut-pre-pivot.service \
- dracut-pre-trigger.service \
- dracut-pre-udev.service \
- ; do
- inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}"
- ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}"
- done
-
- inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
-
-
mkdir -p "$initdir/etc/systemd"
# turn off RateLimit for journal
{
--- /dev/null
+#!/bin/bash
+
+# called by dracut
+check() {
+ [[ $mount_needs ]] && return 1
+
+ if ! dracut_module_included "systemd"; then
+ derror "dracut-systemd needs systemd in the initramfs"
+ return 1
+ fi
+
+ return 0
+}
+
+# called by dracut
+depends() {
+ echo "systemd"
+}
+
+installkernel() {
+ return 0
+}
+
+# called by dracut
+install() {
+ local _mods
+
+ inst_multiple -o \
+ $systemdsystemunitdir/initrd.target \
+ $systemdsystemunitdir/initrd-fs.target \
+ $systemdsystemunitdir/initrd-root-fs.target \
+ $systemdsystemunitdir/initrd-switch-root.target \
+ $systemdsystemunitdir/initrd-switch-root.service \
+ $systemdsystemunitdir/initrd-cleanup.service \
+ $systemdsystemunitdir/initrd-udevadm-cleanup-db.service \
+ $systemdsystemunitdir/initrd-parse-etc.service
+
+ ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
+}
+
--- /dev/null
+#!/bin/bash
+
+# called by dracut
+check() {
+ [[ $mount_needs ]] && return 1
+
+ if ! dracut_module_included "systemd-initrd"; then
+ derror "dracut-systemd needs systemd-initrd in the initramfs"
+ return 1
+ fi
+
+ return 0
+}
+
+# called by dracut
+depends() {
+ echo "systemd-initrd"
+ return 0
+}
+
+installkernel() {
+ return 0
+}
+
+# called by dracut
+install() {
+ local _mods
+ inst_script "$moddir/dracut-emergency.sh" /bin/dracut-emergency
+ inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/emergency.service
+ inst_simple "$moddir/dracut-emergency.service" ${systemdsystemunitdir}/dracut-emergency.service
+ inst_simple "$moddir/emergency.service" ${systemdsystemunitdir}/rescue.service
+
+ ln_r "${systemdsystemunitdir}/initrd.target" "${systemdsystemunitdir}/default.target"
+
+ inst_script "$moddir/dracut-cmdline.sh" /bin/dracut-cmdline
+ inst_script "$moddir/dracut-cmdline-ask.sh" /bin/dracut-cmdline-ask
+ inst_script "$moddir/dracut-pre-udev.sh" /bin/dracut-pre-udev
+ inst_script "$moddir/dracut-pre-trigger.sh" /bin/dracut-pre-trigger
+ inst_script "$moddir/dracut-initqueue.sh" /bin/dracut-initqueue
+ inst_script "$moddir/dracut-pre-mount.sh" /bin/dracut-pre-mount
+ inst_script "$moddir/dracut-mount.sh" /bin/dracut-mount
+ inst_script "$moddir/dracut-pre-pivot.sh" /bin/dracut-pre-pivot
+
+ inst_script "$moddir/rootfs-generator.sh" $systemdutildir/system-generators/dracut-rootfs-generator
+
+ for i in \
+ emergency.target \
+ rescue.service \
+ systemd-ask-password-console.service \
+ systemd-ask-password-plymouth.service \
+ ; do
+ mkdir -p "${initdir}${systemdsystemunitdir}/${i}.wants"
+ ln_r "${systemdsystemunitdir}/systemd-vconsole-setup.service" \
+ "${systemdsystemunitdir}/${i}.wants/systemd-vconsole-setup.service"
+ done
+
+ mkdir -p "${initdir}/$systemdsystemunitdir/initrd.target.wants"
+ for i in \
+ dracut-cmdline.service \
+ dracut-cmdline-ask.service \
+ dracut-initqueue.service \
+ dracut-mount.service \
+ dracut-pre-mount.service \
+ dracut-pre-pivot.service \
+ dracut-pre-trigger.service \
+ dracut-pre-udev.service \
+ ; do
+ inst_simple "$moddir/${i}" "$systemdsystemunitdir/${i}"
+ ln_r "$systemdsystemunitdir/${i}" "$systemdsystemunitdir/initrd.target.wants/${i}"
+ done
+
+ inst_simple "$moddir/dracut-tmpfiles.conf" "$tmpfilesdir/dracut-tmpfiles.conf"
+}
+
+++ /dev/null
-[Unit]
-Description=Initrd Target
-Requires=basic.target
-Conflicts=rescue.service rescue.target
-After=basic.target rescue.service rescue.target
-AllowIsolate=yes
-OnFailure=emergency.target
-OnFailureIsolate=yes
-ConditionPathExists=/usr/lib/initrd-release
+++ /dev/null
-# This file is part of systemd.
-#
-# systemd is free software; you can redistribute it and/or modify it
-# under the terms of the GNU Lesser General Public License as published by
-# the Free Software Foundation; either version 2.1 of the License, or
-# (at your option) any later version.
-
-# See systemd.special(7) for details
-
-[Unit]
-Description=Rescue Shell
-DefaultDependencies=no
-
-[Service]
-Environment=HOME=/
-Environment=DRACUT_SYSTEMD=1
-Environment=NEWROOT=/sysroot
-WorkingDirectory=/
-ExecStartPre=-/bin/plymouth quit
-ExecStart=-/bin/sh -i -l
-ExecStopPost=-/bin/rm -f -- /.console_lock
-ExecStopPost=-/usr/bin/systemctl --fail --no-block default
-Type=idle
-StandardInput=tty-force
-StandardOutput=inherit
-StandardError=inherit
-KillMode=process
-IgnoreSIGPIPE=no
-
-# Bash ignores SIGTERM, so we send SIGHUP instead, to ensure that bash
-# terminates cleanly.
-KillSignal=SIGHUP