diff --git a/modules.d/90crypt/crypt-cleanup.sh b/modules.d/90crypt/crypt-cleanup.sh new file mode 100755 index 00000000..b4003c13 --- /dev/null +++ b/modules.d/90crypt/crypt-cleanup.sh @@ -0,0 +1,4 @@ +# close everything which is not busy +for i in /dev/mapper/luks-*; do + cryptsetup luksClose $i &>/dev/null +done diff --git a/modules.d/90crypt/install b/modules.d/90crypt/install index 13195039..5108fefa 100755 --- a/modules.d/90crypt/install +++ b/modules.d/90crypt/install @@ -3,3 +3,5 @@ inst cryptsetup inst_rules "$moddir/70-luks.rules" inst "$moddir"/cryptroot-ask.sh /sbin/cryptroot-ask inst_hook cmdline 30 "$moddir/parse-crypt.sh" +inst_hook pre-pivot 30 "$moddir/crypt-cleanup.sh" +inst_hook pre-pivot 60 "$moddir/crypt-cleanup.sh" diff --git a/modules.d/90dmraid/dmraid-cleanup.sh b/modules.d/90dmraid/dmraid-cleanup.sh new file mode 100755 index 00000000..cd3f0a2c --- /dev/null +++ b/modules.d/90dmraid/dmraid-cleanup.sh @@ -0,0 +1,2 @@ +# close everything which is not busy +dmraid -an &>/dev/null diff --git a/modules.d/90dmraid/install b/modules.d/90dmraid/install index c33b1666..704728b6 100755 --- a/modules.d/90dmraid/install +++ b/modules.d/90dmraid/install @@ -3,3 +3,5 @@ dracut_install dmraid partx inst "$moddir/dmraid.sh" /sbin/dmraid_scan inst_rules 64-md-raid.rules inst_rules "$moddir/61-dmraid-imsm.rules" +inst_hook pre-pivot 30 "$moddir/dmraid-cleanup.sh" +inst_hook pre-pivot 60 "$moddir/dmraid-cleanup.sh" diff --git a/modules.d/90lvm/install b/modules.d/90lvm/install index 5e789d3b..eb271591 100755 --- a/modules.d/90lvm/install +++ b/modules.d/90lvm/install @@ -12,3 +12,5 @@ fi inst "$moddir/lvm_scan.sh" /sbin/lvm_scan inst_hook cmdline 30 "$moddir/parse-lvm.sh" +inst_hook pre-pivot 30 "$moddir/lvm-cleanup.sh" +inst_hook pre-pivot 60 "$moddir/lvm-cleanup.sh" \ No newline at end of file diff --git a/modules.d/90lvm/lvm-cleanup.sh b/modules.d/90lvm/lvm-cleanup.sh new file mode 100755 index 00000000..3a1cbae3 --- /dev/null +++ b/modules.d/90lvm/lvm-cleanup.sh @@ -0,0 +1,2 @@ +# stop everything which is not busy +lvm vgchange -a n &>/dev/null diff --git a/modules.d/90mdraid/install b/modules.d/90mdraid/install index 07ca96c0..cb9ab29f 100755 --- a/modules.d/90mdraid/install +++ b/modules.d/90mdraid/install @@ -35,3 +35,5 @@ fi inst "$moddir/mdraid_start.sh" /sbin/mdraid_start inst_hook pre-trigger 30 "$moddir/parse-md.sh" +inst_hook pre-pivot 30 "$moddir/mdraid-cleanup.sh" +inst_hook pre-pivot 60 "$moddir/mdraid-cleanup.sh" \ No newline at end of file diff --git a/modules.d/90mdraid/mdraid-cleanup.sh b/modules.d/90mdraid/mdraid-cleanup.sh new file mode 100755 index 00000000..87914228 --- /dev/null +++ b/modules.d/90mdraid/mdraid-cleanup.sh @@ -0,0 +1,4 @@ +# stop everything which is not busy +for i in /dev/md*; do + mdadm --stop $i &>/dev/null +done