diff options
-rw-r--r-- | recipes-core/initrdscripts/initramfs-framework-dm/dmverity | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/recipes-core/initrdscripts/initramfs-framework-dm/dmverity b/recipes-core/initrdscripts/initramfs-framework-dm/dmverity index 71afc91..1923490 100644 --- a/recipes-core/initrdscripts/initramfs-framework-dm/dmverity +++ b/recipes-core/initrdscripts/initramfs-framework-dm/dmverity | |||
@@ -8,12 +8,41 @@ dmverity_run() { | |||
8 | DATA_SIZE="__not_set__" | 8 | DATA_SIZE="__not_set__" |
9 | DATA_BLOCK_SIZE="__not_set__" | 9 | DATA_BLOCK_SIZE="__not_set__" |
10 | ROOT_HASH="__not_set__" | 10 | ROOT_HASH="__not_set__" |
11 | SEPARATE_HASH="__not_set__" | ||
11 | 12 | ||
12 | . /usr/share/misc/dm-verity.env | 13 | . /usr/share/misc/dm-verity.env |
13 | 14 | ||
14 | C=0 | 15 | C=0 |
15 | delay=${bootparam_rootdelay:-1} | 16 | delay=${bootparam_rootdelay:-1} |
16 | timeout=${bootparam_roottimeout:-5} | 17 | timeout=${bootparam_roottimeout:-5} |
18 | |||
19 | # we know exactly what we are looking for; don't need the wide hunt below | ||
20 | if [ "${SEPARATE_HASH}" -eq "1" ]; then | ||
21 | while [ ! -b "/dev/disk/by-partuuid/${ROOT_UUID}" ]; do | ||
22 | if [ $(( $C * $delay )) -gt $timeout ]; then | ||
23 | fatal "Root device (data) resolution failed" | ||
24 | exit 1 | ||
25 | fi | ||
26 | debug "Sleeping for $delay second(s) to wait for root data to settle..." | ||
27 | sleep $delay | ||
28 | C=$(( $C + 1 )) | ||
29 | done | ||
30 | |||
31 | veritysetup \ | ||
32 | --data-block-size=${DATA_BLOCK_SIZE} \ | ||
33 | create rootfs \ | ||
34 | /dev/disk/by-partuuid/${ROOT_UUID} \ | ||
35 | /dev/disk/by-partuuid/${RHASH_UUID} \ | ||
36 | ${ROOT_HASH} | ||
37 | |||
38 | mount \ | ||
39 | -o ro \ | ||
40 | /dev/mapper/rootfs \ | ||
41 | ${ROOTFS_DIR} || exit 2 | ||
42 | |||
43 | return | ||
44 | fi | ||
45 | |||
17 | RDEV="$(realpath /dev/disk/by-partuuid/${bootparam_root#PARTUUID=} 2>/dev/null)" | 46 | RDEV="$(realpath /dev/disk/by-partuuid/${bootparam_root#PARTUUID=} 2>/dev/null)" |
18 | while [ ! -b "${RDEV}" ]; do | 47 | while [ ! -b "${RDEV}" ]; do |
19 | if [ $(( $C * $delay )) -gt $timeout ]; then | 48 | if [ $(( $C * $delay )) -gt $timeout ]; then |