Wie kann ein laufender Raspberry Pi ein backup seiner eigenen SD-Karte anfertigen?

Wenn an dem rPi ein USB-Stick angeschlossen ist kann ein backup der SD-Karte auf den USB-Stick angefertigt werden mit:
sudo dd if=/dev/mmcblk0 of=/media/usb1/backup/rp-sicherung.img bs=1MB

Das ganze dauert bei mir, mit einem ext4 formatierten 32GB-Stick (USB 3.0) ca. 12 min:
Bildschirmfoto 2014-01-29 um 21.44.40

Das kann auch durch ein script automatisch ausgeführt werden. Das werde ich bei Gelegenheit mal ausprobieren. Oder habt ihr eine andere bzw. bessere Lösung bzw. script? Dann bitte URL oder Script hier posten.

(Besucher 14.371 und 1 Heute)

13 Antworten auf „Wie kann ein laufender Raspberry Pi ein backup seiner eigenen SD-Karte anfertigen?“

  1. Hallo Thomas,
    hast du schon mal ein solches Backup wieder zurück gespielt ? Ich bin jetzt nicht der dd Guru, aber ich frage mich gerade was mit geöffneten Dateien passiert ?
    Gruß Kay

  2. Hi

    Kay sieht das ganz recht so. Man kann von einer gemounteten Partition zwar mittel dd ein Image erzeugen jedoch ist nicht gewähleistet das wenn man es zurück spielet alles läuft. (Es gibt z.b. Lock Dateien zu dem kann es zu Probleme kommen wenn gerade auf die Partition geschrieben wird. ) Dieses Probleme kann man nur umgehen in dem man die Partition read-only mountet und dann mittel dd ein Image erstellt.

    Bei einem Arch kann man einen kleine Trick anweden.
    Wenn man sich die Liste der installierten Pakte abspeichert und dazu noch alle *.conf ind /etc kann man das System ganz gut wieder herstellen wenn es mal Kaput ist.

    1) Neues Image auf SD
    2) Pakete installieren (wenn man die Liste hat ist das 1 Befehl + Warte zeit)
    3) *.conf datein zurück schrieben (auch 1 Befehel)

    Die Privaten daten müssen natürlich seperat gesichert werden.

  3. Mutig. Im laufenden Betrieb mit dd…

    Im schlimmsten Fall hast Du damit nur Datenschrott, denn kopiert den Datenstrom. Du hast keinen Snapshot und wenn es dumm läuft Inkonsitenzen, wenn im Laufe des kopierens noch Daten geschrieben/gelöscht werden.
    Da kannst Du genauso mit cp arbeiten.
    Raspi runterfahren, SD-Card auf anderem Rechner mit dd kopieren wäre deutlich sicherer.

    Gruß
    Karsten

    1. Das man technisch das Image wieder zurück spielen kann ist schon klar, aber ich bin hier nicht der einzigste der da bedenken hat, ob dieses auch lauffähig ist. Ich bin gespannt ob hier eine Lösung gefunden wird.

    2. Wie ich schin geschrieben haben kannst du alle Partitionen aks read-only mounten dann geht es das sonst kann es klappen wird aber wenn du viele Programmen und Services laufen hast in den meisten fällen nicht klappen.

      Bei dem Script werden zu dem der apache, maysql und cron gestopt.
      Wenn man sonst keiner Services oder andere Programmen Laufen hat kann es schon funktionieren. Das Problem kommt halt dadurch zu stande wenn wärend der dd Befehl läuft ein anderes Programm etwas auf die SD Karte schrieben will. Mittel readonly kann man das verhindern. (“mount -o remount, ro”)

  4. Die Frage ist was man unter einem Backup versteht. Eine 1:1 Kopie erfordert, dass man die Pi anhält und manuell ein dd, tar oder rsync Backup erstellt. Dann ist man 100% sicher dass die Kopie wieder funktionieren wird.
    Das ist aber manuelle Arbeit und deshalb nicht automatisierbar 🙁
    Wenn man alle aktiven Services wie HTTP Server (Apache oder nginx), MYSQL DB, samba, nfsserver und was noch so wichtige Dinge auf der Pi erledigt vor dem Backup stoppt sind alle wichtigen Daten gesichert und können auf der Pi mit einem Restore wiederhergestellt werden. Ein paar fehlende Logeinträge sind zu verschmerzen.
    Ich benutze mittlerweile raspiBackup.sh immer wieder um spezielle verschiedene Betriebssystemstände, die ich gesichert habe, auf dieselbe SDKarte zu restoren. D.h. damit kann ich – auch wenn es etwas dauert – genau eine SDKarte immer wieder mit unterschiedlichen Pi Betriebssystem- und Konfigurationsständen versehen.
    Also keine Angst eine laufende Pi zu sichern – nur muss eben alles Aktive vorher gestoppt werden.

  5. Moin,

    es geht auch mit partimage- ist sowas wie ein dos-gui-
    man kann mit dem passenden Server dann auch über das Netzwerk sichern, sofern der pi per LAN verbunden ist.
    Abgesehen davon- ausgezeichnetes Blog hier!

  6. Habe so regelmäßig Backups gemacht. Jetzt wo der pi nicht mehr läuft wollte ich eines der Backups mit win32 diskimager zurück spielen aber der pi bootet nicht und ich kann nicht auf die Daten der Karte zugreiben.
    Ärgerlich da so mein kompletter fhem Server weg ist

  7. Ich sichere meine Partition immer mit rsync. Einfach ein USB Medium anstöpseln welches ext-Formatiert ist und das System dahin spiegeln. Und wenn das Sys auf der SD Karte dann mal geschrottet sein sollte kann man in dem Bootloader auf der SD-Karte das USB-Medium zum booten hinterlegen und mit rsync das ganze Spiel andersrum machen. Und ja … die Spiegelung booted. 🙂 So sieht mein Script aus:

    mount /dev/disk/by-id/ata-TOSHIBA_MQ01ABD100_44J5SNK7S-part1 /mnt/backup
    rsync -vahx –delete / /mnt/backup/
    umount /mnt/backup

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.