From 6c9484f61440b71301f43cfa912fb9f1113352b1 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Fri, 26 Jun 2015 16:55:56 +0200 Subject: [PATCH] ensure pre-mount (and resume) run before root fsck References: https://bugzilla.suse.com/show_bug.cgi?id=906592 Signed-off-by: Thomas Renninger --- modules.d/98dracut-systemd/rootfs-generator.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules.d/98dracut-systemd/rootfs-generator.sh b/modules.d/98dracut-systemd/rootfs-generator.sh index 670613e..5e79d0b 100755 --- a/modules.d/98dracut-systemd/rootfs-generator.sh +++ b/modules.d/98dracut-systemd/rootfs-generator.sh @@ -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 [ "$rootok" = "1" ]; 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