diff --git a/unlock_and_mount.sh b/unlock_and_mount.sh new file mode 100644 index 0000000..f8a8870 --- /dev/null +++ b/unlock_and_mount.sh @@ -0,0 +1,66 @@ +#!/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" + +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 -n " 🔐 Passwort für $MAPPER eingeben: " + read -rs PASSWD + echo + # 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