Ich schreibe jetzt seit ein paar Wochen Programme für meinen Raspberry Pi (mit Raspbian) und möchte sicherstellen, dass ich meine geleistete Arbeit schütze.
Wie kann ich die von mir erstellten Dateien sichern?
Kann ich die SD-Karte einfach in meinen Windows (XP oder 7) -PC einstecken und entweder auf die Festplatte oder eine andere SD-Karte kopieren?
git
oder verwendenhg
. Auf diese Weise verfügen Sie nicht nur über Kopien Ihres Codes an mehreren Stellen, sondern können auch den vollständigen Verlauf der Codeänderungen nachvollziehen.Antworten:
Wenn Sie alle Daten beibehalten möchten, müssen Sie wahrscheinlich ein Disk-Image erstellen. Außerdem kann Windows typische Linux-Dateisysteme nicht erkennen, sodass Sie Ihre Dateien wahrscheinlich nicht einmal sehen können, wenn Sie Ihre SD-Karte einstecken.
Wenn Sie ein Disk-Image erstellen, bleiben nicht nur die Dateien erhalten, sondern auch die Dateisystemstruktur. Wenn Sie sich dazu entschließen, Ihre neue SD-Karte zu flashen, können Sie sie einfach einstecken und sie funktioniert.
Linux
Unter Linux können Sie das Standardwerkzeug
dd
verwenden:Wo
/dev/sdx
ist deine SD-Karte?Mac
Auf dem Mac können Sie auch das Standardwerkzeug
dd
mit einer etwas anderen Syntax verwenden:Wo
/dev/rdiskx
ist deine SD-Karte?(Die Verwendung von rdisk ist vorzuziehen, da dies das Raw-Gerät ist - schneller)
Um herauszufinden, welcher Datenträger Ihr Gerät ist
diskutil list
, geben Sie an einer Eingabeaufforderung Folgendes ein: Außerdem müssen Sie möglicherweise root sein. diese Art zu tunsudo -s
und Ihr Passwort eingeben , wenn Sie dazu aufgefordert werden .Windows
Option 1
Unter Windows können Sie den umgekehrten Vorgang verwenden, den Sie beim Flashen der SD-Karte verwendet haben.
Sie können Win32 Disk Imager verwenden , das bevorzugte Tool zum Flashen einer SD-Karte der Foundation. Geben Sie einfach den Dateinamen (den Speicherort und den Namen der zu speichernden Backup-Image-Datei) ein, wählen Sie das Gerät (die SD-Karte) und drücken Sie Lesen:
Natürlich können Sie auch RawWrite verwenden ,
dd
für Windows oder ähnliche Tools ist der Vorgang ziemlich ähnlich.Option 2
Wenn Sie nicht Ihr gesamtes System, sondern nur bestimmte Dateien sichern möchten, empfehlen wir Ihnen, eine Verbindung zu Ihrem Raspberry Pi über SFTP herzustellen und die Dateien auf Ihren lokalen Computer zu kopieren (Sie können den WinScp- Client verwenden). Wenn Sie SSH aktiviert haben, erfordert SFTP normalerweise keine spezielle Konfiguration auf der Raspberry Pi-Seite.
Eine andere Möglichkeit besteht darin, die Dateien mit rsync auf ein Remote-System zu kopieren .
Sie können auch spezielle Treiber installieren, damit Ihr Windows
ext
Dateisysteme lesen kann (und somit die gesamte SD-Karte lesen kann),ext2fsd
aber der Aufwand lohnt sich wahrscheinlich nicht.Da das Bild dieselbe Größe hat wie Ihre SD-Karte, möchten Sie es möglicherweise komprimieren. Dies kann einfach mit Ihrem bevorzugten Komprimierungsprogramm wie
gzip
7zip, WinZip, WinRar ... erreicht werden.quelle
rsync
viassh
wahrscheinlich einfacher wäre. Auch für Quellcode - wie Mark Booth bereits sagte - sollte man unbedingt ein DVCS verwendenUnter Linux können Sie mit dem
dd
Befehl eine vollständige Sicherung des Images erstellen:oder zur Komprimierung:
Wo
sdx
ist deine SD-Karte?Um die Sicherung wiederherzustellen, kehren Sie die Befehle um:
oder wenn komprimiert:
quelle
:)
)bs=1M
oder einen ähnlichen Parameter wegzulassen. Die Standardblockgröße von 512 Bytes beeinträchtigt die Kopierleistung.Neben diesen Block-Level-Backups gibt es zwei gängige Ansätze, um mit den Quellen umzugehen: sie kontinuierlich zu archivieren (1) oder das Revisionskontrollsystem zu verwenden (2).
Wir werden die Kommandozeile benutzen (irgendein lokales Terminal oder eine SSH- Verbindung zu einem Raspberry Pi-Rechner), oder?
1. Archivieren
2. RCS (Git zum Beispiel)
quelle
Auf dem Mac möchten Sie nicht verwenden
/dev/diskn
. Verwenden Sie/dev/rdiskn
stattdessen, wobei n die Nummer ist, mit der das Betriebssystem Ihre SD-Karte identifiziert. Dies verringert die zum Kopieren erforderliche Zeit um einen großen Betrag.Für den optimalen Backup-Prozess auf einem Mac würde ich Folgendes empfehlen:
Führen
diskutil list
Sie das Programm aus und suchen Sie den Datenträger, der der SD-Karte Ihres Raspberry Pi entspricht:Klar
/dev/disk1
ist meine 8GB SD-Karte, der Linux-Partitionsname ist auch ein kleiner Hinweis.Anstatt mit
/dev/disk1
zu verwendendd
, sollten Sie jedoch/dev/rdisk1
wie folgt vorgehen:Und um es wiederherzustellen, tauschen Sie einfach die Parameter
if
(Eingabedatei) undof
(Ausgabedatei) aus:Oder mit
gzip
, um viel Platz zu sparen:Und um das Bild wieder auf die SD zu kopieren:
Weitere Informationen finden Sie auf dieser Wiki- Seite.
quelle
Sie können diesen Befehl auf Ihrem Linux-PC mit viel Speicherplatz ausführen:
Voraussetzung ist, dass Sie .ssh-Schlüssel generiert und den
id_XXX.pub
Over to kopiert haben/root/.ssh/authorized_keys
.Es ist möglich, dass Probleme mit dem Dateisystem auftreten, da es sich um eine Live-Sicherung handelt. Wenn Ihr Raspberry Pi jedoch nicht wirklich ausgelastet ist, ist dies normalerweise in Ordnung.
Es ist wahrscheinlich schneller, die Komprimierung auf dem PC wie folgt durchzuführen:
quelle
ssh root@raspberry dd if=/dev/mmcblk0 bs=1M | pv | gzip -c > img.gz
Wenn Sie Windows verwenden:
Laden Sie Win32 Disk Imager herunter.
Erstellen Sie den Dateipfad, den Sie zum Speichern Ihres Bildes verwenden möchten. (Ich benutze C: \ RasPi_Bkp)
Führen Sie Win32 Disk Imager aus
Navigieren Sie zu Ihrem Sicherungsdateipfad und geben Sie einen Dateinamen ein.
Klicken Sie auf Speichern
Stellen Sie sicher, dass das Gerät, das in der Dropdown-Liste rechts neben Ihrem Dateipfad angezeigt wird, das Gerät ist, das Sie sichern möchten.
Klicken Sie auf "Lesen"
Warten.
quelle
Wenn Ihre Programme alle in der pi-Benutzer-ID enthalten sind, gibt es wirklich keinen Grund, das gesamte Dateisystem zu sichern, wie vorgeschlagen wird. Was ich tue, ist nur die einzelne ID zu sichern. Ich führe den Befehl aus:
aus dem Ausgangsverzeichnis von pi, das die Datei pi.tgz erstellt, die alle darin enthaltenen Dateien und Verzeichnisse enthält (ausgenommen versteckte Dateien). Ich scp diese Datei dann auf einen anderen Linux-Computer, aber Sie könnten sie per FTP oder E-Mail irgendwo aufbewahren ... alles, was sie auf einen anderen Computer brachte.
Dadurch wird eine viel kleinere Datei für Ihre Sicherung erstellt.
Sind Sie besorgt über all die zusätzlichen Pakete, die Sie unterwegs installiert haben? Erstellen Sie ein Skript, das diese Installationen für Sie erneut ausführt, falls Sie Ihre SD-Karte neu erstellen müssen, und bewahren Sie sie irgendwo im Ausgangsverzeichnis von pi auf. (Ich habe ein ~ / bin-Verzeichnis für solche Dinge). Verfügen Sie über alle Befehle, die Sie für die Installation benötigen, um zu der Position zurückzukehren, an der Sie sich befinden möchten. Es dokumentiert Ihre Änderungen und ermöglicht Ihnen den schnellen Aufbau einer neuen SD-Karte. Es würde Befehle enthalten in Form von:
Beginnen Sie mit
Damit wird auch Ihr System auf den aktuellen Stand gebracht, bevor Sie mit dem Hinzufügen Ihrer Pakete beginnen.
Da dies in Ihrer pi.tgz-Datei enthalten ist, haben Sie es, wenn Sie es benötigen.
quelle
Ich verwende Raspbian und verwende dd und cron, um automatische Sicherungen meiner SD-Karte auf meinem externen USB-Laufwerk durchzuführen.
Es ist eine wirklich einfache Lösung. Es läuft einmal pro Woche um 2 Uhr morgens an einem Montagmorgen und erstellt ein Image der SD-Karte.
Ich habe ein Skript geschrieben, das Dienste wie lighttpd und cron herunterfährt, um das Risiko zu minimieren, dass die SD-Karte während des Backups beschrieben wird. Anschließend wird dd aufgerufen, bevor nach Abschluss des Backups erneut mit den Diensten begonnen wird.
Ich habe das Skript und einige Anweisungen in mein Blog gestellt: http://www.stuffaboutcode.com/2012/08/raspberry-pi-auto-backups.html
quelle
dd
ein ingsd?
klingt Gerät mit montiertem Partitionen nicht ganz sicher.Für Debian könnten Sie dd und tar verwenden. Dies würde eine vollständige Kopie Ihrer SD-Karte erstellen und einen externen Speicher (auf SD-Karte) erfordern, wahrscheinlich ein gemountetes USB- oder Netzwerklaufwerk.
Mit / dev / sdd als Speicherort Ihrer SD-Karte und
of
als Ausgabedateiname.quelle
.tar.gz
Datei aus der dd-Datei? Wäre es nicht besser, einfachgzip
oderbzip2
direkt auf der dd-Datei zu laufen ?/dev/mmcblk0p1
und/dev/mmcblk0p2
aufgeführt ...Glücklicherweise kann der Raspberry Pi ein Backup von sich selbst erstellen, das unabhängig von dem primären Betriebssystem ist, das für den Zugriff auf den Raspberry verwendet wird (Windows, Linux, Mac). dd, tar und rsync sind verschiedene Tools zum Erstellen von Backups unter Linux. Alle diese Arten von Backups können vom laufenden Pi erstellt werden, vorausgesetzt, es stoppt alle anstrengenden Tasks wie mysql, smb, dlna, owncloud, seafile, apache usw., bevor das Backup erstellt wird. Es gibt eine andere Frage, in der der Ansatz ausführlicher erklärt wird und eine mögliche Lösung hier erläutert wird
quelle
Wenn Ihr Raspberry Pi mit einem Netzwerk verbunden ist und Sie automatische On-the-Fly-Backups wünschen, ist Bittorent Sync wahrscheinlich der einfachste Weg - sehr einfache Installation und reibungslose und stabile Ausführung auf dem Pi und vielen anderen Plattformen.
quelle
Nie mehr furchterregendes dd, sync, tar, ..., anfängerfreundlicher SD-Karten-Kopierer
Die neue Version von Raspbian namens stretch hat eine sehr anfängerfreundliche App namens SD Card Copier. Sie müssen keine Linux-Tools wie dd usw. verwenden. Es können sogar große Karten auf kleine Karten kopiert werden.
Wie es geht
Sie beginnen mit dem Menü-Symbol der GUI RPi-App ganz oben links, gehen zu Zubehör und klicken dann auf SD-Kartenkopierer.
Alles, was Sie tun müssen, ist ein paar Klicks in der GUI!
Nachdem Sie die Sicherungs-SD-Karte erstellt haben, können Sie das Image der Karte mit Windows Disk Manager in eine Windows-Datei lesen und in einem beliebigen Windows-Verzeichnis speichern. Auf diese Weise benötigen Sie nur eine physische SD-Karte und können viele Versionen von Bildern auf dem Windows-PC speichern.
Natürlich können Sie die Sicherungskarte auch als Arbeitskopie verwenden, um Ihre ursprüngliche Karte, die jetzt Ihre Masterkarte wird, zu ersetzen und an einem sicheren Ort zu verwahren.
quelle
Während der Suche nach einem Bild meiner benutzerdefinierten SD-Karte habe ich diesen Beitrag gefunden. Die beste Antwort hier ist das Imaging der SD-Karte, aber nach was ich gesucht habe, musste das Dateisystem verkleinert werden, um das Image so klein wie möglich zu machen. Zu diesem Zweck habe ich mein eigenes Tool erstellt und den Prozess unter https://raspberrypi.stackexchange.com/a/37899/32585 beschrieben
quelle
Hier sind 3 Optionen:
In der neuesten Version von Raspbian gibt es ein Tool, das Ihr Betriebssystem und Ihre Dateien in eine IMG-Datei konvertiert, die Sie dann auf einen USB-Stick oder Ihren PC übertragen können.
Schließen Sie Ihre SD-Karte an einen Windows-PC an und starten Sie Win32 Disk Imager ( hier installieren , falls noch nicht geschehen).
Geben Sie unter (1) einen Dateinamen und einen Speicherort für die Bilddatei ein. Wählen Sie unter (2) den Laufwerksbuchstaben Ihrer SD-Karte aus. Drücken Sie dann 3. Dies entspricht Option 1.
Schließen Sie einen USB-Stick an Ihren Pi an und kopieren Sie alle wichtigen Dateien.
quelle
Diese Android-App liest eine SD-Karte in eine .img-Datei und komprimiert sie gleichzeitig: https://play.google.com/store/apps/details?id=com.redrobe.raspicardimager
quelle
Ich habe ein Hilfsprogramm erstellt, um Ihre Himbeer-Pi zu sichern, wenn Sie Linux sind. Dadurch wird auch das Image Ihres Himbeer-PIS verkleinert, sodass Sie das ISO auf eine kleinere SD-Karte kopieren können: RaspberryPiShrink
Dadurch wird ein Python-Skript ausgeführt, das Sie durch den Prozess führt. Stecken Sie einfach Ihre microSD-Karte in Ihren Ubuntu-, Linux Mint- oder Debain-Computer und folgen Sie den Anweisungen im Terminal.
quelle
Ich benutze Usbit für Windows. Es ist das einzige Tool, das ich finden kann, mit dem Sie von einer größeren SD-Karte zu einer kleineren wechseln können. Ich habe auf der Optionsseite nur Folgendes angekreuzt: Ignorieren Sie Größenüberprüfungen und kürzen Sie übergroße Bilder .
Dadurch konnte ich meine OpenELEC- und Xbian-Images von einer 16-GB-SD-Karte der Klasse 4 auf eine 8-GB-Karte der Klasse 10 tauschen .
Es ist VIEL einfacher als die Größe von Partitionstabellen usw. zu ändern.
quelle
find -type f -exec md5sum {} \; > filelist.txt
?