diff --git a/Makefile b/Makefile index 41ae2740d0..916b50e6fa 100644 --- a/Makefile +++ b/Makefile @@ -28,14 +28,14 @@ man8pages = dracut.8 \ 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) @@ -124,7 +124,7 @@ ifneq ($(enable_documentation),no) 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; \ @@ -138,7 +138,7 @@ endif 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 \ diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/00systemd/module-setup.sh similarity index 78% rename from modules.d/98systemd/module-setup.sh rename to modules.d/00systemd/module-setup.sh index 761349f6e3..3852ff7e2d 100755 --- a/modules.d/98systemd/module-setup.sh +++ b/modules.d/00systemd/module-setup.sh @@ -51,9 +51,6 @@ install() { $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 \ @@ -115,12 +112,9 @@ install() { $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 \ @@ -185,24 +179,6 @@ install() { 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" @@ -215,8 +191,7 @@ install() { for i in \ emergency.target \ - dracut-emergency.service \ - rescue.service \ + rescue.target \ systemd-ask-password-console.service \ systemd-ask-password-plymouth.service \ ; do @@ -225,24 +200,6 @@ install() { "${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 { diff --git a/modules.d/01systemd-initrd/module-setup.sh b/modules.d/01systemd-initrd/module-setup.sh new file mode 100755 index 0000000000..ca1f456d60 --- /dev/null +++ b/modules.d/01systemd-initrd/module-setup.sh @@ -0,0 +1,40 @@ +#!/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" +} + diff --git a/modules.d/98systemd/dracut-cmdline-ask.service b/modules.d/98dracut-systemd/dracut-cmdline-ask.service similarity index 100% rename from modules.d/98systemd/dracut-cmdline-ask.service rename to modules.d/98dracut-systemd/dracut-cmdline-ask.service diff --git a/modules.d/98systemd/dracut-cmdline-ask.sh b/modules.d/98dracut-systemd/dracut-cmdline-ask.sh similarity index 100% rename from modules.d/98systemd/dracut-cmdline-ask.sh rename to modules.d/98dracut-systemd/dracut-cmdline-ask.sh diff --git a/modules.d/98systemd/dracut-cmdline.service b/modules.d/98dracut-systemd/dracut-cmdline.service similarity index 100% rename from modules.d/98systemd/dracut-cmdline.service rename to modules.d/98dracut-systemd/dracut-cmdline.service diff --git a/modules.d/98systemd/dracut-cmdline.service.8.asc b/modules.d/98dracut-systemd/dracut-cmdline.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-cmdline.service.8.asc rename to modules.d/98dracut-systemd/dracut-cmdline.service.8.asc diff --git a/modules.d/98systemd/dracut-cmdline.sh b/modules.d/98dracut-systemd/dracut-cmdline.sh similarity index 100% rename from modules.d/98systemd/dracut-cmdline.sh rename to modules.d/98dracut-systemd/dracut-cmdline.sh diff --git a/modules.d/98systemd/dracut-emergency.service b/modules.d/98dracut-systemd/dracut-emergency.service similarity index 100% rename from modules.d/98systemd/dracut-emergency.service rename to modules.d/98dracut-systemd/dracut-emergency.service diff --git a/modules.d/98systemd/dracut-emergency.sh b/modules.d/98dracut-systemd/dracut-emergency.sh similarity index 100% rename from modules.d/98systemd/dracut-emergency.sh rename to modules.d/98dracut-systemd/dracut-emergency.sh diff --git a/modules.d/98systemd/dracut-initqueue.service b/modules.d/98dracut-systemd/dracut-initqueue.service similarity index 100% rename from modules.d/98systemd/dracut-initqueue.service rename to modules.d/98dracut-systemd/dracut-initqueue.service diff --git a/modules.d/98systemd/dracut-initqueue.service.8.asc b/modules.d/98dracut-systemd/dracut-initqueue.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-initqueue.service.8.asc rename to modules.d/98dracut-systemd/dracut-initqueue.service.8.asc diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98dracut-systemd/dracut-initqueue.sh similarity index 100% rename from modules.d/98systemd/dracut-initqueue.sh rename to modules.d/98dracut-systemd/dracut-initqueue.sh diff --git a/modules.d/98systemd/dracut-mount.service b/modules.d/98dracut-systemd/dracut-mount.service similarity index 100% rename from modules.d/98systemd/dracut-mount.service rename to modules.d/98dracut-systemd/dracut-mount.service diff --git a/modules.d/98systemd/dracut-mount.service.8.asc b/modules.d/98dracut-systemd/dracut-mount.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-mount.service.8.asc rename to modules.d/98dracut-systemd/dracut-mount.service.8.asc diff --git a/modules.d/98systemd/dracut-mount.sh b/modules.d/98dracut-systemd/dracut-mount.sh similarity index 100% rename from modules.d/98systemd/dracut-mount.sh rename to modules.d/98dracut-systemd/dracut-mount.sh diff --git a/modules.d/98systemd/dracut-pre-mount.service b/modules.d/98dracut-systemd/dracut-pre-mount.service similarity index 100% rename from modules.d/98systemd/dracut-pre-mount.service rename to modules.d/98dracut-systemd/dracut-pre-mount.service diff --git a/modules.d/98systemd/dracut-pre-mount.service.8.asc b/modules.d/98dracut-systemd/dracut-pre-mount.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-pre-mount.service.8.asc rename to modules.d/98dracut-systemd/dracut-pre-mount.service.8.asc diff --git a/modules.d/98systemd/dracut-pre-mount.sh b/modules.d/98dracut-systemd/dracut-pre-mount.sh similarity index 100% rename from modules.d/98systemd/dracut-pre-mount.sh rename to modules.d/98dracut-systemd/dracut-pre-mount.sh diff --git a/modules.d/98systemd/dracut-pre-pivot.service b/modules.d/98dracut-systemd/dracut-pre-pivot.service similarity index 100% rename from modules.d/98systemd/dracut-pre-pivot.service rename to modules.d/98dracut-systemd/dracut-pre-pivot.service diff --git a/modules.d/98systemd/dracut-pre-pivot.service.8.asc b/modules.d/98dracut-systemd/dracut-pre-pivot.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-pre-pivot.service.8.asc rename to modules.d/98dracut-systemd/dracut-pre-pivot.service.8.asc diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98dracut-systemd/dracut-pre-pivot.sh similarity index 100% rename from modules.d/98systemd/dracut-pre-pivot.sh rename to modules.d/98dracut-systemd/dracut-pre-pivot.sh diff --git a/modules.d/98systemd/dracut-pre-trigger.service b/modules.d/98dracut-systemd/dracut-pre-trigger.service similarity index 100% rename from modules.d/98systemd/dracut-pre-trigger.service rename to modules.d/98dracut-systemd/dracut-pre-trigger.service diff --git a/modules.d/98systemd/dracut-pre-trigger.service.8.asc b/modules.d/98dracut-systemd/dracut-pre-trigger.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-pre-trigger.service.8.asc rename to modules.d/98dracut-systemd/dracut-pre-trigger.service.8.asc diff --git a/modules.d/98systemd/dracut-pre-trigger.sh b/modules.d/98dracut-systemd/dracut-pre-trigger.sh similarity index 100% rename from modules.d/98systemd/dracut-pre-trigger.sh rename to modules.d/98dracut-systemd/dracut-pre-trigger.sh diff --git a/modules.d/98systemd/dracut-pre-udev.service b/modules.d/98dracut-systemd/dracut-pre-udev.service similarity index 100% rename from modules.d/98systemd/dracut-pre-udev.service rename to modules.d/98dracut-systemd/dracut-pre-udev.service diff --git a/modules.d/98systemd/dracut-pre-udev.service.8.asc b/modules.d/98dracut-systemd/dracut-pre-udev.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-pre-udev.service.8.asc rename to modules.d/98dracut-systemd/dracut-pre-udev.service.8.asc diff --git a/modules.d/98systemd/dracut-pre-udev.sh b/modules.d/98dracut-systemd/dracut-pre-udev.sh similarity index 100% rename from modules.d/98systemd/dracut-pre-udev.sh rename to modules.d/98dracut-systemd/dracut-pre-udev.sh diff --git a/modules.d/98systemd/dracut-shutdown.service b/modules.d/98dracut-systemd/dracut-shutdown.service similarity index 100% rename from modules.d/98systemd/dracut-shutdown.service rename to modules.d/98dracut-systemd/dracut-shutdown.service diff --git a/modules.d/98systemd/dracut-shutdown.service.8.asc b/modules.d/98dracut-systemd/dracut-shutdown.service.8.asc similarity index 100% rename from modules.d/98systemd/dracut-shutdown.service.8.asc rename to modules.d/98dracut-systemd/dracut-shutdown.service.8.asc diff --git a/modules.d/98systemd/dracut-tmpfiles.conf b/modules.d/98dracut-systemd/dracut-tmpfiles.conf similarity index 100% rename from modules.d/98systemd/dracut-tmpfiles.conf rename to modules.d/98dracut-systemd/dracut-tmpfiles.conf diff --git a/modules.d/98systemd/emergency.service b/modules.d/98dracut-systemd/emergency.service similarity index 100% rename from modules.d/98systemd/emergency.service rename to modules.d/98dracut-systemd/emergency.service diff --git a/modules.d/98dracut-systemd/module-setup.sh b/modules.d/98dracut-systemd/module-setup.sh new file mode 100644 index 0000000000..d9175573c7 --- /dev/null +++ b/modules.d/98dracut-systemd/module-setup.sh @@ -0,0 +1,74 @@ +#!/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" +} + diff --git a/modules.d/98systemd/rootfs-generator.sh b/modules.d/98dracut-systemd/rootfs-generator.sh similarity index 100% rename from modules.d/98systemd/rootfs-generator.sh rename to modules.d/98dracut-systemd/rootfs-generator.sh diff --git a/modules.d/98systemd/initrd.target b/modules.d/98systemd/initrd.target deleted file mode 100644 index 4b7e7da770..0000000000 --- a/modules.d/98systemd/initrd.target +++ /dev/null @@ -1,9 +0,0 @@ -[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 diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service deleted file mode 100644 index edc246190e..0000000000 --- a/modules.d/98systemd/rescue.service +++ /dev/null @@ -1,32 +0,0 @@ -# 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