ฉันจะคัดลอกภาพเดียวกันไปยัง SDs หลาย ๆ วิธีได้อย่างไร


23

ในที่สุดฉันก็สามารถสั่ง Raspberry Pis จำนวนมากได้ ! อย่างไรก็ตามการกำหนดค่าพวกเขาจะเป็นงานที่น่าเบื่อ สิ่งที่ฉันต้องการทำคือ:

  1. ดาวน์โหลดภาพสต็อกและคนจรจัดในภาพเดียว
  2. บันทึก / แยก / คัดลอกภาพนั้นไปยังการ์ด SD อื่น ๆ ทั้งหมด
  3. ให้ Pi อื่นตั้งค่าทั้งหมดโดยไม่ต้องกำหนดค่าเพิ่มเติมใด ๆ

คอมพิวเตอร์ของฉันมีช่องเสียบ SD เพียงช่องเดียวจึงมีวิธีสร้าง.imgไฟล์จากการ์ด 'มาสเตอร์' ที่แก้ไขหรือไม่


4
ทอมดูโพสต์นี้raspberrypi.stackexchange.com/questions/311/…ฉันคิดว่ามันตอบคำถามของคุณ
Steve Robillard

@SteveRobillard +1 นั่นจะตอบคำถามได้อย่างสมบูรณ์แบบ
Jivings

4
สิ่งหนึ่งที่ควรระวังคือ SSH หากคุณตั้งค่า SSH บนต้นแบบคุณจะต้องจบด้วยใบรับรอง SSH ที่โคลนในภาพทั้งหมดซึ่งไม่จำเป็นต้องเป็นสิ่งที่คุณต้องการ OTOH ถ้าคุณกำลังจะถูกใช้หัวขาด Pis คุณอาจไม่ต้องการติดตั้ง SSH ...
คาร์เรนวิลกินสัน

@darrenjw นั่นเป็นจุดที่ดีมาก คุณช่วยฉันลำบากใจและไม่มีข้อผิดพลาด ขอขอบคุณ.
Jivings

ขึ้นอยู่กับว่าคุณตั้งใจจะใช้มวลของ Pis ที่คุณอาจต้องการที่จะตรวจสอบแอนดรูมัลฮอลแลนด์ของโครงการ Raspi-LTSP มันไม่ได้มีประโยชน์สำหรับการใช้ในห้องเรียนเท่านั้น แต่มันก็ดีมากสำหรับกลุ่ม
เดฟโจนส์

คำตอบ:


7

มีขั้นตอนการเตรียมการง่ายๆสองสามขั้นตอนก่อนที่จะเขียนต้นแบบโคลนเพื่อคัดลอกซึ่งจะช่วยให้คุณปวดหัวมาก

  1. กำหนดค่าโคลนต้นแบบสำหรับ DHCP
  2. ลบทุกอย่างใน/etc/ssh/ssh_host*(สิ่งนี้จะถูกสร้างขึ้นใหม่เมื่อคุณเรียกใช้ SSHD)
  3. ถ้าคุณมี/etc/udev/rules.d/70-network*ไฟล์คุณจะต้องแก้ไขeth0รายการให้เป็นอย่างอื่น (ฉันใช้eth9สำหรับโคลนต้นแบบของฉัน) - และอย่าลืมอัปเดตifconfigไฟล์ที่เกี่ยวข้อง- ในเซ็นโตสที่เป็น/etc/sysconfig/network-scripts/ifcfg-eth0(สร้าง9) และเดเบียน (raspbian)/etc/network/interfaces

7

ฉันมีข้อกำหนดเช่นเดียวกับ1และ2เพื่อเผยแพร่ระบบปฏิบัติการที่กำหนดเอง หลังจากมองไปรอบ ๆ ฉันพบคำสั่งมากมาย แต่ไม่ใช่เครื่องมือเดียวในการสร้าง.zipไฟล์ขนาดกะทัดรัดจากการ์ด SD ดังนั้นฉันจึงเขียนmkimg.shซึ่งใช้งานได้เช่นนี้:

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

สิ่งนี้จะนำอุปกรณ์ที่ไม่ได้ต่อเชื่อมที่/dev/sdaลดขนาดระบบไฟล์และพาร์ติชันลงและเขียน zip ที่บีบอัด ในการใช้งานของฉันนี้เขียนระบบ ~ 1.5GB Raspbian เพื่อสร้าง .zip<500MB

นอกเหนือจากการตรวจสอบสติและการคำนวณขนาดแล้วสคริปต์ยังทำสิ่งนี้:

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

สคริปต์และเอกสารที่มีอยู่บน GitHub


5

