Kann ich meinen gesamten Raspberry Pi für die Bereitstellung auf einem anderen Raspberry Pi klonen?

12

Ich bin mir nicht sicher, ob alle Themen zum Sichern Ihrer SD-Karte das sind, wonach ich frage ... aber los geht's :)

Gibt es eine Möglichkeit, einen 100% igen Klon meines Raspberry Pi zu erstellen und ihn einfach auf einem anderen Raspberry Pi bereitzustellen? Ich habe also zwei genau identische Kopien ... Oder wird dies durch Klonen der SD-Karte mit dem integrierten Befehl dd erreicht ?

Der Grund, den ich frage, ist, dass ich meinen Raspberry Pi vollständig mit Apache , PHP und einigen anderen Bibliotheken konfiguriert habe und jetzt nur noch einen Klon davon mit genau den gleichen Konfigurationen usw. möchte.

Ist das möglich oder habe ich meine eigene Frage beantwortet?

Naboovalley
quelle
Ich bin überrascht, dass Piclone bisher nicht erwähnt wurde. Für mich ist das der einfachste Weg, eine SD-Karte auf ein RPI zu klonen, und Nvere hatte Probleme damit. Ich habe diese Frage bereits in der Vergangenheit beantwortet. Hier ist ein Link zur Antwort mit einigen weiteren Details: raspberrypi.stackexchange.com/questions/66824/… Ich hoffe, dies hilft.
LecauseAndThePi
Ich konnte nirgendwo einen Piclone-Download finden
Elia Weiss
Sie müssen es nicht herunterladen, es ist bereits vorhanden. Geben Sie einfach piclone in das Terminal ein und die GUI wird gestartet.
LecauseAndThePi

Antworten:

9

@naboovalley:

Angenommen, das folgende Szenario:

  • Gehen Sie auf Ihrem Raspberry Pi zu einem Terminal und dann zum Verzeichnis / dev. Sie sollten unter anderem mmcblk0, mmcblk0p1 und mmcblk0p2 sehen.
  • mmcblk0 ist das "nackte" SD-Kartengerät, während mmcblk0p1 die erste Partition dieser SD-Karte mit dem Kernel-Image usw. ist und mmcblk0p2 die zweite Partition dieser SD-Karte mit dem Root-Dateisystem ist.
  • Fahren Sie Ihren Raspberry Pi auf anständige Weise herunter (geben Sie den Befehl "shutdown" ein, möglicherweise als root).
  • Legen Sie die SD-Karte in einen anderen Linux-Computer ein. Normalerweise sollten die oben genannten Verzeichnisse automatisch auf / media / gemountet werden und es sollten 2 Unterverzeichnisse darin sein (eines für Partition 1 der SD-Karte, eines für Partition 2 der SD-Karte).
  • Sie haben ein temporäres Verzeichnis erstellt, um den Inhalt Ihrer SD-Karte zu kopieren. Sagen:~/tmp
  • Sie befinden sich in ~/tmp

Sie können jetzt den Inhalt der ersten Partition der ursprünglichen Original-SD-Karte kopieren, indem Sie den folgenden Befehl rsync ausführen:

rsync -avn /media/<user>/<partition1> .

Sie nicht setzen eine /am Ende! Der obige Befehl wird "trocken laufen", was bedeutet, dass er Ihnen zeigt, was er letztendlich tun wird, ihn aber nicht wirklich ausführt.

Um wirklich auszuführen (nachdem Sie bestätigt haben, dass der Trockenlauf das tut, was er tun soll), können Sie nden Befehl aus dem obigen Befehl entfernen (so, rsync -av /media/<user>/<partition1> .).

Verwenden Sie denselben Befehl für die andere Partition.

Jetzt sollten Sie eine genaue Kopie Ihrer Original-SD-Karte auf Ihrem Linux-Computer haben.

Entfernen Sie die ursprüngliche SD-Karte, legen Sie eine weitere - korrekt formatierte - SD-Karte in Ihren Linux-Computer ein und führen Sie den folgenden Befehl rsync aus:

