diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-delete-etc-services.service b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-delete-etc-services.service new file mode 100644 index 0000000000..906e0d2e7a --- /dev/null +++ b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/ignition-ostree-delete-etc-services.service @@ -0,0 +1,20 @@ +[Unit] +Description=Delete /etc Service Enablements +DefaultDependencies=false +ConditionKernelCommandLine=|ostree +ConditionPathExists=|/run/ostree-live + +# Really, we don't really expect mount points for /etc, so we could just order +# after initrd-root-fs.target, but meh... doesn't hurt to pretend we support +# that. +After=ignition-mount.service + +# But *before* any user-specified enablement +Before=ignition-files.service + +[Service] +Type=oneshot +RemainAfterExit=yes +# use glob instead of nuking /etc/systemd/system itself so that we don't end up +# recreating it from the initrd as unlabeled for RHCOS +ExecStart=/usr/bin/sh -c "rm -rf /sysroot/etc/systemd/system/*" diff --git a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh index 307ecb8541..c3ed713952 100755 --- a/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh +++ b/overlay.d/05core/usr/lib/dracut/modules.d/40ignition-ostree/module-setup.sh @@ -68,4 +68,6 @@ install() { inst_script "$moddir/coreos-growpart" /usr/libexec/coreos-growpart inst_script "$moddir/coreos-relabel" /usr/bin/coreos-relabel + + install_ignition_unit ignition-ostree-delete-etc-services.service }