Bagaimana saya bisa menyalin gambar yang sama ke banyak SD?

23

Jadi akhirnya saya bisa memesan massal untuk Raspberry Pis ! Namun, mengonfigurasi mereka akan menjadi tugas. Yang ingin saya lakukan adalah:

  1. Unduh gambar stok, dan mengotak-atiknya dalam satu Pi
  2. Simpan / ekstrak / salin gambar itu ke semua kartu SD lainnya
  3. Minta Pi lainnya siap tanpa konfigurasi tambahan yang perlu dilakukan

Komputer saya hanya memiliki satu slot SD, jadi apakah ada cara untuk menghasilkan .imgfile dari kartu 'master' saya yang dimodifikasi?

Tom Medley
sumber
4
Tom lihat posting ini raspberrypi.stackexchange.com/questions/311/... Saya pikir itu menjawab pertanyaan Anda.
Steve Robillard
@SteveRobillard +1 Itu akan menjawab pertanyaan dengan sempurna.
Jivings
4
Satu hal yang harus diperhatikan adalah SSH. Jika Anda mengatur SSH pada master, Anda akan berakhir dengan sertifikat SSH hasil kloning pada semua gambar, yang belum tentu seperti yang Anda inginkan. OTOH, jika Anda akan menggunakan Pis tanpa kepala, Anda mungkin ingin SSH diinstal ...
Darren Wilkinson
@ Darrenjw Itu adalah poin yang sangat bagus. Anda telah menyelamatkan saya dari rasa malu dan tidak ada kesalahan. Terima kasih.
Jivings
Bergantung pada bagaimana Anda bermaksud menggunakan massa Pis itu, Anda mungkin ingin memeriksa proyek Raspi-LTSP Andrew Mulholland . Ini tidak hanya berguna untuk penggunaan di kelas - tetapi juga sangat baik untuk cluster.
Dave Jones

Jawaban:

7

Ada beberapa langkah persiapan mudah yang harus dilakukan sebelum menulis master klon ke salinan yang akan menghemat banyak sakit kepala.

  1. Konfigurasikan master klon untuk DHCP
  2. Hapus semua yang ada di /etc/ssh/ssh_host*(ini dibuat ulang ketika Anda menjalankan SSHD)
  3. jika Anda memiliki /etc/udev/rules.d/70-network*file, Anda harus memodifikasi eth0entri ke sesuatu yang lain (saya gunakan eth9untuk master klon saya) - dan ingat untuk memperbarui ifconfigfile terkait - dalam centos yang /etc/sysconfig/network-scripts/ifcfg-eth0(membuatnya 9) dan dalam debian (raspbian) itu/etc/network/interfaces
Nox
sumber
7

Saya memiliki persyaratan yang sama dengan 1dan 2untuk mendistribusikan OS yang disesuaikan. Setelah melihat-lihat, saya menemukan banyak perintah, tetapi bukan alat tunggal untuk membuat .zipfile kompak dari kartu SD, jadi saya menulis mkimg.sh, yang berfungsi seperti ini:

sudo bash mkimg.sh /dev/sda sdcard.img.zip

Ini mengambil perangkat unmount di /dev/sda, menyusut ke sistem file dan partisi, dan menulis zip terkompresi. Dalam penggunaan saya, ini menulis ~ 1.5GB sistem Raspbian untuk membuat <500MB .zip.

Seiring dengan pemeriksaan kewarasan dan perhitungan ukuran, skrip pada dasarnya melakukan ini:

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

Skrip dan dokumentasi tersedia di GitHub .

berto
sumber
5

Anda dapat menggunakan Raspberry Pis sendiri bersama dengan multixterm pada komputer utama Anda untuk "boot strap" penulisan kartu SD Anda. Anda harus dapat menemukan multixterm di banyak manajer paket distro.

Langkah 1: Beli banyak adapter kartu SD USB stick.

Langkah 2: Gunakan metode standar untuk menulis 2 gambar kartu SD dengan komputer utama Anda.

Langkah 3: Masukkan 2 kartu SD dengan gambar ke dalam 2 Raspberry Pis dan sambungkan ke jaringan Anda dan hidupkan.

Langkah 4: Masukkan 2 kartu SD kosong ke adaptor USB stick dan hubungkan ke 2 Rapsberry Pis yang sedang berjalan.

Langkah 5: Sekarang di sinilah mulai menarik, dari komputer utama Anda gunakan multixterm seperti dari baris perintah multixterm -xc "ssh% n" host1 host2 di mana host1 dan host2 adalah alamat ip Raspberry Pis.

Langkah 6: Di dalam jendela stdin multixterm Anda dapat menggunakan dd seperti biasanya untuk menulis gambar ke kartu SD, tetapi sekarang multixterm akan mengirimkan perintah dd ke kedua Raspberry Pis secara bersamaan.