rsync -avn <partition1> /media/<user>

Dies ist wieder ein Probelauf, der Ihnen zeigen sollte, dass der Inhalt von <partition1>in /media/<user>auf die SD-Karte kopiert wird.

Sobald Sie bestätigt haben, dass alles in Ordnung ist, können Sie das erneut naus dem rsyncBefehl entfernen .

Machen Sie dasselbe für die zweite Partition.

Dadurch sollten Sie eine genaue Kopie der Original-SD-Karte auf die andere SD-Karte erhalten.

Hinweis: Ich habe all dies auf einer Lubuntu-Maschine überprüft. Verzeichnisse und Namen können in anderen Linux-Distributionen variieren.

Beachten Sie auch, dass Elemente dazwischen < >Platzhalter sind und Sie selbst sehen müssen, wie sie mit Ihrer Umgebung übereinstimmen.

GeertVc
quelle
Perfekt. Vielen Dank! Wird die "dd" -Kopie dasselbe tun, wie Sie es beschreiben, oder ist rsync viel besser, wenn Sie eine vollständige Systemkopie so ausführen, wie ich es möchte?
Naboovalley
Ich habe nicht viel Erfahrung mit dem ddBefehl, also kann ich nicht sagen, sorry ...
GeertVc
Ich verstehe nicht ganz den Teil, in dem Sie "- richtig formatierte - SD-Karte" sagen . Müssen wir die SD-Karte mit richtig dimensionierten fat32- und ext4-Partitionen vorformatieren? Vielen Dank
Romain Vincent
7

Ja, können Sie verwenden , ddoder Win32 Disk - Imager auf Windows von einer Karte zur anderen ein genaues Bild zu nehmen. Die Zielkarte muss jedoch mindestens gleich groß sein, damit dies praktisch ist.

Sie können auch einfach alle Dateien in Ihrem Quelldateisystem in ein Zieldateisystem kopieren. Das heißt, stecken Sie Ihre Zielkarte in einen USB-Kartenleser und stecken Sie diese in Ihren Quell-Raspberry Pi. Dann SSH ein und die entsprechenden Kopierbefehle ausgeben.

Beachten Sie auch, dass Sie Lizenzschlüssel für die Hardware-Dekodierung von MPEG-2 oder VC-1 erworben haben . Diese sind an Ihre Hardware gebunden, daher müssen Sie sicherstellen, dass Sie die Datei /boot/config.txt auf Ihrer Kopie bearbeiten .

mir--
quelle
Die SD-Karte enthält also alle systemspezifischen Dateien und installierten Bibliotheken? Ich muss keine Installationsbefehle ausführen, wenn ich die geklonte Kopie der SD-Karte in R-Pi # 2 einstecke.
Naboovalley
2
Dies kann auch Probleme mit SSH-Schlüsseln und IP-Adressen verursachen.
Steve Robillard
Auf R-Pi # 2 könnte man also denken, dass die IP-Adresse mit R-Pi # 1 identisch ist? Ich vermute, ich kann es einfach aktualisieren, um eine neue Netzwerk-IP zu erhalten?
Naboovalley
Wenn Sie DHCP verwenden, erhält das RPi beim Booten automatisch eine neue IP. Sie sollten jedoch den Hostnamen ändern, wenn Sie beide im selben Subnetz verwenden möchten. Wenn Sie eine feste IP verwenden, sollten Sie sowohl die IP als auch den Hostnamen ändern
Roberto
Wenn ich mir mein Dateisystem ("df") anschaue, habe ich etwas namens "rootfs" 2.1GB und / dev / root 2.1GB - meine / dev / mmcblk0 SD-Karte benötigt nur 10M. Wenn ich also "mmcblk0" kopiere, wird mein gesamtes System enthalten sein? Vielen Dank Jungs
Naboovalley
6

