Files
2025-08-07 19:28:22 +02:00

5.6 KiB

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

  1. Immer Safe-Eject verwenden statt direkter umount
  2. Mount-Status überwachen vor kritischen Operationen
  3. Logs regelmäßig prüfen für Anomalien
  4. Backup vor Mount-Operationen bei kritischen Daten
  5. Systemd-Services nutzen für automatisches Management

Entwicklungsumgebung

  1. Dry-Run Modus für Tests verwenden
  2. Verbose-Logging für Debugging aktivieren
  3. Recovery-Scripte bereithalten
  4. 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