Files
usb-ssd/scripts/ssd-detection/README.md
2025-08-07 19:28:22 +02:00

171 lines
3.2 KiB
Markdown

# SSD Detection Module
## Übersicht
Das SSD Detection Module ist verantwortlich für die automatische Erkennung und Identifikation von USB-C SSDs im System. Es bietet robuste Hardware-Erkennung mit NTFS-Partition-Support.
## Hauptkomponenten
### `ssd-detect.sh`
**Zweck**: Automatische USB-C SSD Identifikation und NTFS-Partition Erkennung
**Hauptfunktionen**:
- Erkennung neu angeschlossener USB-Storage-Devices
- NTFS-Dateisystem Validierung
- UUID-basierte Geräte-Identifikation
- Hardware-Kompatibilitätsprüfung
- Logging aller Erkennungsvorgänge
## Verwendung
### Grundlegende Erkennung
```bash
# Automatische SSD-Erkennung
./ssd-detect.sh
# Verbose-Modus mit detailliertem Output
./ssd-detect.sh --verbose
# Nur NTFS-Partitionen anzeigen
./ssd-detect.sh --ntfs-only
```
### Erweiterte Optionen
```bash
# Spezifisches Device prüfen
./ssd-detect.sh --device /dev/sdb1
# JSON-Output für Automation
./ssd-detect.sh --output json
# Kontinuierliche Überwachung
./ssd-detect.sh --monitor
```
## Ausgabe-Format
### Standard-Output
```
[INFO] USB-C SSD detected: /dev/sdb1
[INFO] Filesystem: NTFS
[INFO] UUID: 1234-5678-9ABC-DEF0
[INFO] Size: 500GB
[INFO] Label: BACKUP_SSD
[SUCCESS] Device ready for mounting
```
### JSON-Output
```json
{
"device": "/dev/sdb1",
"filesystem": "ntfs",
"uuid": "1234-5678-9ABC-DEF0",
"size": "500GB",
"label": "BACKUP_SSD",
"status": "ready"
}
```
## Konfiguration
### Environment Variables
```bash
# Standardmäßige Erkennungszeit (Sekunden)
export SSD_DETECT_TIMEOUT=30
# Log-Level (DEBUG, INFO, WARN, ERROR)
export SSD_LOG_LEVEL=INFO
# Unterstützte Dateisysteme
export SSD_SUPPORTED_FS="ntfs,exfat,ext4"
```
## Fehlerbehandlung
### Häufige Probleme
1. **Keine SSD erkannt**: USB-Verbindung prüfen, Device-Permissions kontrollieren
2. **NTFS nicht unterstützt**: `ntfs-3g` Package installieren
3. **Permission denied**: Script mit `sudo` ausführen
### Debug-Modus
```bash
# Erweiterte Diagnose
./ssd-detect.sh --debug
# System-Logs prüfen
journalctl -f | grep ssd-detect
```
## Integration
### Systemd-Service
```bash
# Automatische Erkennung bei Boot
sudo systemctl enable ssd-detect.service
```
### Udev-Rules
```bash
# Automatische Erkennung bei USB-Events
# Siehe examples/udev-rules/
```
## Abhängigkeiten
### Erforderliche Packages
- `util-linux` - Device-Management
- `ntfs-3g` - NTFS-Support
- `parted` - Partitionstabellen
- `udev` - Hardware-Events
### Installation
```bash
# Ubuntu/Debian
sudo apt install util-linux ntfs-3g parted udev
# CentOS/RHEL
sudo yum install util-linux ntfs-3g parted systemd-udev
```
## Sicherheit
### Best Practices
- Immer UUID-basierte Identifikation verwenden
- Device-Permissions vor Zugriff prüfen
- Logging für Audit-Trails aktivieren
- Read-Only Modus für kritische Prüfungen
### Berechtigungen
```bash
# Minimale Berechtigungen für Detection
sudo usermod -a -G disk $USER
```
## Entwicklung
### Testing
```bash
# Unit-Tests ausführen
./test-ssd-detect.sh
# Integration-Tests
./test-ssd-detect-integration.sh
```
### Debugging
```bash
# Trace-Modus
bash -x ./ssd-detect.sh
# Profiling
time ./ssd-detect.sh --benchmark
```
## Changelog
### Version 0.1.0
- Initiale Implementierung
- NTFS-Support
- UUID-basierte Erkennung
- JSON-Output Format