Langkah 7: Ulangi langkah 3-6 hingga semua kartu Anda ditulis.

Semakin banyak kartu SD Anda gambar, semakin banyak Raspberry Pis yang dapat Anda gunakan untuk gambar kartu SD baru. Jelas teknik ini tidak akan menulis semua kartu Anda sekaligus, tetapi akan mengurangi jumlah waktu yang dibutuhkan untuk menyelesaikan menulis semua kartu. Teknik ini sebagian besar bersifat eksperimental sehingga jarak tempuh Anda akan bervariasi, tetapi teorinya terdengar seperti eksperimen yang menarik ...

Dan B
sumber
Sangat menarik - tetapi juga sangat mahal untuk skala massa =) hehe love it. Apakah tidak ada cara untuk hyper thread menulis gambar di konsol yang berbeda ke adaptor USB SD yang berbeda mungkin?
Piotr Kula
5

Apa yang Anda cari adalah perangkat Programmer Geng untuk kartu SD, atau Duplikator Kartu SD.

Ya, sistem ini memang ada. Ini adalah salah satu yang saya temukan oleh Googling "programmer sd card gang". Perangkat khusus ini memiliki slot master, yang dapat menyalin hingga 7, slave kartu SD sekaligus. Programmer lain dengan 3 atau 11 slot slave juga tersedia.

Ada juga berbagai jenis programer. Beberapa dapat mem-flash gambar dari hard drive Anda dan dikendalikan oleh perangkat lunak yang diinstal pada PC. Perangkat lain, seperti yang ditautkan di atas, tidak perlu antarmuka ke server karena mereka mencerminkan informasi dari master chip.

Perlu disebutkan bahwa perangkat ini tidak murah. Mereka biasanya digunakan dalam lingkungan produksi massal dan permintaan tidak terlalu tinggi. Bersiaplah untuk membayar setidaknya $ 1.000 untuk perangkat yang bagus dengan fungsi ini.

ProDuplicator.com tampaknya juga memiliki beberapa opsi duplikasi SD Card.

RLH
sumber
Saya bertanya-tanya mengapa harganya sangat mahal, mengingat Anda masih perlu mengasuh bayi ini untuk memasukkan dan mengeluarkan kartu SD secara manual.
Dmitry Grigoryev
@ DmitryGrigoryev Dalam 5 yeas sejak jawaban saya, situs duplikator sekarang memiliki satu untuk di bawah $ 600, yang IMHO tampak murah. Perlu diingat bahwa kuantitas mendorong harga. Tidak banyak orang memerlukan ini sehingga harganya mahal karena mereka perlu memulihkan biaya pengembangan dan pembuatan. Jika ada satu dari ini untuk setiap 10 PC atau laptop, itu mungkin perangkat $ 100-150.
RLH
5

Kami memiliki persyaratan serupa untuk proyek di mana kami harus dapat menulis gambar ke 10+ kartu SD Raspberry Pi setiap hari. Kami melihat berbagai Duplikator Kartu yang tersedia untuk dibeli, tetapi ternyata sebagian besar tidak akan berhasil membuat kartu SD yang dapat di-boot, karena kebanyakan hanya menyalin file secara langsung dan bukan informasi yang dapat di-boot, harganya juga sangat mahal!

Jadi sebagai solusi, kami menulis perangkat lunak berbasis web sederhana kami sendiri untuk dijalankan pada Raspberry Pi tunggal yang terhubung ke hub USB bertenaga Belkin 2 x 7-port (Pi memiliki batasan 2 hub, dan maksimum 14 port USB).

Kami sekarang telah merilis ini sebagai perangkat lunak Sumber Terbuka untuk membantu orang lain yang memiliki persyaratan yang sama. Saat ini hanya tersedia kode sumber tetapi kami juga akan mengunggah file gambar berdasarkan ARM Arch Linux yang menjalankan Nginx + php

http://www.rockandscissor.com/projects/osid

pengguna10282
sumber
2

Ini berfungsi pada Mac OS X.

Lepaskan kartu yang telah Anda atasi, lalu coba:

sudo dd if=/dev/sdcardlocation of=backupimage.img.

Ganti sdcardlocationdengan lokasi kartu SD Anda.

Anda dapat bertukar .imgdengan .dmgatau .iso.

Selanjutnya, untuk menyiapkan kartu-kartu lain, lepas pemasangannya, dan jalankan kode sebelumnya dengan nilai-nilai yang ditukar. Barisnya adalah ini:

sudo dd if=backupimage.img of=/dev/sdcardlocation.

Pastikan untuk melepasnya sebelum Anda mengeluarkannya dari pembaca kartu.

Theoremiser
sumber
1

