45 lines
1 KiB
Bash
45 lines
1 KiB
Bash
#!/bin/sh
|
|
|
|
PREREQ=""
|
|
|
|
prereqs()
|
|
{
|
|
echo "$PREREQ"
|
|
}
|
|
|
|
case $1 in
|
|
prereqs)
|
|
prereqs
|
|
exit 0
|
|
;;
|
|
esac
|
|
|
|
# If we reached this stage, we do have a rootfs mounted
|
|
# so let's clean-up cryptroot setup mess...
|
|
[ -f /lib/cryptsetup/functions ] || return 0
|
|
. /lib/cryptsetup/functions
|
|
|
|
rm -f -- "$CRYPTROOT_COUNT_FILE"
|
|
|
|
dmremove_deferred() {
|
|
local d="$1" d2 name devno maj min
|
|
if [ -d "$d/dm" ] && devno="$(cat "$d/dev")" &&
|
|
maj="${devno%:*}" && min="${devno#*:}" &&
|
|
[ "$devno" = "$maj:$min" ] && [ -n "$maj" ] && [ -n "$min" ] &&
|
|
name="$(dmsetup info -c --noheadings -o unmangled_name -j "$maj" -m "$min")"; then
|
|
dmsetup remove --deferred "$name"
|
|
fi
|
|
if [ -d "$d/slaves" ]; then
|
|
for d2 in "$d/slaves"/*; do
|
|
if [ -d "$d2" ] && d2="$(realpath "$d2")"; then
|
|
dmremove_deferred "$d2"
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
if devnos="$(get_mnt_devno "$rootmnt")"; then
|
|
for devno in $devnos; do
|
|
dmremove_deferred "/sys/dev/block/$devno"
|
|
done
|
|
fi
|