File: cryptroot

package info (click to toggle)
cryptsetup 2%3A2.8.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 20,312 kB
  • sloc: ansic: 65,883; sh: 17,680; cpp: 994; xml: 920; makefile: 495; perl: 486
file content (45 lines) | stat: -rw-r--r-- 1,038 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/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