คุณสามารถใช้ Raspberry Pis ร่วมกับmultixtermบนคอมพิวเตอร์หลักของคุณเพื่อ "boot strap" การเขียนการ์ด SD ของคุณ คุณควรจะสามารถค้นหา multixterm ได้ในผู้จัดการแพ็คเกจของ distro

ขั้นตอนที่ 1: ซื้ออะแดปเตอร์การ์ด SD แบบ USB จำนวนมาก

ขั้นตอนที่ 2: ใช้วิธีมาตรฐานในการเขียนรูปที่ 2 ของการ์ด SD ด้วยคอมพิวเตอร์หลักของคุณ

ขั้นตอนที่ 3: ใส่การ์ด SD 2 ใบพร้อมภาพลงใน 2 Raspberry Pis และเชื่อมต่อกับเครือข่ายของคุณและเปิดเครื่อง

ขั้นตอนที่ 4: ใส่การ์ด SD เปล่า 2 ใบลงในอะแดปเตอร์ USB stick แล้วเสียบลงใน Rapsberry Pis ที่ทำงานอยู่ 2 ตัว

ขั้นตอนที่ 5: ตอนนี้ที่นี่เป็นที่น่าสนใจจากคอมพิวเตอร์หลักของคุณใช้ multixterm เช่นนั้นจากบรรทัดคำสั่งmultixterm -xc "ssh% n" host1 host2 host2โดยที่ host1 และ host2 เป็นที่อยู่ ip ของ Raspberry Pis

ขั้นตอนที่ 6: ภายในหน้าต่าง stdin ของ multixterm คุณสามารถใช้ dd ตามปกติที่คุณจะเขียนรูปภาพไปยังการ์ด SD แต่ตอนนี้ multixterm จะส่งคำสั่ง dd ไปที่ Raspberry Pis ทั้งสองพร้อมกัน

ขั้นตอนที่ 7: ทำซ้ำขั้นตอนที่ 3-6 จนกว่าคุณจะได้เขียนการ์ดทั้งหมดของคุณ

ยิ่งการ์ด SD ที่คุณสร้างภาพ Raspberry Pis ยิ่งคุณสามารถใช้เพื่อสร้างการ์ด SD ใหม่ได้ เห็นได้ชัดว่าเทคนิคนี้จะไม่เขียนไพ่ทั้งหมดของคุณในครั้งเดียว แต่มันจะลดระยะเวลาที่ใช้ในการเขียนการ์ดทั้งหมด เทคนิคนี้จะทำการทดลองเป็นส่วนใหญ่ดังนั้นระยะของคุณจะแตกต่างกันไป แต่ทฤษฎีของมันดูเหมือนการทดลองที่น่าสนใจ ...


น่าสนใจมาก - แต่ก็แพงมากสำหรับสเกลมวล =) ฮิฮิรักมัน อาจจะไม่มีวิธีการเขียนเธรดไฮเปอร์ในคอนโซลที่แตกต่างกันไปยังอะแดปเตอร์ USB SD ที่ต่างกันหรือเปล่า?
Piotr Kula

5

สิ่งที่คุณกำลังมองหาคืออุปกรณ์ Gang Programmer สำหรับการ์ด SD หรือ SD Card Duplicator

ใช่ระบบเหล่านี้มีอยู่จริง นี่คือสิ่งที่ฉันพบโดย Googling "โปรแกรมเมอร์ sd card gang" อุปกรณ์เฉพาะนี้มีสล็อตหลักซึ่งสามารถคัดลอกการ์ด SD ได้สูงสุด 7 การ์ดในครั้งเดียว นอกจากนี้ยังมีโปรแกรมเมอร์อื่น ๆ ที่มีช่องเสียบทาส 3 หรือ 11 ช่อง

นอกจากนี้ยังมีโปรแกรมเมอร์ประเภทต่าง ๆ บางคนสามารถแฟลชภาพจากฮาร์ดไดรฟ์ของคุณและควบคุมโดยซอฟต์แวร์ที่ติดตั้งบนพีซี อุปกรณ์อื่น ๆ เช่นอุปกรณ์ที่เชื่อมโยงด้านบนไม่จำเป็นต้องเชื่อมต่อกับเซิร์ฟเวอร์เพราะอุปกรณ์เหล่านี้ทำหน้าที่สะท้อนข้อมูลออกจากชิปหลัก

เป็นมูลค่าการกล่าวขวัญว่าอุปกรณ์เหล่านี้ไม่ถูก พวกเขามักจะใช้ในสภาพแวดล้อมการผลิตจำนวนมากและความต้องการไม่สูงเกินไป เตรียมพร้อมที่จะจ่ายอย่างน้อย $ 1,000 สำหรับอุปกรณ์ที่ดีด้วยฟังก์ชั่นนี้

