#!/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