Як можна скопіювати одне і те ж зображення на багато SD?


23

Отже, нарешті, я можу розмістити це оптове замовлення на малиновий піс ! Однак їх налаштування стане справжньою справою. Що я хотів би зробити:

  1. Завантажте акційне зображення та поводьтесь із ним на одному Пі
  2. Збережіть / витягніть / скопіюйте це зображення на всі інші карти SD
  3. Запропонуйте іншим Pi все налаштовано без додаткової конфігурації

На моєму комп’ютері є лише один слот для SD, тож чи є спосіб генерувати .imgфайл із моєї модифікованої картки 'master'?


4
Том ознайомтеся з цим повідомленням raspberrypi.stackexchange.com/questions/311/… Я думаю, що він відповідає на ваше запитання.
Стів Робільярд

@SteveRobillard +1 Це прекрасно відповість на питання.
Jivings

4
Одне, що слід пам’ятати, - це SSH. Якщо ви встановите SSH на головний майстер, ви отримаєте клоновані SSH-сертифікати на всіх зображеннях, що не обов'язково потрібно. ОТОХ, якщо ви будете використовувати піс без голови, ви, мабуть, хочете встановити SSH ...
Даррен Вілкінсон

@darrenjw Це надзвичайно вдалий момент. Ти врятував мене деяким збентеженням і без помилок. Дякую.
Jivings

Залежно від того, як ви плануєте використовувати цю масу Піса, ви можете перевірити проект Raspi-LTSP Ендрю Малхолленда . Це не просто корисно для використання в класі - це також дуже добре для кластерів.
Дейв Джонс

Відповіді:


7

Перед написанням майстра-клона копії, які допоможуть вам врятувати багато головних болів, потрібно виконати кілька простих підготовчих кроків.

  1. Налаштуйте головний клон для DHCP
  2. Видаліть усе в /etc/ssh/ssh_host*(вони відтворюються під час запуску SSHD)
  3. якщо у вас є /etc/udev/rules.d/70-network*файл, вам потрібно буде змінити eth0запис на щось інше (я використовувався eth9для своїх майстрів-клонів) - і не забудьте оновити пов'язаний ifconfigфайл - в centos, що є /etc/sysconfig/network-scripts/ifcfg-eth0(зробити це 9), а в debian (raspbian) - це/etc/network/interfaces

7

У мене були ті ж вимоги, що 1і 2до розповсюдження спеціалізованої ОС. Подивившись навколо, я знайшов багато команд, але не один інструмент для створення компактного .zipфайлу з SD-карти, тому я написав mkimg.sh, що працює так:

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

Це забирає відключений пристрій у /dev/sda, скорочує файлову систему та розділ та виписує стислий zip. У моєму використанні це записує ~ 1,5 Гб Raspbian-системи для створення <500 Мб .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

Сценарій та документація доступні на GitHub .


5

Ви можете використовувати Raspberry Pis самі разом з мультитертермом на головному комп'ютері, щоб "завантажувати ремінь" написання вашої SD-карти. Ви повинні мати змогу знайти мультитерміст у багатьох менеджерів пакетів дистрибутивів.

Крок 1. Купіть купу адаптерів SD-карт USB-накопичувача.

Крок 2. Використовуйте стандартні методи, щоб записати 2 зображення SD-картки на свій основний комп'ютер.

Крок 3: Поставте 2 SD-карти із зображеннями у 2 Raspberry Pis та підключіть їх до вашої мережі та підключіть живлення.

Крок 4: Покладіть 2 порожні SD-карти в адаптери USB-накопичувача та підключіть їх до 2-х запущених Rapsberry Pis.

Крок 5: Тепер ось, де стає цікаво, з вашого основного комп'ютера використовуйте multixterm, як так, з командного рядка multixterm -xc "ssh% n" host1 host2, де host1 та host2 - ip адреси Raspberry Pis.

Крок 6: Всередині stdin-вікна multixterm ви можете використовувати dd, як звичайно, щоб писати зображення на SD-карти, але тепер multixterm відправить цю команду dd одночасно на обидва Raspberry Pis.

Крок 7: Повторіть кроки 3-6, поки не будуть написані всі ваші картки.

Чим більше зображень на SD-картках, тим більше Raspberry Pis можна використовувати для зображення нових SD-карт. Очевидно, що ця методика не запише всі ваші картки за один раз, але це скоротить кількість часу, необхідне для завершення написання всіх карт. Ця методика була б значною мірою експериментальною, тому пробіг мінявся б, але теорія цього звучить як цікавий експеримент ...


Дуже цікаво - але також дуже дорого для масового масштабу =) hehe люблять це. Чи немає способу гіперпотокового запису зображень на різні консолі на різні USB-адаптери SD?
Пьотр Кула

5

Що ви шукаєте, це пристрій програміста банди для SD-карт або копіювач SD-карт.

Так, ці системи існують. Ось один, який я знайшов Googling «програмістом банди sd card». Цей специфічний пристрій має головний слот, в який можна скопіювати одночасно до 7 підлеглих SD карт. Також доступні інші програмісти з 3 або 11 слотами для підлеглих.

Існують також різні типи програмістів. Деякі можуть спалахнути зображення з вашого жорсткого диска і контролюється програмним забезпеченням, встановленим на ПК. Інші пристрої, як-от підключений вище, не мають інтерфейсу з серверами, оскільки вони відображають інформацію від головного чіпа.