ProDuplicator.comดูเหมือนจะมีตัวเลือกการทำซ้ำ SD การ์ดอีกสองสามตัวเช่นกัน


ฉันสงสัยว่าทำไมค่าใช้จ่ายเหล่านี้มากนักเนื่องจากคุณยังต้องนั่งฟังสิ่งนี้เพื่อใส่การ์ด SD เข้าและออกด้วยตนเอง
Dmitry Grigoryev

@DmitryGrigoryev ในช่วง 5 ปีที่ผ่านมาตั้งแต่คำตอบของฉันเว็บไซต์นักลงทุนตอนนี้มีราคาต่ำกว่า $ 600 ซึ่ง IMHO ดูเหมือนราคาถูก โปรดทราบว่าปริมาณขับเคลื่อนราคา มีคนไม่มากที่ต้องการสิ่งเหล่านี้ดังนั้นพวกเขาจึงมีราคาแพงเพราะพวกเขาต้องการกู้คืนการพัฒนาและต้นทุนการผลิต หากมีสิ่งใดสิ่งหนึ่งเหล่านี้สำหรับพีซีหรือแล็ปท็อป 10 เครื่องมันอาจเป็นอุปกรณ์ $ 100-150
RLH

5

เรามีข้อกำหนดที่คล้ายกันสำหรับโครงการที่เราต้องการให้สามารถเขียนภาพไปยังการ์ด SD Raspberry Pi 10+ ในแต่ละวัน เราดูที่ Card ซ้ำซ้อนที่มีให้ซื้อ แต่พบว่าส่วนใหญ่จะไม่ประสบความสำเร็จในการทำการ์ด SD ที่สามารถบู๊ตได้เพราะส่วนใหญ่จะคัดลอกไฟล์โดยตรงและไม่ใช่ข้อมูลที่สามารถบู๊ตได้พวกเขาก็มีราคาแพงมาก!

ดังนั้นในการแก้ปัญหาเราจึงเขียนซอฟต์แวร์บนเว็บของเราเองขึ้นมาเพื่อรันบน Raspberry Pi ตัวเดียวที่เชื่อมต่อกับฮับ USB 2 x 7- พอร์ต Belkin ที่ขับเคลื่อนด้วย USB (The Pi มีข้อ จำกัด ของ 2 ฮับและสูงสุด 14 พอร์ต USB)

ตอนนี้เราได้เปิดตัวซอฟต์แวร์โอเพ่นซอร์สเพื่อช่วยเหลือผู้อื่นที่มีความต้องการเหมือนกัน ขณะนี้มีเพียงซอร์สโค้ดเท่านั้นที่มีให้ แต่เราจะทำการอัปโหลดไฟล์รูปภาพตาม Arch Linux ARM ที่ใช้งาน Nginx + php

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


2

ใช้งานได้กับ 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

แม้ว่าฉันจะสำรอง Raspberry Pi ของฉันได้อย่างไร มอบข้อ จำกัด ที่ยอดเยี่ยมเกี่ยวกับวิธีการโคลนการ์ด SD เดียวการทำทีละครั้งสำหรับการ์ดหลายสิบใบจะน่าเบื่อ

เนื่องจากดูเหมือนว่าไม่มีใครผลิตเครื่องอ่านการ์ด SD แบบหลายการ์ด (อันที่สามารถเก็บการ์ด SD ได้หลายการ์ดในครั้งเดียว) และความจริงที่ว่าคุณสามารถซื้อฮับ USB และเครื่องอ่านการ์ด SD แบบ USB เดี่ยวจำนวนมากราคาถูก วิธีหนึ่งที่จะทำให้กระบวนการเร็วขึ้นคือการทำสำเนาการ์ด SD ของคุณเอง

คุณยังสามารถเขียนสคริปต์เพื่อเขียนภาพ Raspberry Pi ที่คุณเลือกลงในช่องเสียบการ์ด SD ที่ว่างอยู่ในช่องเสียบ สคริปต์สามารถตรวจจับได้โดยอัตโนมัติว่ามีการใส่การ์ดและระบุเมื่อการคัดลอกเสร็จสมบูรณ์

ตามที่darrenjwพูดถึงในความคิดเห็นคุณจะต้องแทนที่ใบรับรอง ssh ในแต่ละภาพที่ถูกโคลนในครั้งแรกที่พวกเขาถูกบู๊ตดังนั้นคุณอาจต้องการให้แน่ใจว่าการบูตครั้งแรกนี้เสร็จสิ้นในขณะที่เชื่อมต่อกับเครือข่ายส่วนตัวก่อนที่จะเชื่อมต่อ ไปยังเครือข่ายที่เชื่อมต่ออินเทอร์เน็ต


