summaryrefslogtreecommitdiffstats
path: root/modules.d/90mdraid/mdraid-cleanup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'modules.d/90mdraid/mdraid-cleanup.sh')
-rwxr-xr-xmodules.d/90mdraid/mdraid-cleanup.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh
new file mode 100755
index 0000000..ce50733
--- /dev/null
+++ b/modules.d/90mdraid/mdraid-cleanup.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+type getarg > /dev/null 2>&1 || . /lib/dracut-lib.sh
+
+containers=""
+for md in /dev/md[0-9_]*; do
+ [ -b "$md" ] || continue
+ udevinfo="$(udevadm info --query=property --name="$md")"
+ strstr "$udevinfo" "DEVTYPE=partition" && continue
+ if strstr "$udevinfo" "MD_LEVEL=container"; then
+ containers="$containers $md"
+ continue
+ fi
+ mdadm -S "$md" > /dev/null 2>&1
+done
+
+for md in $containers; do
+ mdadm -S "$md" > /dev/null 2>&1
+done
+
+unset containers udevinfo