From 0a325292d78c23239a52eb85ca39db343d7db115 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Fri, 5 Sep 2014 14:38:52 +0200 Subject: [PATCH] dracut: Always start mdraids --- lfs/dracut | 1 + .../dracut-038-always-enable-mdraid.patch | 55 +++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 src/patches/dracut-038-always-enable-mdraid.patch diff --git a/lfs/dracut b/lfs/dracut index ec5ff8f339..fef3ad77d3 100644 --- a/lfs/dracut +++ b/lfs/dracut @@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) : $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/dracut-038-always-enable-mdraid.patch cd $(DIR_APP) && make $(MAKETUNING) cd $(DIR_APP) && make install sbindir=/sbin sysconfdir=/etc diff --git a/src/patches/dracut-038-always-enable-mdraid.patch b/src/patches/dracut-038-always-enable-mdraid.patch new file mode 100644 index 0000000000..a65e59a8a4 --- /dev/null +++ b/src/patches/dracut-038-always-enable-mdraid.patch @@ -0,0 +1,55 @@ +diff --git a/modules.d/90mdraid/parse-md.sh b/modules.d/90mdraid/parse-md.sh +index dd7bda2..7bc944c 100755 +--- a/modules.d/90mdraid/parse-md.sh ++++ b/modules.d/90mdraid/parse-md.sh +@@ -4,32 +4,26 @@ + + MD_UUID=$(getargs rd.md.uuid -d rd_MD_UUID=) + +-if ( ! [ -n "$MD_UUID" ] && ! getargbool 0 rd.auto ) || ! getargbool 1 rd.md -d -n rd_NO_MD; then +- info "rd.md=0: removing MD RAID activation" +- udevproperty rd_NO_MD=1 +-else +- # rewrite the md rules to only process the specified raid array +- if [ -n "$MD_UUID" ]; then +- for f in /etc/udev/rules.d/65-md-incremental*.rules; do +- [ -e "$f" ] || continue +- while read line; do +- if [ "${line%%UUID CHECK}" != "$line" ]; then +- printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n' +- for uuid in $MD_UUID; do +- printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid +- done; +- printf 'GOTO="md_end"\n' +- printf 'LABEL="md_uuid_ok"\n' +- else +- echo "$line" +- fi +- done < "${f}" > "${f}.new" +- mv "${f}.new" "$f" +- done +- fi ++# rewrite the md rules to only process the specified raid array ++if [ -n "$MD_UUID" ]; then ++ for f in /etc/udev/rules.d/65-md-incremental*.rules; do ++ [ -e "$f" ] || continue ++ while read line; do ++ if [ "${line%%UUID CHECK}" != "$line" ]; then ++ printf 'IMPORT{program}="/sbin/mdadm --examine --export $tempnode"\n' ++ for uuid in $MD_UUID; do ++ printf 'ENV{MD_UUID}=="%s", GOTO="md_uuid_ok"\n' $uuid ++ done; ++ printf 'GOTO="md_end"\n' ++ printf 'LABEL="md_uuid_ok"\n' ++ else ++ echo "$line" ++ fi ++ done < "${f}" > "${f}.new" ++ mv "${f}.new" "$f" ++ done + fi + +- + if [ -e /etc/mdadm.conf ] && getargbool 1 rd.md.conf -d -n rd_NO_MDADMCONF; then + udevproperty rd_MDADMCONF=1 + rm -f -- $hookdir/pre-pivot/*mdraid-cleanup.sh -- 2.39.2