Skip to content

Latest commit

 

History

History
654 lines (479 loc) · 16.7 KB

File metadata and controls

654 lines (479 loc) · 16.7 KB

Kapitel 2: Installation

Komplette Installationsanleitung für disk2iso als Service oder Script.

Inhaltsverzeichnis

  1. Voraussetzungen
  2. Installation als Service (empfohlen)
  3. Installation als Script
  4. Manuelle Installation
  5. Installer-Wizard
  6. Service-Verwaltung
  7. Fehlerbehebung

Voraussetzungen

System-Anforderungen

  • Distribution: Debian 12+, Ubuntu 22.04+, Linux Mint 21+
  • Kernel: Linux 5.0+ (für moderne Laufwerks-Treiber)
  • Bash: Version 4.0 oder höher
  • Speicherplatz: Minimal 100 MB (+ Platz für ISOs)
  • Optisches Laufwerk: CD/DVD/Blu-ray kompatibel
  • systemd: Version 232+ (für Service-Modus)

Berechtigungen

  • Root-Zugriff: Erforderlich für Installation und Betrieb
  • sudo: Empfohlen für sichere Rechteverwaltung

Prüfen

# systemd-Version (für Service-Modus)
systemctl --version

# Laufwerk verfügbar?
ls -la /dev/sr0

# Bash-Version
bash --version

Internet-Verbindung

  • Installation: Zum Download der Abhängigkeiten (apt install)
  • Optional: Audio-CD (MusicBrainz), DVD/Blu-ray (TMDB)
  • Offline-Betrieb: Möglich (ohne Metadaten)

Installation als Service (empfohlen)

Der Service-Modus ist ideal für Dauerbetrieb und headless-Server.

Schnellstart

# 1. Projekt klonen
git clone https://github.com/DirkGoetze/disk2iso.git
cd disk2iso

# 2. Installer starten
sudo ./install.sh

Wizard-Ablauf

Seite 1: Willkommen

Kurze Übersicht über disk2iso Features.

Seite 2: Installations-Typ auswählen

┌───────────────────────────────────────────────────────────┐
│  Wählen Sie die gewünschte Installations-Art:            │
│                                                           │
│  ( ) Nur Script - Manuelle Ausführung                     │
│  (*) Script + systemd-Service - Automatischer Betrieb     │
│                                                           │
│  [OK] [Abbrechen]                                         │
└───────────────────────────────────────────────────────────┘

Wähle: Script + systemd-Service

Seite 3: Module auswählen

┌───────────────────────────────────────────────────────────┐
│  Wählen Sie die zu installierenden Module:               │
│                                                           │
│  [X] Audio-CD Support (MP3 + MusicBrainz)                 │
│  [X] Video-DVD Support (Entschlüsselt mit libdvdcss2)     │
│  [ ] Blu-ray Support (ddrescue - robust)                  │
│  [X] MQTT Integration (Home Assistant)                    │
│                                                           │
│  [OK] [Abbrechen]                                         │
└───────────────────────────────────────────────────────────┘

Standard: Audio-CD + Video-DVD + MQTT aktiv

Seite 4: Laufwerk-Erkennung

Automatische Erkennung von /dev/sr0 oder manuelle Auswahl.

Seite 5: Ausgabeverzeichnis

Standard: /media/iso

Ändern auf: /srv/disk2iso (empfohlen)

Seite 6: MQTT-Konfiguration

┌───────────────────────────────────────────────────────────┐
│  MQTT Broker-Einstellungen:                              │
│                                                           │
│  Broker-Adresse: 192.168.20.10                           │
│  Broker-Port: 1883                                        │
│  Benutzername: disk2iso                                   │
│  Passwort: ********                                       │
│                                                           │
│  [OK] [Abbrechen]                                         │
└───────────────────────────────────────────────────────────┘

Seite 7: Abhängigkeiten installieren

