Setup installation
This commit is contained in:
439
docs/installation-guide.md
Normal file
439
docs/installation-guide.md
Normal file
@@ -0,0 +1,439 @@
|
||||
# USB-SSD Management System - Detaillierte Installation
|
||||
|
||||
## Übersicht
|
||||
|
||||
Diese Anleitung führt Sie Schritt-für-Schritt durch die Installation des USB-SSD Management Systems auf Ubuntu/Linux-Servern. Das System ist speziell für KMU-Infrastrukturen optimiert und bietet professionelle Verwaltung wechselbarer USB-C SSDs.
|
||||
|
||||
## Systemanforderungen
|
||||
|
||||
### Mindestanforderungen
|
||||
- **Betriebssystem**: Ubuntu 20.04+ / Debian 11+ / CentOS 8+ / RHEL 8+
|
||||
- **Hardware**: USB-C Port, mindestens 1GB freier Speicher
|
||||
- **Berechtigungen**: `sudo` Zugriff für Installation
|
||||
- **Netzwerk**: Internetverbindung für Package-Downloads
|
||||
|
||||
### Empfohlene Konfiguration
|
||||
- **RAM**: 4GB+ für Performance-Tests
|
||||
- **CPU**: 2+ Cores für parallele Operationen
|
||||
- **Storage**: 10GB+ freier Speicher für Logs und Caches
|
||||
- **USB**: USB 3.0+ für optimale Performance
|
||||
|
||||
### Unterstützte Distributionen
|
||||
| Distribution | Version | Status | Notizen |
|
||||
|--------------|---------|--------|---------|
|
||||
| Ubuntu | 20.04+ | ✅ Vollständig | Empfohlen für Produktionsumgebungen |
|
||||
| Debian | 11+ | ✅ Vollständig | Stabile Alternative zu Ubuntu |
|
||||
| CentOS | 8+ | ✅ Vollständig | Enterprise-Umgebungen |
|
||||
| RHEL | 8+ | ✅ Vollständig | Enterprise-Support verfügbar |
|
||||
| Fedora | 35+ | ⚠️ Beta | Community-Support |
|
||||
| Arch Linux | Rolling | ⚠️ Beta | Für erfahrene Benutzer |
|
||||
|
||||
## Vor der Installation
|
||||
|
||||
### 1. System-Update
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
|
||||
# CentOS/RHEL
|
||||
sudo yum update -y
|
||||
|
||||
# Fedora
|
||||
sudo dnf update -y
|
||||
```
|
||||
|
||||
### 2. Git installieren
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt install git -y
|
||||
|
||||
# CentOS/RHEL
|
||||
sudo yum install git -y
|
||||
|
||||
# Fedora
|
||||
sudo dnf install git -y
|
||||
```
|
||||
|
||||
### 3. System-Informationen sammeln
|
||||
```bash
|
||||
# Betriebssystem-Version
|
||||
lsb_release -a
|
||||
|
||||
# Verfügbarer Speicher
|
||||
df -h
|
||||
|
||||
# USB-Ports identifizieren
|
||||
lsusb
|
||||
|
||||
# Aktuelle Benutzer-Gruppen
|
||||
groups $USER
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
### Schritt 1: Repository klonen
|
||||
```bash
|
||||
# In Home-Verzeichnis wechseln
|
||||
cd ~
|
||||
|
||||
# Repository klonen
|
||||
git clone https://git.gitcover.de/KMU/usb-ssd.git
|
||||
|
||||
# In Projekt-Verzeichnis wechseln
|
||||
cd usb-ssd
|
||||
|
||||
# Repository-Struktur prüfen
|
||||
ls -la
|
||||
```
|
||||
|
||||
### Schritt 2: Installations-Script ausführen
|
||||
```bash
|
||||
# Standard-Installation (empfohlen)
|
||||
sudo ./scripts/installation/install.sh
|
||||
|
||||
# Installation mit Verbose-Output
|
||||
sudo ./scripts/installation/install.sh --verbose
|
||||
|
||||
# Interaktive Installation mit Benutzer-Eingaben
|
||||
sudo ./scripts/installation/install.sh --interactive
|
||||
```
|
||||
|
||||
### Schritt 3: Installation verifizieren
|
||||
```bash
|
||||
# Installierte Scripts prüfen
|
||||
ls -la /usr/local/bin/ssd-*
|
||||
|
||||
# Systemd-Services prüfen
|
||||
sudo systemctl status ssd-detection.service
|
||||
|
||||
# Udev-Rules prüfen
|
||||
ls -la /etc/udev/rules.d/99-ssd-*
|
||||
|
||||
# Benutzer-Berechtigungen prüfen
|
||||
groups $USER
|
||||
```
|
||||
|
||||
## Erweiterte Installationsoptionen
|
||||
|
||||
### Custom-Installation
|
||||
```bash
|
||||
# Installation in Custom-Verzeichnis
|
||||
sudo ./scripts/installation/install.sh --prefix /opt/ssd-tools
|
||||
|
||||
# Nur bestimmte Komponenten installieren
|
||||
sudo ./scripts/installation/install.sh --components "detection,management"
|
||||
|
||||
# Installation ohne Systemd-Services
|
||||
sudo ./scripts/installation/install.sh --no-systemd
|
||||
|
||||
# Installation mit Custom-Konfiguration
|
||||
sudo ./scripts/installation/install.sh --config /path/to/custom.conf
|
||||
```
|
||||
|
||||
### Benutzer-spezifische Installation
|
||||
```bash
|
||||
# Installation nur für aktuellen Benutzer (ohne sudo)
|
||||
./scripts/installation/install.sh --user-install
|
||||
|
||||
# Scripts werden installiert nach:
|
||||
# ~/.local/bin/ssd-*
|
||||
# ~/.config/ssd-management/
|
||||
```
|
||||
|
||||
### Entwicklungs-Installation
|
||||
```bash
|
||||
# Installation mit Debug-Modus
|
||||
sudo ./scripts/installation/install.sh --debug --verbose
|
||||
|
||||
# Installation mit Entwicklungs-Tools
|
||||
sudo ./scripts/installation/install.sh --dev-tools
|
||||
|
||||
# Symlinks statt Kopien (für Entwicklung)
|
||||
sudo ./scripts/installation/install.sh --symlink
|
||||
```
|
||||
|
||||
## Post-Installation Konfiguration
|
||||
|
||||
### 1. Benutzer-Berechtigungen
|
||||
```bash
|
||||
# Aktuellen Benutzer zu ssd-users Gruppe hinzufügen
|
||||
sudo usermod -a -G ssd-users $USER
|
||||
|
||||
# Disk-Gruppe für Hardware-Zugriff
|
||||
sudo usermod -a -G disk $USER
|
||||
|
||||
# Neue Gruppen-Mitgliedschaft aktivieren
|
||||
newgrp ssd-users
|
||||
|
||||
# Berechtigungen prüfen
|
||||
groups
|
||||
```
|
||||
|
||||
### 2. Systemd-Services konfigurieren
|
||||
```bash
|
||||
# Services aktivieren
|
||||
sudo systemctl enable ssd-detection.service
|
||||
sudo systemctl enable ssd-automount.service
|
||||
|
||||
# Services starten
|
||||
sudo systemctl start ssd-detection.service
|
||||
sudo systemctl start ssd-automount.service
|
||||
|
||||
# Status prüfen
|
||||
sudo systemctl status ssd-detection.service
|
||||
sudo systemctl status ssd-automount.service
|
||||
```
|
||||
|
||||
### 3. Udev-Rules aktivieren
|
||||
```bash
|
||||
# Udev-Rules neu laden
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
|
||||
# Test mit angeschlossener USB-SSD
|
||||
sudo udevadm test /sys/block/sdb
|
||||
```
|
||||
|
||||
### 4. Logging konfigurieren
|
||||
```bash
|
||||
# Log-Verzeichnisse erstellen
|
||||
sudo mkdir -p /var/log/ssd-management
|
||||
|
||||
# Log-Rotation aktivieren
|
||||
sudo systemctl enable logrotate.timer
|
||||
|
||||
# Erste Logs prüfen
|
||||
sudo tail -f /var/log/ssd-detection.log
|
||||
```
|
||||
|
||||
## Erste Verwendung
|
||||
|
||||
### 1. USB-C SSD anschließen
|
||||
```bash
|
||||
# SSD anschließen und erkennen lassen
|
||||
# Automatische Erkennung durch udev-rules
|
||||
|
||||
# Manuelle Erkennung
|
||||
ssd-detect.sh
|
||||
|
||||
# Erkannte Geräte anzeigen
|
||||
lsblk | grep -E "sd[b-z]"
|
||||
```
|
||||
|
||||
### 2. Erste Mount-Operation
|
||||
```bash
|
||||
# Automatisches Mounting
|
||||
ssd-mount-manager.sh mount
|
||||
|
||||
# Mount-Status prüfen
|
||||
ssd-mount-manager.sh status
|
||||
|
||||
# Mount-Point prüfen
|
||||
ls -la /mnt/ssd-storage/
|
||||
```
|
||||
|
||||
### 3. Test-Suite ausführen
|
||||
```bash
|
||||
# Schnelle Tests
|
||||
ssd-test-suite.sh --quick
|
||||
|
||||
# Vollständige Tests
|
||||
ssd-test-suite.sh all
|
||||
|
||||
# Performance-Benchmark
|
||||
ssd-test-suite.sh --benchmark
|
||||
```
|
||||
|
||||
### 4. Sichere Entfernung
|
||||
```bash
|
||||
# Safe-Eject ausführen
|
||||
ssd-safe-eject.sh
|
||||
|
||||
# Status nach Eject prüfen
|
||||
ssd-mount-manager.sh status
|
||||
```
|
||||
|
||||
## Konfiguration anpassen
|
||||
|
||||
### 1. Haupt-Konfigurationsdatei
|
||||
```bash
|
||||
# Konfigurationsdatei bearbeiten
|
||||
sudo nano /etc/ssd-management/config.conf
|
||||
|
||||
# Beispiel-Konfiguration:
|
||||
SSD_MOUNT_POINT="/mnt/ssd-storage"
|
||||
SSD_LOG_LEVEL="INFO"
|
||||
SSD_AUTO_MOUNT="true"
|
||||
SSD_SMB_READY="true"
|
||||
```
|
||||
|
||||
### 2. Mount-Optionen anpassen
|
||||
```bash
|
||||
# NTFS-Mount-Optionen
|
||||
SSD_MOUNT_OPTIONS="uid=1000,gid=1000,umask=022,windows_names"
|
||||
|
||||
# Performance-Optimierungen
|
||||
SSD_MOUNT_OPTIONS="$SSD_MOUNT_OPTIONS,big_writes,cache=strict"
|
||||
```
|
||||
|
||||
### 3. Logging-Level anpassen
|
||||
```bash
|
||||
# Debug-Logging aktivieren
|
||||
export SSD_LOG_LEVEL=DEBUG
|
||||
|
||||
# Syslog-Integration
|
||||
export SSD_USE_SYSLOG=true
|
||||
|
||||
# Log-Datei-Pfad
|
||||
export SSD_LOG_FILE="/var/log/ssd-management.log"
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Häufige Installations-Probleme
|
||||
|
||||
#### Problem: "Permission denied"
|
||||
```bash
|
||||
# Lösung: Installation mit sudo ausführen
|
||||
sudo ./scripts/installation/install.sh
|
||||
|
||||
# Benutzer-Berechtigungen prüfen
|
||||
sudo -l
|
||||
```
|
||||
|
||||
#### Problem: "Package not found"
|
||||
```bash
|
||||
# Lösung: Repository-Updates durchführen
|
||||
sudo apt update # Ubuntu/Debian
|
||||
sudo yum update # CentOS/RHEL
|
||||
|
||||
# EPEL-Repository aktivieren (CentOS/RHEL)
|
||||
sudo yum install epel-release
|
||||
```
|
||||
|
||||
#### Problem: "Systemd service failed"
|
||||
```bash
|
||||
# Service-Status prüfen
|
||||
sudo systemctl status ssd-detection.service
|
||||
|
||||
# Service-Logs anzeigen
|
||||
sudo journalctl -u ssd-detection.service
|
||||
|
||||
# Service neu starten
|
||||
sudo systemctl restart ssd-detection.service
|
||||
```
|
||||
|
||||
#### Problem: "USB device not detected"
|
||||
```bash
|
||||
# USB-Geräte auflisten
|
||||
lsusb
|
||||
|
||||
# Block-Geräte anzeigen
|
||||
lsblk
|
||||
|
||||
# Udev-Events überwachen
|
||||
sudo udevadm monitor
|
||||
|
||||
# NTFS-Support prüfen
|
||||
sudo modprobe ntfs
|
||||
```
|
||||
|
||||
### Diagnose-Tools
|
||||
|
||||
#### System-Diagnose
|
||||
```bash
|
||||
# Installations-Status prüfen
|
||||
./scripts/installation/install.sh --status
|
||||
|
||||
# Abhängigkeiten validieren
|
||||
./scripts/installation/install.sh --check-dependencies
|
||||
|
||||
# Konfiguration testen
|
||||
./scripts/installation/install.sh --validate
|
||||
```
|
||||
|
||||
#### Hardware-Diagnose
|
||||
```bash
|
||||
# USB-Controller prüfen
|
||||
lspci | grep -i usb
|
||||
|
||||
# Kernel-Module prüfen
|
||||
lsmod | grep -E "(usb|ntfs)"
|
||||
|
||||
# Hardware-Logs prüfen
|
||||
dmesg | grep -i usb
|
||||
```
|
||||
|
||||
## Deinstallation
|
||||
|
||||
### Vollständige Deinstallation
|
||||
```bash
|
||||
# Deinstallations-Script ausführen
|
||||
sudo ./scripts/installation/uninstall.sh
|
||||
|
||||
# Manuelle Bereinigung (falls nötig)
|
||||
sudo rm -rf /usr/local/bin/ssd-*
|
||||
sudo rm -rf /etc/ssd-management/
|
||||
sudo rm -f /etc/systemd/system/ssd-*.service
|
||||
sudo rm -f /etc/udev/rules.d/99-ssd-*.rules
|
||||
```
|
||||
|
||||
### Konfiguration beibehalten
|
||||
```bash
|
||||
# Nur Scripts entfernen
|
||||
sudo ./scripts/installation/uninstall.sh --keep-config
|
||||
|
||||
# Logs beibehalten
|
||||
sudo ./scripts/installation/uninstall.sh --keep-logs
|
||||
```
|
||||
|
||||
## Upgrade-Prozess
|
||||
|
||||
### Standard-Upgrade
|
||||
```bash
|
||||
# Repository aktualisieren
|
||||
cd ~/usb-ssd
|
||||
git pull origin main
|
||||
|
||||
# Upgrade ausführen
|
||||
sudo ./scripts/installation/install.sh --upgrade
|
||||
|
||||
# Services neu starten
|
||||
sudo systemctl restart ssd-detection.service ssd-automount.service
|
||||
```
|
||||
|
||||
### Backup vor Upgrade
|
||||
```bash
|
||||
# Konfiguration sichern
|
||||
sudo cp -r /etc/ssd-management /etc/ssd-management.backup.$(date +%Y%m%d)
|
||||
|
||||
# Scripts sichern
|
||||
sudo mkdir -p /tmp/ssd-backup
|
||||
sudo cp /usr/local/bin/ssd-* /tmp/ssd-backup/
|
||||
```
|
||||
|
||||
## Support und Hilfe
|
||||
|
||||
### Community-Support
|
||||
- **Issues**: [Repository Issues](https://git.gitcover.de/KMU/usb-ssd/issues)
|
||||
- **Discussions**: Repository-Discussions
|
||||
- **Wiki**: [Repository Wiki](https://git.gitcover.de/KMU/usb-ssd/wiki)
|
||||
|
||||
### Logs für Support
|
||||
```bash
|
||||
# System-Informationen sammeln
|
||||
sudo ./scripts/installation/install.sh --system-info > system-info.txt
|
||||
|
||||
# Logs sammeln
|
||||
sudo tar -czf ssd-logs.tar.gz /var/log/ssd-*.log
|
||||
|
||||
# Konfiguration anonymisieren
|
||||
sudo cp /etc/ssd-management/config.conf config-anonymized.conf
|
||||
```
|
||||
|
||||
### Enterprise-Support
|
||||
Für professionellen Support und Custom-Entwicklungen kontaktieren Sie die GitCover® Organization.
|
||||
|
||||
---
|
||||
|
||||
**⚠️ Wichtiger Hinweis**: Diese Installation manipuliert System-Konfigurationen und Hardware-Zugriffe. Führen Sie die Installation nur auf Systemen durch, auf denen Sie vollständige administrative Rechte haben und verstehen die Auswirkungen der Änderungen.
|
Reference in New Issue
Block a user