Files
LUKS-Lock-und-Unlock-per-Bash/unlock_and_mount.sh
2025-08-15 11:20:37 +00:00

74 lines
1.9 KiB
Bash

#!/bin/bash
# === KONFIGURATION: Mapper-Namen und Gerätepfade ===
declare -A DRIVES
source /root/logger.sh
# 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]}"
log_info ">>> Verarbeite $MAPPER ($DEVICE)"
if [ ! -b "$DEVICE" ]; then
log_error " ⚠ 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
log_error " ❌ Entschlüsselung fehlgeschlagen."
continue
fi
else
log_info " 🔓 $MAPPER ist bereits entschlüsselt."
fi
MAPPED="/dev/mapper/$MAPPER"
if [ ! -b "$MAPPED" ]; then
log_error " ⚠ Mapper-Gerät $MAPPED nicht gefunden. Überspringe."
continue
fi
# UUID ermitteln
UUID=$(sudo blkid -s UUID -o value "$MAPPED")
if [ -z "$UUID" ]; then
log_error " ⚠ Keine UUID für $MAPPED gefunden."
continue
fi
# OMV-Mountpoint konstruieren
MOUNTPOINT="/srv/dev-disk-by-uuid-$UUID"
log_info " 📍 Ziel-Mountpoint: $MOUNTPOINT"
if mountpoint -q "$MOUNTPOINT"; then
log_info " ✅ Bereits eingehängt: $MOUNTPOINT"
else
log_info " 📦 Hänge $MAPPED in $MOUNTPOINT ein..."
sudo mkdir -p "$MOUNTPOINT"
sudo mount "$MAPPED" "$MOUNTPOINT" && log_info " ✅ Erfolgreich eingehängt."
fi
done
log_end