最後に、Raspberry Pisの一括注文を行うことができます!ただし、それらを構成するのは面倒です。私がやりたいことは:
- ストックイメージをダウンロードし、単一のPiでそれをいじくりまわす
- その画像を他のすべてのSDカードに保存/抽出/コピーします
- 追加の構成を行う必要なく、他のPiをすべてセットアップする
私のコンピューターにはSDスロットが1つしかないので.img
、変更した「マスター」カードからファイルを生成する方法はありますか?
最後に、Raspberry Pisの一括注文を行うことができます!ただし、それらを構成するのは面倒です。私がやりたいことは:
私のコンピューターにはSDスロットが1つしかないので.img
、変更した「マスター」カードからファイルを生成する方法はありますか?
回答:
クローンマスターをコピーに書き込む前に行う簡単な準備手順がいくつかあり、これにより多くの頭痛の種を節約できます。
/etc/ssh/ssh_host*
(SSHDを実行すると、これらが再作成されます)/etc/udev/rules.d/70-network*
、ファイルを、あなたは変更する必要がありますeth0
何か他のもの(私が使用するエントリをeth9
、私のクローンマスターのために) -と、関連する更新することを忘れないでくださいifconfig
ファイル- CentOSのである/etc/sysconfig/network-scripts/ifcfg-eth0
(それを作るが9
、それはだ)とDebianで(raspbian)/etc/network/interfaces
カスタマイズされたOS 1
と同じ要件2
を配布しました。周りを見て回った後.zip
、SDカードからコンパクトなファイルを作成するための単一のツールではなく、多くのコマンドを見つけたので、次のように記述しましたmkimg.sh
。
sudo bash mkimg.sh /dev/sda sdcard.img.zip
これにより、マウントされていないデバイスが/dev/sda
で取得され、ファイルシステムとパーティションが縮小され、圧縮されたzipが書き出されます。私の使用では、これは<1.5GBのRaspbianシステムを書き込み、<500MBを作成します.zip
。
健全性チェックとサイズ計算に加えて、スクリプトは基本的にこれを行います。
e2fsck -f /dev/sda2
resize2fs -M /dev/sda2
parted --align optimal /dev/sda unit MB resizepart 2 1700 yes
dd bs=1M if=/dev/sda of=sdcard.img count=1900
zip sdcard.img.zip sdcard.img
parted /dev/sda resizepart 2 16.0GB
resize2fs /dev/sda2
メインコンピューターのmultixtermと共にRaspberry Pi自体を使用して、SDカードの書き込みを「ブートストラップ」できます。多くのディストリビューションのパッケージマネージャーでmultixtermを見つけることができるはずです。
ステップ1:USBスティックSDカードアダプターをたくさん購入します。
手順2:標準の方法を使用して、メインコンピューターで2つのSDカードイメージを書き込みます。
ステップ3:2枚のSDカードを2つのRaspberry Piに入れ、ネットワークに接続して電源を入れます。
ステップ4:2枚の空のSDカードをUSBスティックアダプターに挿入し、実行中の2枚のRapsberry Piに差し込みます。
ステップ5:ここで興味深いのは、メインコンピューターからmultixtermをコマンドラインmultixterm -xc "ssh%n" host1 host2から使用することです。host1 とhost2はRaspberry PiのIPアドレスです。
ステップ6:multixtermのstdinウィンドウ内で、通常SDカードに画像を書き込むのと同じようにddを使用できますが、multixtermはそのddコマンドを両方のRaspberry Piに同時に送信します。
ステップ7:すべてのカードが書き込まれるまで、ステップ3〜6を繰り返します。
イメージングするSDカードが多いほど、新しいSDカードのイメージングに使用できるRaspberry Piが増えます。明らかに、この手法ではすべてのカードを一度に書き込むことはできませんが、すべてのカードの書き込みを完了するのにかかる時間を短縮できます。この手法は主に実験的なものなので、走行距離は異なりますが、その理論は興味深い実験のように聞こえます...
探しているのは、SDカード用のギャングプログラマーデバイス、またはSDカードデュプリケーターです。
はい、これらのシステムは存在します。 ここでは一つであり、私は、「SDカードのギャングプログラマ」グーグルで見つけたこと。この特定のデバイスにはマスタースロットがあり、最大7つのスレーブSDカードを一度にコピーできます。3または11個のスレーブスロットを持つ他のプログラマも利用可能です。
さまざまな種類のプログラマーもいます。ハードドライブからイメージをフラッシュできるものもあり、PCにインストールされたソフトウェアによって制御されます。上記のリンクのような他のデバイスは、マスターチップから情報をミラーリングするため、サーバーに接続する必要はありません。
これらのデバイスは安くはないことを言及する価値があります。通常、大量生産環境で使用され、需要はそれほど高くありません。この機能を備えた優れたデバイスに少なくとも1,000ドルを支払う準備をしてください。
ProDuplicator.comには、さらに多くのSDカード複製オプションもあるようです。
毎日10枚以上のRaspberry Pi SDカードに画像を書き込む必要があるプロジェクトでも、同様の要件がありました。購入可能なさまざまなカードデュプリケーターを調べましたが、それらのほとんどはブータブルSDカードを正常に作成できないことがわかりました。ほとんどの場合、ブータブル情報ではなくファイルを直接コピーするだけで、途方もなく高価です!
ソリューションとして、2つの7ポートBelkin給電USBハブに接続された単一のRaspberry Piで実行する独自のシンプルなWebベースのソフトウェアを作成しました(Piには2つのハブと最大14のUSBポートの制限があります)。
同じ要件を持つ他のユーザーを支援するために、これをオープンソースソフトウェアとしてリリースしました。現在、ソースコードのみが利用可能ですが、Nginx + phpを実行しているArch Linux ARMに基づく画像ファイルもアップロードします
これはMac OS Xで動作します。
いじくり回したカードをアンマウントし、試してください:
sudo dd if=/dev/sdcardlocation of=backupimage.img
。
sdcardlocation
SDカードの場所に置き換えます。
あなたは入れ替えることができ.img
て.dmg
たり.iso
。
次に、他のカードを準備してアンマウントし、値を入れ替えて前のコードを実行します。行は次のようになります。
sudo dd if=backupimage.img of=/dev/sdcardlocation
。
カードリーダーから取り出す前に、必ずマウントを解除してください。
がどのようにバックアップ私のラズベリーパイのですか?1枚のSDカードのクローンを作成する方法に優れた制限を提供します。一度に1枚のSDカードをクローンすると、退屈になります。
マルチカードSDカードリーダー(一度に複数のSDカードを保持できるもの)を誰も生産していないようで、USBハブと単一のSDカードUSBリーダーを非常に安く購入できるという事実を考えると、プロセスを高速化する1つの方法は、独自のSDカードデュプリケーターを作成することです。
スロットに挿入された空のSDカードスロットに、選択したRaspberry Piイメージを自動的に書き込むスクリプトを作成することもできます。スクリプトは、カードが挿入されたことを自動的に検出し、コピーが完了したことを示します。
以下のようdarrenjwはいえ、コメントで述べたように、あなたが接続する前にプライベートネットワークセグメントに接続しながら、この最初のブートが行われていることを確認することがありので、クローン化された画像のそれぞれに、それらが起動されている最初の時間をSSH認証を交換したいと思うでしょうインターネットに接続されたネットワークに接続します。
通常、これを行うためのより優れたツールがあり、それから多くのRPイメージをコピーします。
しかし、それはあなたが本当に何をしたいかに依存します。
cfengine3 [1]、fai [2]、chef [3]、fabric [4]、またはpuppet [5]をご覧ください。これらは自動構成ツールであり、初めて(およびそれ以降)起動したときにマシンで作業を行うのに役立ちます。
[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/
コンピューターにSDカードスロットが1つしかない場合、複数の画像を効率的に書き込むための簡単な答えは、給電されたUSBハブと多数の安価なmicroSD-USBアダプターです。13ポートUSB-3ハブと安価な(1ドル未満)microSD-USBアダプターを使用してテストしました。
多数のベースイメージを同時に書き込む場合は、dcflddを確認してください。Raspbian jessieリポジトリで利用可能です。GNU ddの拡張バージョンであり、複数のイメージに同時に書き込むことができます。簡単なテストをいくつか行い、RPi 3BのmicroSDカードイメージを、USBハブの3種類のアダプターに接続された7枚のカードの混合にコピーすることができました。A +の3ポートUSB 2.0ハブに対する以前のテストも機能しました。パラメータを正しく設定すれば、それはほとんど忘れられません。アダプターは7つに制限されていましたが、速度が最も遅い宛先カードの速度に制限されますが、より多くのカードでは機能しないと考える理由はありません。
実行中およびネットワーク上で多数のRPを構成変更で最新の状態に保つ必要がある場合は、ansibleまたはファブリックを使用してsshでの更新を許可し、再書き込みの必要性を回避することを検討しますそれらを最新に保つためのカード。
最後に、一意の識別子(ネットワークMACアドレスに基づく)を使用して各RPiのホスト名を変更し、avahi
競合を避けるためにブート後に競合を回避するためにすべてのRPiを変更することなく簡単に場所を特定できるように、マスターを変更できます。