Sie können einfach mit kopieren dd wie @ me-- vorschlägt, aber das ist nicht alles, was Sie beim Klonen eines Systems tun müssen. Es gibt bestimmte eindeutige Systemkennungen, die ebenfalls geändert werden sollten.

Passwörter sollten zurückgesetzt werden, damit ein neues Salz verwendet wird. Dies verhindert, dass Personen wissen, dass Sie dasselbe Passwort zweimal verwendet haben. Führen Sie den passwdBefehl als Benutzer aus (normalerweise) pi ) als auch als root aus.

Wenn Sie SSH verwenden, sollten SSH-Schlüssel neu generiert werden. Dies ist zum Beispiel wichtig, um sicherzustellen, dass jemand, der einen Raspberry Pi stiehlt, die Kommunikation mit dem anderen nicht entschlüsseln kann. Führen Sie einfach diesen Befehl aus:

sudo rm /etc/ssh/ssh_host_*

Schließlich und vor allem müssen Sie den Hostnamen ändern. Wenn es auf seiner Standardeinstellung ist, ist es Himbeerpi . Wenn Sie wie ich sind, ssh ich zum Hostnamen des Raspberry Pi, also tue ich es ssh raspberrypi. Wenn zwei "Himbeerpis" im Netzwerk vorhanden sind, funktioniert dies nicht mehr. Daher sollte der zweite in " rasberrypi2" umbenannt werden . Sie können diese Änderung mit sudo raspi-config, auswählen Advanced Optionsund dann auswählen Hostname.

Fred
quelle
raspi-configist für Raspbmc nicht verfügbar . Vielleicht sollte eine manuelle Methode zum Festlegen des Hostnamens beschrieben werden?
Peter Mortensen
Als Referenz behandelt raspberrypi.stackexchange.com/questions/3926/… das Ändern des Hostnamens unter Raspbmc.
Fred
4

Das Klonen einer Micro-SD zur Sicherung oder zum Verschieben Ihres Systems auf ein anderes RPi3 ist als Zubehör integriert, zumindest in der Version des Betriebssystems, die ich auf der NOOBS-Start-SD erhalten habe:

  • Gehe zu Zubehör;
  • Hit Copy SD ;
  • Legen Sie eine leere Micro-SD in einen USB-Halter.
  • Platzieren Sie den Halter in einem offenen USB-Steckplatz.
  • Wählen Sie die neue SD;
  • Hit Kopie.
w8mqw
quelle
Dies sollte die richtige Antwort sein. So einfach.
Jordanien
1

Genau das können Sie mit dem Himbeer-Pi und einer neuen Motto-SD-Karte tun, die über USB angeschlossen ist. Die neueste Version der Raspberry Pi-Software verfügt über eine integrierte Software namens SD Cardcopier unter Zubehör, die genau dies tut.

Sie wählen Ihre Originalkarte (also die Karte, von der Sie booten) als Quelle und die neue formatierte leere Karte (über den Kartenleser mit USB auf dem Pi verbunden) als Ziel. Ziemlich einfache Benutzeroberfläche und es hat beim ersten Mal für mich funktioniert. Die Befehlszeilenoption auf einem Mac mit dd hatte irgendwie ein Problem mit der Kernel-Panik.

Sijones
quelle
0

Ein sehr sicheres und zuverlässiges Tool zum Kopieren von Dingen wie Root-Dateisystemen (aufgrund von Links, die im Root-Dateisystem vorhanden sind) ist rsync. Dieses Tool berücksichtigt alle notwendigen Dinge wie Zeitstempel, Links, Berechtigungen, ... Perfekt geeignet, um Dinge zu kopieren, wie Sie es möchten.

GeertVc
quelle
Aber ich kopiere immer noch nur den SD-Karteninhalt für das vollständige Systemduplikat - oder muss ich etwas anderes hinzufügen? Vielen Dank
Naboovalley
Siehe die neue Antwort, die ich unten gepostet habe.
GeertVc