From: Andrei Borzenkov Subject: ensure pre-mount (and resume) run before root fsck References: bnc#906592 Index: dracut-042/modules.d/98dracut-systemd/rootfs-generator.sh =================================================================== --- dracut-042.orig/modules.d/98dracut-systemd/rootfs-generator.sh 2015-06-11 17:39:47.000000000 +0200 +++ dracut-042/modules.d/98dracut-systemd/rootfs-generator.sh 2015-06-24 18:02:34.526804656 +0200 @@ -65,6 +65,23 @@ generator_mount_rootfs() fi } +generator_fsck_after_pre_mount() +{ + local _name + + [ -z "$1" ] && return 0 + + _name=$(dev_unit_name "$1") + [ -d /run/systemd/generator/systemd-fsck@${_name}.service.d ] || mkdir -p /run/systemd/generator/systemd-fsck@${_name}.service.d + if ! [ -f /run/systemd/generator/systemd-fsck@${_name}.service.d/after-pre-mount.conf ]; then + { + echo "[Unit]" + echo "After=dracut-pre-mount.service" + } > /run/systemd/generator/systemd-fsck@${_name}.service.d/after-pre-mount.conf + fi + +} + root=$(getarg root=) case "$root" in block:LABEL=*|LABEL=*) @@ -95,6 +112,7 @@ GENERATOR_DIR="$1" if [ "${root%%:*}" = "block" ]; then generator_wait_for_dev "${root#block:}" "$RDRETRY" + generator_fsck_after_pre_mount "${root#block:}" strstr "$(cat /proc/cmdline)" 'root=' || generator_mount_rootfs "${root#block:}" "$(getarg rootfstype=)" "$(getarg rootflags=)" fi