Automatische Installation aller benötigten Pakete:

  • Kern: coreutils, util-linux, genisoimage, whiptail
  • Audio-CD: cdparanoia, lame, eyed3, curl, jq, cd-discid
  • Video-DVD: dvdbackup, libdvdcss2
  • Blu-ray: gddrescue
  • MQTT: mosquitto-clients

Seite 8: Service-Installation

┌───────────────────────────────────────────────────────────┐
│  Installiere systemd-Service...                           │
│                                                           │
│  ✓ disk2iso.service → /etc/systemd/system/              │
│  ✓ systemctl daemon-reload                               │
│  ✓ systemctl enable disk2iso.service                     │
│  ✓ systemctl start disk2iso.service                      │
│                                                           │
│  Service-Status: ● aktiv (running)                       │
│                                                           │
│  [OK]                                                     │
└───────────────────────────────────────────────────────────┘

Seite 9: Abschluss

┌───────────────────────────────────────────────────────────┐
│  ✅ Installation erfolgreich abgeschlossen!               │
│                                                           │
│  Service läuft: disk2iso.service                         │
│  Web-Interface: http://<server-ip>:8080                 │
│                                                           │
│  Logs ansehen:                                            │
│  sudo journalctl -u disk2iso -f                          │
│                                                           │
│  ➜ Disc einlegen → Automatische Archivierung            │
│                                                           │
│  [OK]                                                     │
└───────────────────────────────────────────────────────────┘

Nach der Installation

# Service-Status prüfen
sudo systemctl status disk2iso

# Logs verfolgen
sudo journalctl -u disk2iso -f

# Web-Interface öffnen
xdg-open http://localhost:8080

Installation als Script

Für manuelle Ausführung ohne permanenten Service.

Installer-Wizard

sudo ./install.sh

Auf Seite 2: Nur Script auswählen

Installation nach:

  • /opt/disk2iso/ - Hauptverzeichnis
  • Symlink: /usr/local/bin/disk2iso

Manuelle Ausführung

# Disc einlegen, dann:
sudo disk2iso

# ODER: Mit spezifischem Laufwerk
sudo disk2iso --device /dev/sr1

# ODER: Mit Ausgabeverzeichnis
sudo disk2iso --output /mnt/nas/media

Manuelle Installation

Falls Wizard nicht funktioniert oder spezielle Anpassungen gewünscht:

1. Abhängigkeiten installieren

# Kern-Pakete (immer erforderlich)
sudo apt update
sudo apt install -y coreutils util-linux genisoimage eject mount whiptail

# Optional: Audio-CD Modul
sudo apt install -y cdparanoia lame eyed3 curl jq cd-discid wodim libcdio-utils

# Optional: Video-DVD Modul
sudo apt install -y dvdbackup libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg  # libdvdcss2 installieren

# Optional: Blu-ray Modul
sudo apt install -y gddrescue

# Optional: MQTT
sudo apt install -y mosquitto-clients

2. Dateien kopieren

# Erstelle Ziel-Ordner
sudo mkdir -p /opt/disk2iso/lib/lang
sudo mkdir -p /opt/disk2iso/conf
sudo mkdir -p /opt/disk2iso/services/{disk2iso,disk2iso-web,disk2iso-updater}

# Hauptskripte
sudo cp services/disk2iso/daemon.sh /opt/disk2iso/services/disk2iso/
sudo cp services/disk2iso-web/app.py /opt/disk2iso/services/disk2iso-web/
sudo cp services/disk2iso-updater/updater.sh /opt/disk2iso/services/disk2iso-updater/
sudo chmod +x /opt/disk2iso/services/disk2iso/daemon.sh
sudo chmod +x /opt/disk2iso/services/disk2iso-updater/updater.sh

