[Service]
Type=oneshot
ExecStart=-/bin/dracut-pre-pivot
-ExecStopPost=-/usr/bin/systemctl --no-block isolate initrd-switch-root.target
+ExecStopPost=-/usr/bin/systemctl isolate initrd-switch-root.target
StandardInput=null
StandardOutput=syslog
StandardError=syslog+console
getarg rd.break rdbreak && emergency_shell -n switch_root "Break before switch_root"
-/usr/bin/udevadm control --exit || warn "/usr/bin/udevadm control --exit failed"
-/usr/bin/udevadm info --cleanup-db || warn "/usr/bin/udevadm info --cleanup-db failed"
-
exit 0
inst_simple "$moddir/dracut-pre-pivot.service" ${dracutsystemunitdir}/dracut-pre-pivot.service
ln -fs ../dracut-pre-pivot.service "${initdir}${dracutsystemunitdir}/basic.target.wants/dracut-pre-pivot.service"
+ inst_simple "$moddir/udevadm-cleanup-db.service" ${dracutsystemunitdir}/udevadm-cleanup-db.service
+ mkdir -p "${initdir}${dracutsystemunitdir}/initrd-switch-root.target.requires"
+ ln -fs ../udevadm-cleanup-db.service "${initdir}${dracutsystemunitdir}/initrd-switch-root.target.requires/udevadm-cleanup-db.service"
+
inst_script "$moddir/service-to-run.sh" "${systemdutildir}/system-generators/service-to-run"
}
--- /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.
+
+[Unit]
+Description=Cleanup udevd DB
+DefaultDependencies=no
+ConditionPathExists=/etc/initrd-release
+Conflicts=systemd-udevd.service systemd-udevd-control.socket systemd-udevd-kernel.socket
+Before=initrd-switch-root.service
+
+[Service]
+Type=oneshot
+ExecStart=-/usr/bin/udevadm info --cleanup-db
+StandardInput=null
+StandardOutput=null
+StandardError=null