Meskipun Bagaimana cara mencadangkan Raspberry Pi saya? memberikan instances yang sangat baik tentang cara mengkloning satu kartu SD, melakukannya satu per satu selama puluhan kartu akan membosankan.

Mengingat bahwa tidak ada yang tampaknya telah menghasilkan pembaca kartu SD multi-kartu (yang dapat menampung beberapa kartu SD sekaligus) dan fakta bahwa Anda dapat membeli hub USB dan sekelompok pembaca kartu SD tunggal USB sangat murah, salah satu cara untuk mempercepat prosesnya adalah dengan membuat duplikator kartu SD Anda sendiri.

Anda bahkan dapat menulis skrip untuk secara otomatis menulis gambar Raspberry Pi pilihan Anda ke slot kartu SD kosong yang dimasukkan ke dalam slot. Script dapat secara otomatis mendeteksi bahwa kartu telah dimasukkan dan menunjukkan kapan salinan selesai.

Seperti yang disebutkan darrenjw dalam komentar, Anda akan ingin mengganti sertifikat ssh di setiap gambar yang dikloning saat pertama kali di-boot, jadi Anda mungkin ingin memastikan bahwa boot pertama ini dilakukan saat terhubung ke segmen jaringan pribadi sebelum menghubungkan ke jaringan yang terhubung internet.

Mark Booth
sumber
Anda biasanya tidak memasang kartu untuk mem-flash gambar ke dalamnya.
Alex Chamberlain
Terima kasih @AlexChamberlain, saya masih punya beberapa minggu sebelum Pi saya seharusnya tiba (Grrr, jika saya tahu saya berada di daftar tunggu RS untuk waktu tunggu yang lama saya akan memesan dari Farnell dengan lama. Memimpin waktu di tempat pertama) jadi saya belum benar-benar mencoba ini.
Mark Booth
1

Biasanya ada alat yang lebih baik untuk melakukan ini, kemudian menyalin banyak gambar RP.

Tetapi itu tergantung pada apa yang benar-benar ingin Anda lakukan.

Anda harus melihat cfengine3 [1], fai [2], chef [3], fabric [4] atau puppet [5]. Mereka adalah alat konfigurasi otomatis, yang akan berguna untuk melakukan hal-hal di mesin Anda ketika mulai pertama kali (dan kemudian).

[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/

Anders
sumber
1

PiBakery bisa menjadi solusi yang tepat untuk Anda. PiBakery memungkinkan Anda membuat gambar Raspbian khusus menggunakan blok untuk menyesuaikan berbagai hal seperti kata sandi wifi, kunci ssh, dll ...

Ameer
sumber
0

Alternatif lain adalah dengan menggunakan flash , alat baris perintah untuk mem-flash kartu SD dengan penyesuaian tertentu ke OS.

Ameer
sumber
0

Untuk mengatasi hanya memiliki satu slot kartu SD pada komputer Anda, jawaban mudah untuk membakar banyak gambar secara efisien adalah hub USB yang aktif dan sejumlah adaptor microSD-USB yang murah. Saya telah diuji menggunakan hub 13 port USB-3 dan adaptor microSD-USB yang murah (<$ 1).

Sejauh membakar banyak gambar dasar secara bersamaan, lihat dcfldd . Ini tersedia di repositori jessie raspbian. Ini adalah versi GNU dd yang disempurnakan, dengan kemampuan untuk secara bersamaan menulis ke banyak gambar. Saya melakukan beberapa pengujian biasa, dan mampu menyalin gambar kartu microSD pada RPi 3B ke campuran 7 kartu yang dicolokkan ke 3 jenis adaptor pada hub USB. Tes sebelumnya ke hub USB 2.0 3 port pada A + juga berhasil. Cukup banyak api-dan-lupakan begitu Anda mendapatkan parameter yang ditetapkan dengan benar. Saya terbatas pada 7 adapter, tetapi tidak ada alasan untuk berpikir itu tidak akan berfungsi dengan jumlah kartu yang lebih besar, meskipun kecepatan akan terbatas pada kartu tujuan yang paling lambat.

Jika Anda perlu untuk menyimpan sejumlah besar RPis up-to-date dengan perubahan konfigurasi setelah mereka menjalankan dan pada jaringan Anda, saya akan melihat ke dalam menggunakan ansible atau kain untuk memungkinkan update lewat ssh dan menghindari perlu re-membakar kartu agar tetap terbaru.

Akhirnya, Anda dapat memodifikasi master Anda untuk mengubah nama host pada setiap RPi menggunakan pengidentifikasi unik (misalnya berdasarkan alamat MAC jaringan) untuk memungkinkan lokasi yang mudah melalui avahitanpa harus mengubah setiap RPi untuk menghindari konflik setelah boot untuk menghindari konflik.

bobstro
sumber