# Bibliotheken
sudo cp lib/*.sh /opt/disk2iso/lib/

# Sprachdateien
sudo cp lang/* /opt/disk2iso/lang/

# Konfiguration
sudo cp conf/disk2iso.conf /opt/disk2iso/conf/

# Web-Interface
sudo cp -r services/disk2iso-web/{templates,static,routes} /opt/disk2iso/services/disk2iso-web/

3. Service einrichten (optional)

# Service-Datei erstellen
sudo nano /etc/systemd/system/disk2iso.service

Inhalt:

[Unit]
Description=disk2iso - Optical Media Archiver
Documentation=https://github.com/DirkGoetze/disk2iso
After=network.target

[Service]
Type=simple
User=root
Group=root
WorkingDirectory=/opt/disk2iso
ExecStart=/opt/disk2iso/services/disk2iso/daemon.sh
Restart=on-failure
RestartSec=10s
NoNewPrivileges=true
PrivateTmp=true
StandardOutput=journal
StandardError=journal
SyslogIdentifier=disk2iso

[Install]
WantedBy=multi-user.target

Aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable disk2iso
sudo systemctl start disk2iso

4. Web-Service einrichten (optional)

# Python-Abhängigkeiten
sudo apt install -y python3 python3-flask python3-markdown

# Web-Service-Datei
sudo nano /etc/systemd/system/disk2iso-web.service

Inhalt:

[Unit]
Description=disk2iso Web Interface
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/disk2iso/services/disk2iso-web
ExecStart=/usr/bin/python3 /opt/disk2iso/services/disk2iso-web/app.py
Restart=on-failure

[Install]
WantedBy=multi-user.target

Aktivieren:

sudo systemctl daemon-reload
sudo systemctl enable disk2iso-web
sudo systemctl start disk2iso-web

Installer-Wizard

Detaillierte Beschreibung aller Wizard-Seiten.

Seite 1: Willkommen

┌───────────────────────────────────────────────────────────┐
│  Willkommen zur Installation von disk2iso v1.3!          │
│                                                           │
│  Dieses Werkzeug archiviert optische Medien automatisch  │
│  als ISO-Images beim Einlegen in das Laufwerk.           │
│                                                           │
│  Unterstützte Medien:                                     │
│  • Audio-CDs → MP3 mit MusicBrainz-Metadaten            │
│  • Video-DVDs → ISO (entschlüsselt)                      │
│  • Blu-rays → ISO (robustes Kopieren)                    │
│  • Daten-Discs → ISO (CD/DVD/BD-ROM)                     │
│                                                           │
│  Drücken Sie OK zum Fortfahren...                         │
└───────────────────────────────────────────────────────────┘

Seite 2: Installations-Typ

Nur Script:

  • Keine systemd-Integration
  • Manuelle Ausführung: sudo disk2iso
  • Ideal zum Testen

Script + Service:

  • Automatischer Start beim Booten
  • Permanent im Hintergrund
  • Ideal für Dauerbetrieb

Seite 3: Modul-Auswahl

Audio-CD Support:

  • cdparanoia (Lossless Ripping)
  • lame (MP3 V2 ~190kbps)
  • MusicBrainz Metadaten
  • Cover-Download

Video-DVD Support:

  • dvdbackup (CSS-Entschlüsselung)
  • genisoimage (ISO-Erstellung)
  • TMDB Metadaten

Blu-ray Support:

  • ddrescue (Robust, Fehlertoleranz)
  • dd (Fallback)

MQTT Integration:

  • Home Assistant Support
  • Echtzeit-Status
  • Push-Benachrichtigungen

Seite 4: Laufwerks-Erkennung

Automatische Erkennung via /dev/sr*.

Fallback: /dev/sr0 als Standard.

Seite 5: Ausgabeverzeichnis

Standard: /media/iso

Empfohlen: /srv/disk2iso (FHS-konform)

Alternativ: Netzwerk-Speicher (NFS/CIFS)

Seite 6: MQTT-Konfiguration

Nur wenn MQTT-Modul aktiviert.

Broker-Adresse: IP deines Home Assistant
Port: 1883 (Standard)
Auth: Optional (empfohlen)

Seite 7: Abhängigkeiten

Automatische Installation via apt install:

  1. apt update
  2. Kern-Pakete (immer)
  3. Modul-Pakete (gewählt)
  4. Fortschrittsbalken

Dauer: 1-5 Minuten

Seite 8: Dateien kopieren

Ziel: /opt/disk2iso/

Struktur:

/opt/disk2iso/
├── services/
│   ├── disk2iso/
│   │   └── daemon.sh
│   ├── disk2iso-web/
│   │   ├── app.py
│   │   ├── templates/
│   │   ├── static/
│   │   └── routes/
│   ├── disk2iso-updater/
│   │   └── updater.sh
│   ├── disk2iso.service
│   ├── disk2iso-web.service
│   ├── disk2iso-updater.service
│   └── disk2iso-updater.timer
├── lib/
│   └── lib*.sh
├── lang/
├── conf/
│   └── disk2iso.conf
└── modules/
    ├── installed/
    ├── available/
    └── downloads/

Seite 9: Service-Installation

Nur bei "Script + Service":

  1. disk2iso.service → /etc/systemd/system/
  2. systemctl daemon-reload
  3. systemctl enable disk2iso
  4. systemctl start disk2iso
  5. systemctl enable disk2iso-web
  6. systemctl start disk2iso-web

Seite 10: Abschluss

Zusammenfassung:

  • Installierte Module
  • Service-Status
  • Web-Interface URL
  • Nächste Schritte

Service-Verwaltung

Grundbefehle

# Status anzeigen
sudo systemctl status disk2iso

# Service starten
sudo systemctl start disk2iso

# Service stoppen
sudo systemctl stop disk2iso

# Service neu starten
sudo systemctl restart disk2iso

# Autostart aktivieren
sudo systemctl enable disk2iso

# Autostart deaktivieren
sudo systemctl disable disk2iso

Logs ansehen

# Echtzeit-Logs
sudo journalctl -u disk2iso -f

# Letzte 50 Zeilen
sudo journalctl -u disk2iso -n 50

# Seit heute
sudo journalctl -u disk2iso --since today

# Nur Fehler
sudo journalctl -u disk2iso -p err

Konfiguration ändern

# Konfiguration bearbeiten
sudo nano /opt/disk2iso/conf/disk2iso.conf

# Service neu starten
sudo systemctl restart disk2iso

Fehlerbehebung

Installer startet nicht

Problem: ./install.sh: command not found

Lösung:

chmod +x install.sh
sudo ./install.sh

Kein whiptail/dialog

Problem: whiptail: not found

Lösung:

sudo apt install whiptail dialog
# ODER: Manuelle Installation (siehe oben)

Laufwerk nicht erkannt

Problem: /dev/sr0 existiert nicht

Diagnose:

ls -la /dev/sr*
lsmod | grep sr_mod
dmesg | grep -i "cd\|dvd"

Lösung:

sudo modprobe sr_mod
echo "sr_mod" | sudo tee -a /etc/modules

libdvdcss2 Installation

Problem: libdvdcss2 nicht gefunden

Lösung:

sudo apt install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg
# Wizard folgen, Lizenz akzeptieren

Service startet nicht

Problem: Failed to start disk2iso.service

Diagnose:

sudo journalctl -xe | grep disk2iso
sudo systemd-analyze verify disk2iso.service

Häufige Ursachen:

  1. Hauptskript nicht ausführbar:

    sudo chmod +x /opt/disk2iso/services/disk2iso/daemon.sh
  2. Pfad falsch:

    sudo nano /etc/systemd/system/disk2iso.service
    # ExecStart=/opt/disk2iso/services/disk2iso/daemon.sh prüfen
  3. Abhängigkeiten fehlen:

    /opt/disk2iso/services/disk2iso/daemon.sh --test

Keine Schreibrechte

Problem: Permission denied für /srv/disk2iso

Lösung:

sudo chown -R root:root /srv/disk2iso
sudo chmod 755 /srv/disk2iso

Weiterführende Links


Version: 1.3.0
Letzte Aktualisierung: 7. Februar 2026