Also kann ich endlich die Sammelbestellung für Raspberry Pis aufgeben ! Ihre Konfiguration wird jedoch eine lästige Aufgabe sein. Was ich gerne machen würde ist:
- Laden Sie ein Archivbild herunter und basteln Sie daran auf einem einzelnen Pi
- Speichern / extrahieren / kopieren Sie dieses Bild auf alle anderen SD-Karten
- Habe die anderen Pi´s alle eingerichtet, ohne dass eine zusätzliche Konfiguration durchgeführt werden muss
Mein Computer verfügt nur über einen einzigen SD-Steckplatz. Gibt es also eine Möglichkeit, eine .img
Datei von meiner geänderten "Master" -Karte zu generieren ?
Antworten:
Es gibt ein paar einfache Vorbereitungsschritte, die Sie ausführen müssen, bevor Sie einen Klon-Master in Kopien schreiben, wodurch Sie viele Kopfschmerzen ersparen.
/etc/ssh/ssh_host*
(diese werden neu erstellt, wenn Sie SSHD ausführen)/etc/udev/rules.d/70-network*
Datei haben, müssen Sie deneth0
Eintrag in etwas anderes ändern (das icheth9
für meine Klon-Master verwendet habe) - und daran denken, die zugehörigeifconfig
Datei zu aktualisieren - in Centos/etc/sysconfig/network-scripts/ifcfg-eth0
(make it9
) und in Debian (raspbian)/etc/network/interfaces
quelle
Ich hatte die gleichen Anforderungen wie
1
und2
ein angepasstes Betriebssystem zu verteilen. Nachdem ich mich umgesehen hatte, fand ich viele Befehle, aber kein einziges Tool, um eine kompakte.zip
Datei von einer SD-Karte zu erstellen. Also schrieb ichmkimg.sh
, was so funktioniert:Dies nimmt das nicht gemountete Gerät auf
/dev/sda
, verkleinert das Dateisystem und die Partition und schreibt eine komprimierte Zip-Datei aus. In meiner Verwendung schreibt dies ein ~ 1,5 GB Raspbian-System, um <500 MB zu erstellen.zip
.Zusammen mit den Überprüfungen und Größenberechnungen führt das Skript im Wesentlichen Folgendes aus:
Das Skript und die Dokumentation sind auf GitHub verfügbar .
quelle
Sie können Raspberry Pis zusammen mit Multixterm auf Ihrem Hauptcomputer verwenden, um das Schreiben Ihrer SD-Karte zu beschleunigen . Sie sollten in der Lage sein, Multixterm in den Paketmanagern vieler Distributionen zu finden.
Schritt 1: Kaufen Sie ein paar USB-Stick-SD-Kartenadapter.
Schritt 2: Verwenden Sie die Standardmethoden, um 2 der SD-Kartenabbilder mit Ihrem Hauptcomputer zu schreiben.
Schritt 3: Legen Sie die 2 SD-Karten mit Bildern in 2 Raspberry Pis ein und verbinden Sie sie mit Ihrem Netzwerk und schalten Sie sie ein.
Schritt 4: Stecken Sie 2 leere SD-Karten in die USB-Stick-Adapter und stecken Sie sie in die 2 laufenden Rapsberry Pis.
Schritt 5: Hier wird es interessant: Verwenden Sie auf Ihrem Hauptcomputer multixterm wie auf der Befehlszeile multixterm -xc "ssh% n" host1 host2, wobei host1 und host2 die IP-Adressen des Raspberry Pis sind.
Schritt 6: Innerhalb des Stdin-Fensters von multixterm können Sie dd wie gewohnt verwenden, um Bilder auf die SD-Karten zu schreiben. Jetzt sendet multixterm den Befehl dd gleichzeitig an beide Raspberry Pis.
Schritt 7: Wiederholen Sie die Schritte 3 bis 6, bis Sie alle Ihre Karten geschrieben haben.
Je mehr SD-Karten Sie speichern, desto mehr Raspberry Pis können Sie zum Speichern neuer SD-Karten verwenden. Natürlich werden mit dieser Technik nicht alle Karten auf einmal geschrieben, aber es wird weniger Zeit benötigt, um alle Karten zu beschreiben. Diese Technik wäre weitgehend experimentell, sodass Ihre Laufleistung variieren würde, aber die Theorie klingt nach einem interessanten Experiment ...
quelle
Was Sie suchen, ist ein Gruppenprogrammiergerät für SD-Karten oder ein SD-Karten-Duplikator.
Ja, diese Systeme existieren. Hier ist eine , die ich von Googling "SD-Karten-Gang-Programmierer" gefunden habe. Dieses spezielle Gerät verfügt über einen Master-Steckplatz, in den bis zu 7 Slave-SD-Karten gleichzeitig kopiert werden können. Andere Programmierer mit 3 oder 11 Slave-Slots sind ebenfalls erhältlich.
Es gibt auch verschiedene Arten von Programmierern. Einige können ein Image von Ihrer Festplatte flashen und werden von der auf einem PC installierten Software gesteuert. Andere Geräte, wie das oben verlinkte, müssen nicht an einen Server angeschlossen werden, da sie die Informationen eines Master-Chips spiegeln.
Erwähnenswert ist, dass diese Geräte nicht billig sind. Sie werden normalerweise in einer Massenproduktionsumgebung verwendet und sind nicht übermäßig gefragt. Seien Sie bereit, mindestens 1.000 US-Dollar für ein gutes Gerät mit dieser Funktionalität zu zahlen.
ProDuplicator.com bietet anscheinend auch einige weitere Optionen zum Kopieren von SD- Karten .
quelle
Wir hatten eine ähnliche Anforderung für ein Projekt, bei dem wir in der Lage sein mussten, täglich Bilder auf über 10 Raspberry Pi SD-Karten zu schreiben. Wir haben uns die verschiedenen Karten-Duplikatoren angeschaut, die es zu kaufen gibt, aber festgestellt, dass die meisten von ihnen keine bootfähige SD-Karte herstellen, da die meisten nur Dateien direkt kopieren und nicht die bootfähigen Informationen, sie sind auch lächerlich teuer!
Als Lösung haben wir unsere eigene einfache webbasierte Software geschrieben, die auf einem einzelnen Raspberry Pi ausgeführt werden kann, der an zwei Belkin-USB-Hubs mit sieben Anschlüssen angeschlossen ist (The Pi hat eine Beschränkung auf zwei Hubs und maximal 14 USB-Anschlüsse).
Wir haben dies jetzt als Open Source-Software veröffentlicht, um anderen mit denselben Anforderungen zu helfen. Derzeit ist nur der Quellcode verfügbar, aber wir werden auch eine Image-Datei hochladen, die auf Arch Linux ARM mit Nginx + php basiert
http://www.rockandscissor.com/projects/osid
quelle
Dies funktioniert unter Mac OS X.
Hängen Sie die Karte aus, an der Sie herumgebastelt haben, und versuchen Sie Folgendes:
sudo dd if=/dev/sdcardlocation of=backupimage.img
.Ersetzen Sie
sdcardlocation
durch den Speicherort Ihrer SD-Karte.Sie könnten
.img
mit.dmg
oder tauschen.iso
.Um die anderen Karten fertig zu machen, müssen Sie sie aushängen und den vorherigen Code mit den vertauschten Werten ausführen. Die Zeile wäre:
sudo dd if=backupimage.img of=/dev/sdcardlocation
.Stellen Sie sicher, dass Sie sie aushängen, bevor Sie sie aus dem Kartenleser nehmen.
quelle
Obwohl Wie kann ich mein Raspberry Pi sichern? Bietet hervorragende Anleitungen zum Klonen einer einzelnen SD-Karte. Wenn Sie diese nacheinander ausführen, werden Dutzende von Karten mühsam.
Angesichts der Tatsache, dass anscheinend niemand einen SD-Kartenleser mit mehreren Karten (der mehrere SD-Karten gleichzeitig aufnehmen kann) hergestellt hat und dass Sie einen USB-Hub und eine Reihe von USB-Kartenlesern mit einer einzelnen SD-Karte sehr billig kaufen können, Eine Möglichkeit, den Vorgang zu beschleunigen, besteht darin, einen eigenen SD-Karten-Duplikator zu erstellen.
Sie können sogar ein Skript schreiben, um das ausgewählte Raspberry Pi-Image automatisch in einen beliebigen freien SD-Kartensteckplatz zu schreiben. Skripte könnten automatisch erkennen, dass eine Karte eingelegt wurde, und anzeigen, wann der Kopiervorgang abgeschlossen ist.
Wie in den Kommentaren erwähnt, sollten Sie die ssh-Zertifikate in jedem der geklonten Images beim ersten Start ersetzen. Stellen Sie daher sicher, dass dieser erste Start ausgeführt wird, während Sie mit einem privaten Netzwerksegment verbunden sind, bevor Sie eine Verbindung herstellen es an ein Internet-Netzwerk angeschlossen.
quelle
Es gibt normalerweise ein besseres Werkzeug, um dies zu tun, als viele RP-Bilder zu kopieren.
Aber es hängt davon ab, was Sie wirklich tun möchten.
Sie sollten sich cfengine3 [1], fai [2], chef [3], fabric [4] oder puppet [5] ansehen. Es handelt sich um automatische Konfigurationstools, die nützlich sind, wenn Sie Ihre Maschine zum ersten Mal (und später) starten.
[1] http://cfengine.com/ [2] http://fai-project.org/ [3] http://www.opscode.com/chef/ [4] http: //www.debian- administration.org/articles/671 [5] http://puppetlabs.com/puppet/puppet-enterprise/
quelle
PiBakery könnte eine praktikable Lösung für Sie sein. Mit PiBakery können Sie mithilfe von Blöcken ein benutzerdefiniertes Raspbian-Image erstellen, um verschiedene Dinge wie WLAN-Kennwörter, SSH-Schlüssel usw. anzupassen.
quelle
Eine andere Alternative ist die Verwendung von Flash , einem Befehlszeilentool zum Flashen von SD-Karten mit bestimmten Anpassungen des Betriebssystems.
quelle
Um zu vermeiden, dass nur ein einziger SD-Kartensteckplatz in Ihrem Computer vorhanden ist, ist die einfache Antwort für das effiziente Brennen mehrerer Bilder ein USB-Hub mit eigener Stromversorgung und eine Reihe kostengünstiger microSD-USB-Adapter. Ich habe es mit einem 13-Port-USB-3-Hub und billigen (<1 US-Dollar) microSD-USB-Adaptern getestet.
Wenn Sie viele Basis-Images gleichzeitig brennen möchten , lesen Sie dcfldd . Es ist in den raspbian jessie-Repositories verfügbar. Es ist eine erweiterte Version von GNU dd, mit der Möglichkeit, gleichzeitig auf mehrere Bilder zu schreiben. Ich habe einige gelegentliche Tests durchgeführt und konnte ein microSD-Karten-Image auf einem RPi 3B auf eine Mischung aus 7 Karten kopieren, die in 3 Adapterarten auf einem USB-Hub eingesteckt sind. Vorherige Tests an einem 3-Port-USB 2.0-Hub an einem A + haben ebenfalls funktioniert. Es ist so ziemlich ein Feuer-und-Vergessen, wenn Sie die Parameter richtig eingestellt haben. Ich war auf 7 Adapter beschränkt, aber es gibt keinen Grund zu der Annahme, dass es mit einer größeren Anzahl von Karten nicht funktioniert, obwohl die Geschwindigkeit auf die der langsamsten Zielkarte beschränkt ist.
Wenn Sie eine große Anzahl von RPis mit Konfigurationsänderungen auf dem neuesten Stand halten müssen, sobald sie ausgeführt werden und in Ihrem Netzwerk, würde ich die Verwendung von Ansible oder Fabric in Betracht ziehen , um Updates über ssh zuzulassen und zu vermeiden, dass die RPis erneut gebrannt werden müssen Karten, um sie aktuell zu halten.
Schließlich können Sie Ihren Master ändern, um den Hostnamen auf jedem RPi mit einer eindeutigen Kennung zu ändern (z. B. basierend auf der Netzwerk-MAC-Adresse), um eine einfache Lokalisierung zu ermöglichen,
avahi
ohne dass Sie jedes RPi ändern müssen, um Konflikte zu vermeiden, nachdem es gestartet wurde, um Konflikte zu vermeiden.quelle