32 lines
762 B
Bash
Executable file
32 lines
762 B
Bash
Executable file
#!/bin/bash
|
|
##
|
|
# Opens all LUKS volumes
|
|
#
|
|
# @copyright 2021, Steffen Vogel
|
|
# @license http://www.gnu.org/licenses/gpl.txt GNU Public License
|
|
# @author Steffen Vogel <post@steffenvogel.de>
|
|
# @link https://www.steffenvogel.de
|
|
##
|
|
|
|
# Set IFS to a newline:
|
|
IFS="
|
|
"
|
|
|
|
for VOLUME in $(ls -1 /dev/vg*/*-luks); do
|
|
if ! cryptsetup isLuks ${VOLUME}; then
|
|
echo "${VOLUME} is not a luks device"
|
|
continue
|
|
fi
|
|
|
|
if [ -b /dev/disk/by-id/dm-uuid-*$(cryptsetup luksUUID ${VOLUME} | tr -d -)* ]; then
|
|
echo "${VOLUME} is opened"
|
|
else
|
|
NAME=$(basename -s '-luks' ${VOLUME})
|
|
|
|
cryptsetup luksOpen --allow-discards ${VOLUME} ${NAME}
|
|
|
|
# systemd-ask-password --id="zfs:$dataset" \
|
|
# "Enter passphrase for '$dataset':" | \
|
|
# zfs load-key "$dataset"
|
|
fi
|
|
done
|