Варто згадати, що ці пристрої коштують недешево. Зазвичай вони використовуються в умовах масового виробництва, а попит не надто високий. Будьте готові заплатити принаймні 1000 доларів США за хороший пристрій з цією функціональністю.

Як видається, ProDuplicator.com має ще декілька варіантів дублювання SD-карт.


Цікаво, чому вони коштують стільки, враховуючи, що вам потрібно все-таки сидіти за дитиною, щоб вручну вставляти і висувати SD-карти.
Дмитро Григор’єв

@DmitryGrigoryev Через 5 років з моєї відповіді, на сайті копіювача зараз розміщено за $ 600, що IMHO здається дешевим. Майте на увазі, що кількість визначає ціну. Не багато людей потребують цього, тому вони дорогі, оскільки їм потрібно відшкодувати витрати на розробку та виробництво. Якби один з них був на кожні 10 ПК або ноутбуків, це, ймовірно, було б пристроєм 100-150 доларів.
RLH

5

Ми мали аналогічну вимогу до проекту, де нам потрібно було щодня писати зображення на 10+ Raspberry Pi SD-карт. Ми розглядали різні копії карт, доступні для придбання, але виявили, що більшість із них не може успішно створити завантажувальну SD-карту, оскільки більшість лише копіюють файли безпосередньо, а не завантажувальну інформацію, вони також смішно дорогі!

Тому в якості рішення ми написали власне просте веб-програмне забезпечення для роботи на одному Raspberry Pi, підключеному до 2-х 7-портових USB-концентраторів Belkin (Pi має обмеження на 2 концентратори та максимум на 14 портів USB).

Зараз ми випустили це як програмне забезпечення з відкритим кодом, щоб допомогти іншим, хто має ті ж вимоги. В даний час доступний лише вихідний код, але ми також будемо завантажувати файл зображень на базі ARM Arch Linux під управлінням 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-концентратор і купу USB-зчитувачів однієї SD-карти дуже дешево, одним із способів прискорити процес було б зробити власний копіювач SD-карт.

Ви навіть можете написати сценарій для автоматичного запису обраного зображення Raspberry Pi на будь-який порожній слот для SD-картки, вставлений у слот. Сценарії можуть автоматично визначити, що картка вставлена, і вказати, коли копія завершена.

Як згадував darrenjw у коментарях, вам потрібно буде замінити ssh-сертифікати в кожному із клонованих зображень при першому завантаженні, тому ви можете переконатися, що це перше завантаження виконано під час підключення до приватного сегмента мережі перед підключенням це до мережі, підключеної до Інтернету.


Зазвичай ви не монтуєте карту, щоб прошивати зображення на ній.
Алекс Чемберлен

Дякую @AlexChamberlain, у мене ще є пару тижнів до того, як мій Pi повинен приїхати (Grrr, якби я знав, що я був у списку очікування на RS довгий час, я б тільки що замовив у Farnell довго першочерговий час), тому я ще цього ще не намагався.
Марк Бут

1

Зазвичай для цього є кращий інструмент, щоб потім скопіювати багато зображень RP.

Але це залежить від того, що ви дійсно хочете зробити.

Ви повинні подивитися на cfengine3 [1], fai [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 за допомогою блоків для налаштування різних речей, таких як паролі Wi-Fi, ключі ssh тощо.


0

Інша альтернатива - використовувати flash , інструмент командного рядка для відтворення флеш-карт SD із певними налаштуваннями в ОС.


0

Щоб вирішити лише один слот на SD-картці на вашому комп’ютері, легкою відповіддю для ефективного запису декількох зображень є підключений USB-концентратор та ряд недорогих адаптерів microSD-USB. Я протестував за допомогою 13-портового концентратора USB-3 та дешевих (<$ 1) адаптерів microSD-USB.

Наскільки записує багато базових зображень одночасно, перевірте dcfldd . Він доступний у сховищах расспі-джессі. Це вдосконалена версія GNU dd, з можливістю одночасного запису на кілька зображень. Я зробив кілька випадкових тестувань і зміг скопіювати зображення карти microSD на RPi 3B в суміш із 7 карт, підключених до 3-х типів адаптерів на USB-концентраторі. Попередні тести на 3-портовому концентраторі USB 2.0 на A + також працювали. Це майже непогано, як тільки ви отримаєте встановлені параметри правильно. Мене обмежили 7 адаптерами, але немає підстав вважати, що це не працюватиме з більшою кількістю карт, хоча швидкість буде обмежена швидкістю найповільнішої картки призначення.

Якщо вам потрібно буде постійно оновлювати зміни RPI, коли вони працюватимуть у вашій мережі, я б розглядав можливість використання ansible або тканини, щоб дозволити оновлення через ssh і не потребувати повторного запису картки, щоб тримати їх актуальними.

Нарешті, ви можете змінити свого майстра, щоб змінити ім'я хоста на кожному RPi, використовуючи унікальний ідентифікатор (наприклад, на основі мережевої MAC-адреси), щоб дозволити просте розташування, avahiне змінюючи кожен RPi, щоб уникнути конфліктів після завантаження, щоб уникнути конфліктів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.