ปกติแล้วคุณจะไม่ได้ใส่การ์ดเพื่อฉายภาพลงไป
อเล็กซ์แชมเบอร์เลน

ขอบคุณ @AlexChamberlain ฉันยังมีเวลาสองสามสัปดาห์ก่อนที่ Pi ของฉันจะมาถึง (Grrr ถ้าฉันรู้ว่าฉันอยู่ในรายการรอ RS เป็นระยะเวลานานฉันจะสั่งจาก Farnell นาน เวลานำในตอนแรก) ดังนั้นฉันยังไม่ได้ลองสิ่งนี้จริงๆ
Mark Booth

1

มักจะมีเครื่องมือที่ดีกว่าในการทำเช่นนี้แล้วคัดลอกภาพ RP จำนวนมาก

แต่มันก็ขึ้นอยู่กับสิ่งที่คุณต้องการจะทำ

คุณควรดู cfengine3 [1], ไฟ [2], พ่อครัว [3], ผ้า [4] หรือหุ่นเชิด [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/


1

PiBakeryอาจเป็นทางออกสำหรับคุณ PiBakery ช่วยให้คุณสร้างภาพ Raspbian ที่กำหนดเองโดยใช้บล็อกเพื่อกำหนดสิ่งต่าง ๆ เช่นรหัสผ่าน wifi, คีย์ ssh, ฯลฯ ...


0

อีกทางเลือกหนึ่งคือการใช้แฟลชเครื่องมือบรรทัดคำสั่งเพื่อแฟลชการ์ด SD ที่มีการปรับแต่งบางอย่างกับระบบปฏิบัติการ


0

หากต้องการพูดถึงการมีเพียงช่องเสียบการ์ด SD เพียงช่องเดียวบนคอมพิวเตอร์ของคุณคำตอบที่ง่ายสำหรับการเขียนภาพหลายภาพอย่างมีประสิทธิภาพคือฮับ USB ที่ได้รับพลังงานและอะแดปเตอร์ microSD-USB จำนวนไม่แพง ฉันทดสอบโดยใช้ฮับ 13 พอร์ต USB-3 และการ์ด microSD-USB ราคาถูก (<$ 1)

เพื่อให้ห่างไกลการเผาไหม้จำนวนมากของภาพฐานพร้อมกันตรวจสอบdcfldd มันมีอยู่ในที่เก็บเจสซี่ราสเบียน เป็นรุ่นปรับปรุงของ GNU dd พร้อมความสามารถในการเขียนไปยังรูปภาพหลายรูปพร้อมกัน ฉันทำการทดสอบแบบไม่เป็นทางการและสามารถคัดลอกภาพ microSD การ์ดลงใน RPi 3B ไปยังการ์ด 7 ใบที่เสียบเข้ากับอะแดปเตอร์ 3 ประเภทในฮับ USB การทดสอบก่อนหน้านี้กับฮับ USB 2.0 3 พอร์ตบน A + ก็ใช้งานได้เช่นกัน มันค่อนข้างไฟและลืมเมื่อคุณตั้งค่าพารามิเตอร์อย่างถูกต้อง ฉัน จำกัด อะแดปเตอร์ 7 ตัว แต่ไม่มีเหตุผลที่จะคิดว่ามันจะไม่ทำงานกับการ์ดจำนวนมากขึ้นแม้ว่าความเร็วจะ จำกัด อยู่ที่การ์ดปลายทางที่ช้าที่สุด

หากคุณต้องการรักษา RPis จำนวนมากให้ทันสมัยอยู่เสมอด้วยการเปลี่ยนแปลงการกำหนดค่าเมื่อพวกเขาทำงานและในเครือข่ายของคุณฉันจะพิจารณาใช้ansibleหรือแฟบริคเพื่ออนุญาตการอัปเดตผ่าน ssh และหลีกเลี่ยงการเผาใหม่ บัตรเพื่อให้พวกเขาเป็นปัจจุบัน

ในที่สุดคุณสามารถปรับเปลี่ยนต้นแบบของคุณเพื่อเปลี่ยนชื่อโฮสต์ใน RPi แต่ละรายการโดยใช้ตัวระบุที่ไม่ซ้ำกัน (เช่นตามที่อยู่ MAC ของเครือข่าย) เพื่อให้ตำแหน่งง่ายผ่านavahiโดยไม่ต้องแก้ไข RPi ทุกครั้งเพื่อหลีกเลี่ยงความขัดแย้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.