Files
usb-ssd/README.md
2025-08-03 14:00:25 +02:00

288 lines
10 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# USB-SSD Management System
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Version](https://img.shields.io/badge/Version-0.1.0-blue.svg)](https://git.gitcover.de/KMU/usb-ssd/releases)
[![Platform](https://img.shields.io/badge/Platform-Linux-green.svg)](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.md # 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.md) 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.md) 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*