From ca03568c5a93da810400f882cacfaa0285d6a6fd Mon Sep 17 00:00:00 2001 From: Matthew Davis Date: Tue, 19 Dec 2023 21:43:50 -0500 Subject: [PATCH] Enable LUKS encrypted squashfs This patch enables the use of a LUKS encrypted squashfs when booting a livecd image. --- .../90dmsquash-live/dmsquash-live-root.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/modules.d/90dmsquash-live/dmsquash-live-root.sh b/modules.d/90dmsquash-live/dmsquash-live-root.sh index e80833948a..abc6e0bc65 100755 --- a/modules.d/90dmsquash-live/dmsquash-live-root.sh +++ b/modules.d/90dmsquash-live/dmsquash-live-root.sh @@ -324,8 +324,23 @@ if [ -e "$SQUASHED" ]; then SQUASHED="/run/initramfs/squashed.img" fi - SQUASHED_LOOPDEV=$(losetup -f) - losetup -r "$SQUASHED_LOOPDEV" $SQUASHED + SQUASHED_TYPE=$(blkid -s TYPE -o value $SQUASHED) + if [ $SQUASHED_TYPE = 'crypto_LUKS' ]; then + luks_uuid=$(blkid -s UUID -o value $SQUASHED) + LUKS_LOOPDEV=$(losetup -fPr --show $SQUASHED) + SQUASHED_LOOPDEV="/dev/mapper/luks-$luks_uuid" + timeout=$(getarg rd.luks.timeout) + [ -z "$timeout" ] && timeout=86400 + waittime=0 + while [ ! -h $SQUASHED_LOOPDEV ] && [ $waittime -le $timeout ]; do + echo Waiting for $SQUASHED_LOOPDEV > /dev/kmsg + waittime=$(($waittime + 1)) + sleep 1 + done + else + SQUASHED_LOOPDEV=$(losetup -f) + losetup -r "$SQUASHED_LOOPDEV" $SQUASHED + fi mkdir -m 0755 -p /run/initramfs/squashfs mount -n -t squashfs -o ro "$SQUASHED_LOOPDEV" /run/initramfs/squashfs