Dieses Dokument beschreibt ausführlich die Funktionsweise, Installation und Nutzung des Skripts clone_disk.sh, mit dem Festplattenabbilder interaktiv erzeugt und wahlweise lokal, per SSH oder auf einem Netzwerkshare abgelegt werden können.
Mit clone_disk.sh können Sie auf einfache Weise eine vollständige Kopie (Image) einer Festplatte erstellen und in verschiedenen Zielmedien ablegen:
- Lokal auf dem gleichen oder anderen Laufwerk
- Per SSH auf einen entfernten Server
- Netzwerkshare (NFS oder CIFS/SMB)
Das Skript führt Sie interaktiv durch alle notwendigen Schritte, vermeidet Überschreiben durch Zeitstempel und erlaubt Ausgabe im raw, raw.gz oder qcow2-Format.
-
Interaktive Menüs ohne zusätzliche Abhängigkeiten (nur Bash-Bordmittel)
-
Automatische Geräteerkennung mittels
lsblk -
Wahl zwischen Lokal, SSH und Netzwerkshare
-
Unterstützung für NFS und CIFS/SMB inklusive Passwortabfrage
-
Konfigurierbare Blockgröße (
dd bs=) für RAM-Anforderungen -
Ausgabeformate:
raw.gz(komprimiertes Roh-Image)raw(ungepacktes Roh-Image)qcow2(QEMU Copy-On-Write, wennqemu-imginstalliert)
-
Zeitstempel im Dateinamen, um Überschreiben zu vermeiden
-
Detaillierte Statusausgabe während des Klonvorgangs
- Bash (>= 4.x)
dd,gzip,lsblk,awk,stat,df- Für qcow2-Format:
qemu-img(optional) - Für CIFS/SMB:
mount.cifs(Teil voncifs-utils) - Für NFS: Kernel-Modul
nfsbzw. Paketnfs-common
-
Skript herunterladen und in ein Verzeichnis legen, z. B.
/usr/local/bin:wget https://example.com/clone_disk.sh -O /usr/local/bin/clone_disk.sh chmod +x /usr/local/bin/clone_disk.sh
-
(Optional) Pakete installieren:
# Für CIFS sudo apt install cifs-utils # Für qemu-img sudo apt install qemu-utils # Für NFS (Client) sudo apt install nfs-common
Das Skript gliedert sich in folgende Abschnitte:
- Prüfungen (Bash, qemu-img)
- Interaktive Auswahl von Quellgerät (
lsblk) und Speichertyp - Konfiguration des Speicherziels (Lokal, SSH, Netzwerkshare)
- Eingabe von Blockgröße und Ausgabeformat
- Benutzerdefinierter Basis-Dateiname sowie Zeitstempel-Generierung
- Klonvorgang mit
ddund ggf.qemu-imgfür Konvertierung - Abschlussmeldung und Anzeige der resultierenden Dateigröße
Das Skript zeigt alle physischen Laufwerke aus lsblk. Wählen Sie das gewünschte Gerät per Nummer aus.
Wählen Sie, ob das Abbild lokal, per SSH oder auf einem Netzwerkshare (NFS/CIFS) gespeichert werden soll.
-
Lokal: Ziel-Verzeichnis (
/tmpetc.) -
SSH: Ziel-Verzeichnis auf dem Remote-Host (
user@host:/pfad) -
Netzwerkshare:
- Protokoll (NFS oder CIFS)
- Freigabe-Pfad
- Lokaler Einhängepunkt (wird bei Bedarf angelegt)
- Bei CIFS: Benutzername & Passwort
- Blockgröße für
dd: 512K / 1M / 4M - Format:
raw.gz,rawoder (wenn verfügbar)qcow2
Geben Sie einen aussagekräftigen Namen ohne Extension ein. Ein Zeitstempel im Format YYYYMMDD_HHMMSS wird automatisch angehängt.
Das Skript führt den Klon mit dd aus:
- Bei
raw.gzwerden Daten on-the-fly komprimiert. - Bei
rawentsteht ein unkomprimiertes Image. - Bei
qcow2wird zunächstrawgeschrieben und anschließend mitqemu-img convertumgewandelt.
Während des Vorgangs zeigt dd status=progress den Kopierfortschritt.
$ clone_disk.sh
# Interaktiver Ablauf gemäß obiger AnleitungBeispiel für SSH-Backup:
Speichertyp: SSH
SSH-Ziel-Verzeichnis: backup@server:/mnt/backups
...
Fortfahren? j
Starte Klonvorgang: 2025-06-24
1048576+0 records in
1048576+0 records out
...
Klon abgeschlossen: backup@server:/mnt/backups/linuxserver_20250624_203045.img.gz
mount: cannot mount: Prüfen Sie Protokoll, Pfad und Berechtigungen.dd: cannot open: Stellen Sie sicher, dass Sie Root-Rechte haben und das Device nicht belegt ist.qemu-img: command not found: Installieren Sieqemu-utils.- SSH-Verbindung: Testen Sie manuell mit
ssh user@host "touch /mnt/backups/test".
Das Skript wird ohne Gewährleistung bereitgestellt. Der Anwender ist allein verantwortlich für den korrekten Einsatz und etwaige Datenverluste.