SSD Management Module
Übersicht
Das SSD Management Module verwaltet den kompletten Lifecycle von USB-C SSDs - von Mount-Operationen bis zur sicheren Entfernung. Es bietet flexibles Mounting mit konstantem Mount-Point und umfassende Sicherheitsfeatures.
Hauptkomponenten
ssd-mount-manager.sh
Zweck: Flexibles Mount-Lifecycle Management mit konstantem Mount-Point
Hauptfunktionen:
- Automatisches Mounting auf
/mnt/ssd-storage
- NTFS-Kompatibilität mit optimierten Mount-Optionen
- UUID-basierte Geräte-Zuordnung
- Mount-Status Überwachung
- Fehlerbehandlung und Recovery
ssd-safe-eject.sh
Zweck: Sichere Hardware-Entfernung mit Datenintegritäts-Schutz
Hauptfunktionen:
- Buffer-Flush Überwachung
- Prozess-Detection vor Eject
- Hardware-Eject Funktionalität
- Cleanup von Mount-Points
- Audit-Logging
Verwendung
Mount-Manager
Grundlegende Mount-Operationen
# Automatisches Mounting der erkannten SSD
./ssd-mount-manager.sh mount
# Spezifische SSD mounten
./ssd-mount-manager.sh mount --device /dev/sdb1
# Read-Only Mount für kritische Prüfungen
./ssd-mount-manager.sh mount --readonly
# Mount-Status prüfen
./ssd-mount-manager.sh status
Erweiterte Mount-Optionen
# Custom Mount-Point
./ssd-mount-manager.sh mount --mountpoint /custom/path
# Spezifische NTFS-Optionen
./ssd-mount-manager.sh mount --options "uid=1000,gid=1000,umask=022"
# Automatisches Remounting
./ssd-mount-manager.sh remount
Safe-Eject
Sichere Entfernung
# Standard Safe-Eject
./ssd-safe-eject.sh
# Force-Eject (bei hängenden Prozessen)
./ssd-safe-eject.sh --force
# Eject mit Prozess-Übersicht
./ssd-safe-eject.sh --show-processes
# Nur Unmount (ohne Hardware-Eject)
./ssd-safe-eject.sh --unmount-only
Erweiterte Eject-Optionen
# Timeout für Buffer-Flush
./ssd-safe-eject.sh --timeout 60
# Verbose-Modus
./ssd-safe-eject.sh --verbose
# Dry-Run (Simulation)
./ssd-safe-eject.sh --dry-run
Konfiguration
Mount-Manager Konfiguration
# Standard Mount-Point
export SSD_MOUNT_POINT="/mnt/ssd-storage"
# Standard NTFS-Optionen
export SSD_MOUNT_OPTIONS="uid=1000,gid=1000,umask=022,windows_names"
# Timeout für Mount-Operationen
export SSD_MOUNT_TIMEOUT=30
Safe-Eject Konfiguration
# Buffer-Flush Timeout
export SSD_EJECT_TIMEOUT=60
# Prozess-Kill Timeout
export SSD_PROCESS_TIMEOUT=10
# Hardware-Eject aktivieren
export SSD_HARDWARE_EJECT=true
Mount-Point Management
Konstanter Mount-Point
Das System verwendet einen konstanten logischen Mount-Point (/mnt/ssd-storage
), unabhängig von der physischen SSD:
# Immer derselbe Pfad, verschiedene SSDs
/mnt/ssd-storage/ # SSD A
/mnt/ssd-storage/ # SSD B (nach Wechsel)
/mnt/ssd-storage/ # SSD C (nach Wechsel)
SMB-Freigabe Vorbereitung
# Optimierte Berechtigungen für SMB
./ssd-mount-manager.sh mount --smb-ready
# Automatische SMB-Konfiguration
./ssd-mount-manager.sh mount --configure-smb
Sicherheitsfeatures
Prozess-Detection
# Aktive Prozesse vor Eject anzeigen
lsof /mnt/ssd-storage
# Automatische Prozess-Beendigung
./ssd-safe-eject.sh --kill-processes
Buffer-Flush Überwachung
# Manueller Sync vor Eject
sync && echo 3 > /proc/sys/vm/drop_caches
# Automatische Buffer-Überwachung
./ssd-safe-eject.sh --monitor-buffers
Datenintegritäts-Prüfung
# Filesystem-Check vor Mount
./ssd-mount-manager.sh mount --fsck
# Readonly-Test vor produktivem Mount
./ssd-mount-manager.sh test-mount
Fehlerbehandlung
Mount-Fehler
# Häufige Mount-Probleme diagnostizieren
./ssd-mount-manager.sh diagnose
# Mount-Point Cleanup
./ssd-mount-manager.sh cleanup
# Recovery-Modus
./ssd-mount-manager.sh recover
Eject-Fehler
# Hängende Prozesse identifizieren
./ssd-safe-eject.sh --list-blocking-processes
# Force-Unmount
./ssd-safe-eject.sh --force-unmount
# Hardware-Reset
./ssd-safe-eject.sh --hardware-reset
Logging und Monitoring
Log-Konfiguration
# Log-Level setzen
export SSD_LOG_LEVEL=INFO
# Log-Datei konfigurieren
export SSD_LOG_FILE="/var/log/ssd-management.log"
# Syslog-Integration
export SSD_USE_SYSLOG=true
Monitoring-Integration
# Prometheus-Metriken
./ssd-mount-manager.sh --metrics
# Status-JSON für Monitoring
./ssd-mount-manager.sh status --json
Systemd-Integration
Service-Templates
# Mount-Service aktivieren
sudo systemctl enable ssd-mount@.service
# Auto-Mount bei USB-Events
sudo systemctl enable ssd-automount.service
Service-Konfiguration
# /etc/systemd/system/ssd-mount@.service
[Unit]
Description=SSD Mount Manager for %i
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/ssd-mount-manager.sh mount --device %i
ExecStop=/usr/local/bin/ssd-safe-eject.sh --device %i
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Best Practices
Produktionsumgebung
- Immer Safe-Eject verwenden statt direkter
umount
- Mount-Status überwachen vor kritischen Operationen
- Logs regelmäßig prüfen für Anomalien
- Backup vor Mount-Operationen bei kritischen Daten
- Systemd-Services nutzen für automatisches Management
Entwicklungsumgebung
- Dry-Run Modus für Tests verwenden
- Verbose-Logging für Debugging aktivieren
- Recovery-Scripte bereithalten
- Test-SSDs für Entwicklung verwenden
Changelog
Version 0.1.0
- Initiale Implementierung
- Mount-Manager mit konstantem Mount-Point
- Safe-Eject mit Prozess-Detection
- NTFS-Optimierungen
- Systemd-Integration