dracut/0165-Order-root-fsck-after-pre-mount.patch

40 lines
1.3 KiB
Diff
Raw Normal View History

From: Andrei Borzenkov <arvidjaar@gmail.com>
Subject: ensure pre-mount (and resume) run before root fsck
References: bnc#906592
Index: dracut-041/modules.d/98systemd/rootfs-generator.sh
===================================================================
--- dracut-041.orig/modules.d/98systemd/rootfs-generator.sh 2015-01-31 12:54:52.000000000 +0100
+++ dracut-041/modules.d/98systemd/rootfs-generator.sh 2015-03-24 15:17:43.364304355 +0100
@@ -64,6 +64,23 @@
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=*)
@@ -92,6 +109,7 @@
if [ "${root%%:*}" = "block" ]; then
generator_wait_for_dev "${root#block:}" "$RDRETRY"
+ generator_fsck_after_pre_mount "${root#block:}"
grep -q 'root=' /proc/cmdline || generator_mount_rootfs "${root#block:}" "$(getarg rootfstype=)" "$(getarg rootflags=)"
fi