288 lines
10 KiB
Markdown
288 lines
10 KiB
Markdown
# USB-SSD Management System
|
||
|
||
[](https://opensource.org/licenses/MIT)
|
||
[](https://git.gitcover.de/KMU/usb-ssd/releases)
|
||
[](https://git.gitcover.de/KMU/usb-ssd)
|
||
|
||
Ein professionelles Management-System für USB-C SSDs auf Ubuntu/Linux-Servern mit automatischer Erkennung, sicherem Mounting und SMB-Freigabe-Vorbereitung.
|
||
|
||
## 🎯 Zweck und Zielgruppe
|
||
|
||
### **Primärer Zweck**
|
||
Vereinfachung und Standardisierung der Verwaltung wechselbarer USB-C SSDs in Linux-Serverumgebungen, insbesondere für:
|
||
- **KMU-Infrastrukturen** mit flexiblen Speicheranforderungen
|
||
- **Entwicklungsumgebungen** mit häufig wechselnden Speichergeräten
|
||
- **Backup- und Archivierungssysteme** mit externen Medien
|
||
- **Media-Server** mit erweiterbarem Speicher
|
||
|
||
### **Zielgruppe**
|
||
- **System-Administratoren** in kleinen und mittleren Unternehmen
|
||
- **DevOps-Engineers** mit Infrastructure-as-Code Anforderungen
|
||
- **Entwickler** die USB-Storage-Management automatisieren möchten
|
||
- **IT-Consultants** für standardisierte Client-Deployments
|
||
|
||
## 🚀 Hauptfunktionen
|
||
|
||
### **Kernkomponenten**
|
||
|
||
| Komponente | Zweck | Hauptfunktionen |
|
||
|------------|-------|-----------------|
|
||
| **SSD Detection** | Hardware-Erkennung | Automatische USB-C SSD Identifikation, NTFS-Partition Erkennung |
|
||
| **Mount Manager** | Lifecycle-Management | Flexibles Mounting, konstanter Mount-Point, Auto-Detection |
|
||
| **Test Suite** | Qualitätssicherung | 11 umfassende Tests, Performance-Messung, SMB-Bereitschaft |
|
||
| **Safe-Eject** | Sichere Entfernung | Hardware-Eject, Buffer-Flush, Prozess-Überwachung |
|
||
|
||
### **Schlüssel-Features**
|
||
✅ **Wechselbare SSDs** mit konstantem logischem Mount-Point (`/mnt/ssd-storage`)
|
||
✅ **NTFS-Kompatibilität** für Windows/Linux Dual-Use
|
||
✅ **SMB-Freigabe ready** mit optimierten Zugriffsrechten
|
||
✅ **Umfassendes Logging** für Audit-Trails
|
||
✅ **Systemd-Integration** für automatisches Mounting
|
||
✅ **Git-Repository-ready** für Infrastructure-as-Code
|
||
|
||
## 📋 Schnellstart
|
||
|
||
### **1. Installation**
|
||
```bash
|
||
# Repository klonen
|
||
git clone https://git.gitcover.de/KMU/usb-ssd.git
|
||
cd usb-ssd
|
||
|
||
# Master-Installation ausführen
|
||
sudo ./scripts/installation/install.sh
|
||
```
|
||
|
||
### **2. Erste Verwendung**
|
||
```bash
|
||
# USB-C SSD anschließen und erkennen
|
||
ssd-detect
|
||
|
||
# Automatisches Mounting
|
||
ssd-mount
|
||
|
||
# Vollständige Tests
|
||
ssd-test all
|
||
|
||
# Sichere Entfernung
|
||
ssd-safe-eject
|
||
```
|
||
|
||
### **3. Täglicher Workflow**
|
||
```bash
|
||
# Status prüfen
|
||
ssd-status
|
||
|
||
# SSD wechseln
|
||
ssd-safe-eject # Alte SSD entfernen
|
||
ssd-remount # Neue SSD automatisch mounten
|
||
```
|
||
|
||
## 🏗️ Repository-Struktur
|
||
|
||
```
|
||
usb-ssd/
|
||
├── README.md # Diese Datei
|
||
├── LICENSE # MIT License
|
||
├── CHANGELOG.md # Versionshistorie
|
||
├── .gitignore # Git-Ignorierung
|
||
├── scripts/
|
||
│ ├── ssd-detection/
|
||
│ │ ├── ssd-detect.sh # Hardware-Erkennung
|
||
│ │ └── README.md
|
||
│ ├── ssd-management/
|
||
│ │ ├── ssd-mount-manager.sh # Mount-Lifecycle
|
||
│ │ ├── ssd-safe-eject.sh # Sichere Entfernung
|
||
│ │ └── README.md
|
||
│ ├── ssd-testing/
|
||
│ │ ├── ssd-test-suite.sh # Qualitätssicherung
|
||
│ │ └── README.md
|
||
│ └── installation/
|
||
│ ├── install.sh # Master-Installation
|
||
│ └── README.md
|
||
├── docs/
|
||
│ ├── installation-guide.md # Detaillierte Installation
|
||
│ ├── usage-guide.md # Nutzungshandbuch
|
||
│ ├── troubleshooting.md # Problemlösung
|
||
│ └── api-reference.md # Script-Referenz
|
||
└── examples/
|
||
├── systemd-services/ # Service-Templates
|
||
├── udev-rules/ # Auto-Mount Regeln
|
||
└── smb-configuration/ # SMB-Setup Beispiele
|
||
```
|
||
|
||
## 🔧 System-Anforderungen
|
||
|
||
### **Mindestanforderungen**
|
||
- **OS**: Ubuntu 20.04+ / Debian 11+ / vergleichbare Linux-Distribution
|
||
- **Hardware**: USB-C Port, NTFS-formatierte SSD
|
||
- **Berechtigungen**: `sudo` Zugriff für Installation und Mount-Operationen
|
||
- **Speicher**: < 1MB für Scripts, variabel für Logs
|
||
|
||
### **Abhängigkeiten**
|
||
```bash
|
||
# Automatisch installiert durch install.sh
|
||
ntfs-3g # NTFS-Dateisystem Unterstützung
|
||
parted # Partitionstabellen-Management
|
||
util-linux # Mount/Unmount Utilities
|
||
bc # Berechnungen in Scripts
|
||
eject # Hardware-Eject Funktionalität
|
||
```
|
||
|
||
## 📖 Dokumentation
|
||
|
||
### **Verfügbare Guides**
|
||
- **[Installation Guide](docs/installation-guide.md)** - Schritt-für-Schritt Setup
|
||
- **[Usage Guide](docs/usage-guide.md)** - Detaillierte Nutzung aller Funktionen
|
||
- **[Troubleshooting](docs/troubleshooting.md)** - Häufige Probleme und Lösungen
|
||
- **[API Reference](docs/api-reference.md)** - Script-Parameter und Optionen
|
||
|
||
### **Externe Dokumentation**
|
||
- [NTFS-3G Documentation](https://www.tuxera.com/community/open-source-ntfs-3g/)
|
||
- [Linux USB Storage](https://www.kernel.org/doc/html/latest/usb/storage.html)
|
||
- [Systemd Mount Units](https://www.freedesktop.org/software/systemd/man/systemd.mount.html)
|
||
|
||
## 🎯 Use Cases
|
||
|
||
### **1. KMU-Backup-System**
|
||
```bash
|
||
# Täglich: Externe SSD für Backups mounten
|
||
ssd-mount
|
||
rsync -av /important/data/ /mnt/ssd-storage/backup/
|
||
ssd-safe-eject
|
||
```
|
||
|
||
### **2. Entwicklungsumgebung**
|
||
```bash
|
||
# Projekt-spezifische Daten auf wechselbaren SSDs
|
||
ssd-mount
|
||
cd /mnt/ssd-storage/project-alpha/
|
||
# Entwicklung...
|
||
ssd-safe-eject # SSD zu anderem Entwickler transportieren
|
||
```
|
||
|
||
### **3. Media-Server Erweiterung**
|
||
```bash
|
||
# Neue Video-Library hinzufügen
|
||
ssd-mount
|
||
ssd-test all # Qualitätsprüfung
|
||
# SMB-Freigabe automatisch verfügbar
|
||
```
|
||
|
||
### **4. Sichere Datenübertragung**
|
||
```bash
|
||
# Verschlüsselte Daten auf NTFS-SSD
|
||
ssd-mount
|
||
gpg --decrypt secret.gpg > /mnt/ssd-storage/data.txt
|
||
ssd-safe-eject # Hardware-sicher entfernen
|
||
```
|
||
|
||
## 🔒 Sicherheit und Best Practices
|
||
|
||
### **Sicherheitsfeatures**
|
||
- **Read-Only Mounting** für kritische Prüfungen
|
||
- **Process Detection** vor Safe-Eject
|
||
- **Buffer-Flush Überwachung** für Datenintegrität
|
||
- **UUID-basierte Identifikation** statt Device-Namen
|
||
- **Umfassendes Logging** für Audit-Trails
|
||
|
||
### **Best Practices**
|
||
1. **Immer `ssd-safe-eject` verwenden** statt einfacher `umount`
|
||
2. **Tests ausführen** nach dem Mounting neuer SSDs
|
||
3. **Logs regelmäßig prüfen** für Systemanomalien
|
||
4. **Backup der Konfiguration** in Git-Repository
|
||
5. **Systemd-Service nutzen** für Produktionsumgebungen
|
||
|
||
## 🚀 Template-Nutzung
|
||
|
||
### **Als Gitea-Template verwenden**
|
||
1. **"Use this template"** auf der Gitea-Repository-Seite klicken
|
||
2. **Neues Repository** für Ihr spezifisches Setup erstellen
|
||
3. **Anpassungen vornehmen**:
|
||
- Mount-Points in Scripten anpassen
|
||
- Firmen-spezifische Konfigurationen hinzufügen
|
||
- Zusätzliche Tests für Ihre Hardware entwickeln
|
||
4. **Deployment** in Ihrer Infrastruktur
|
||
|
||
### **Erweiterungsmöglichkeiten**
|
||
- **Encryption-Support** für verschlüsselte SSDs
|
||
- **RAID-Integration** für gespiegelte USB-Storage
|
||
- **Cloud-Backup** Integration mit S3-kompatiblen Systemen
|
||
- **Monitoring-Integration** mit Prometheus/Grafana
|
||
- **Multi-Device-Support** für mehrere gleichzeitige SSDs
|
||
|
||
## 🤝 Beitragen
|
||
|
||
### **Contribution Guidelines**
|
||
1. **Fork** des Repositories erstellen
|
||
2. **Feature-Branch** erstellen (`git checkout -b feature/amazing-feature`)
|
||
3. **Änderungen committen** (`git commit -m 'Add amazing feature'`)
|
||
4. **Branch pushen** (`git push origin feature/amazing-feature`)
|
||
5. **Pull Request** erstellen
|
||
|
||
### **Development Setup**
|
||
```bash
|
||
# Development-Umgebung vorbereiten
|
||
git clone https://git.gitcover.de/KMU/usb-ssd.git
|
||
cd usb-ssd
|
||
./scripts/installation/install.sh
|
||
# Entwicklung...
|
||
```
|
||
|
||
## 📄 License
|
||
|
||
Dieses Projekt ist unter der **MIT License** lizenziert. Siehe [LICENSE](LICENSE) Datei für Details.
|
||
|
||
```
|
||
MIT License - Copyright (c) 2025 Coverflex® | GitCover® Organization
|
||
Erlaubt uneingeschränkte Nutzung, Modifikation und Weiterverteilung.
|
||
```
|
||
|
||
## ⚠️ Haftungsausschluss (Disclaimer)
|
||
|
||
**WICHTIGER HINWEIS: Die Verwendung dieser Inhalte erfolgt auf eigene Gefahr.**
|
||
|
||
### **Haftungsausschluss**
|
||
Die Scripts und Tools in diesem Repository werden "wie besehen" zur Verfügung gestellt. Die Coverflex® | GitCover® Organization und die Mitwirkenden übernehmen **keine Haftung** für:
|
||
|
||
- **Datenverlust** oder Beschädigung von Dateien
|
||
- **Hardware-Schäden** an USB-SSDs oder anderen Speichergeräten
|
||
- **System-Ausfälle** oder Betriebsstörungen
|
||
- **Sicherheitsprobleme** oder unbefugten Zugriff
|
||
- **Produktionsausfälle** oder Geschäftsunterbrechungen
|
||
|
||
### **Verantwortung des Benutzers**
|
||
Vor der Verwendung in Produktionsumgebungen:
|
||
|
||
1. **Umfassende Tests** in isolierten Testumgebungen durchführen
|
||
2. **Vollständige Backups** aller wichtigen Daten erstellen
|
||
3. **Systemkonfiguration** dokumentieren und sichern
|
||
4. **Wiederherstellungsverfahren** testen und validieren
|
||
5. **Sicherheitsrichtlinien** des Unternehmens befolgen
|
||
|
||
### **Empfohlene Vorsichtsmaßnahmen**
|
||
- **Nie in kritischen Produktionssystemen** ohne vorherige Tests einsetzen
|
||
- **Immer mit non-kritischen Daten** beginnen
|
||
- **Monitoring und Logging** für alle Operationen aktivieren
|
||
- **Regelmäßige Backups** vor Script-Ausführung
|
||
- **Dokumentation aller Änderungen** an System-Konfigurationen
|
||
|
||
**Die MIT License enthält explizite Haftungsausschlüsse - siehe [LICENSE](LICENSE) für vollständige rechtliche Details.**
|
||
|
||
---
|
||
|
||
**⚠️ WARNUNG: Diese Software manipuliert Dateisysteme und Hardware-Devices. Unsachgemäße Verwendung kann zu irreversiblen Datenverlusten führen. Verwenden Sie diese Tools nur, wenn Sie die Risiken verstehen und akzeptieren.**
|
||
|
||
## 📞 Support
|
||
|
||
### **Community Support**
|
||
- **Issues**: [GitHub Issues](https://git.gitcover.de/KMU/usb-ssd/issues) für Bug-Reports und Feature-Requests
|
||
- **Discussions**: Repository-Discussions für allgemeine Fragen
|
||
- **Wiki**: [Repository Wiki](https://git.gitcover.de/KMU/usb-ssd/wiki) für erweiterte Dokumentation
|
||
|
||
### **Enterprise Support**
|
||
Für professionellen Support und Custom-Entwicklungen kontaktieren Sie die GitCover® Organization.
|
||
|
||
---
|
||
|
||
**Made with ❤️ by Coverflex® | GitCover® Organization**
|
||
*Professional USB-SSD Management for Linux Infrastructure* |