Files
LUKS-Lock-und-Unlock-per-Bash/unlock_and_mount.sh
alf 16be72c7ae unlock_and_mount.sh aktualisiert
Auf einmalige Passworteingabe umgestellt.
2025-08-03 11:15:53 +00:00

71 lines
1.8 KiB
Bash

#!/bin/bash
# === KONFIGURATION: Mapper-Namen und Gerätepfade ===
declare -A DRIVES
# Format: [Mapper-Name]="/dev/sdX1"
DRIVES[kleine]="/dev/sdd1"
DRIVES[media]="/dev/sdc"
DRIVES[eintb]="/dev/sda"
# Passworteingabe, einmalig
echo -n " 🔐 Passwort für eingeben: "
read -rs PASSWD
echo
for MAPPER in "${!DRIVES[@]}"; do
DEVICE="${DRIVES[$MAPPER]}"
echo ">>> Verarbeite $MAPPER ($DEVICE)"
if [ ! -b "$DEVICE" ]; then
echo " ⚠ Gerät $DEVICE nicht gefunden, überspringe."
continue
fi
# Entsperren
if [ ! -e "/dev/mapper/$MAPPER" ]; then
# echo "$PASSWD" | sudo cryptsetup open "$DEVICE" "$MAPPER" --type luks --key-file=-
TMPFILE=$(mktemp)
echo -n "$PASSWD" > "$TMPFILE"
chmod 600 "$TMPFILE"
sudo cryptsetup open "$DEVICE" "$MAPPER" --type luks --key-file="$TMPFILE"
RET=$?
rm -f "$TMPFILE"
if [ $RET -ne 0 ]; then
echo " ❌ Entschlüsselung fehlgeschlagen."
continue
fi
else
echo " 🔓 $MAPPER ist bereits entschlüsselt."
fi
MAPPED="/dev/mapper/$MAPPER"
if [ ! -b "$MAPPED" ]; then
echo " ⚠ Mapper-Gerät $MAPPED nicht gefunden. Überspringe."
continue
fi
# UUID ermitteln
UUID=$(sudo blkid -s UUID -o value "$MAPPED")
if [ -z "$UUID" ]; then
echo " ⚠ Keine UUID für $MAPPED gefunden."
continue
fi
# OMV-Mountpoint konstruieren
MOUNTPOINT="/srv/dev-disk-by-uuid-$UUID"
echo " 📍 Ziel-Mountpoint: $MOUNTPOINT"
if mountpoint -q "$MOUNTPOINT"; then
echo " ✅ Bereits eingehängt: $MOUNTPOINT"
else
echo " 📦 Hänge $MAPPED in $MOUNTPOINT ein..."
sudo mkdir -p "$MOUNTPOINT"
sudo mount "$MAPPED" "$MOUNTPOINT" && echo " ✅ Erfolgreich eingehängt."
fi
done