Jak mogę skopiować ten sam obraz na wiele kart SD?

23

W końcu mogę złożyć zamówienie zbiorcze na Raspberry Pis ! Jednak ich konfiguracja będzie uciążliwa. Chciałbym:

  1. Pobierz zdjęcie stockowe i majstruj przy nim na jednym pi
  2. Zapisz / rozpakuj / skopiuj ten obraz na wszystkie inne karty SD
  3. Niech wszystkie inne Pi są skonfigurowane bez konieczności wykonywania dodatkowej konfiguracji

Mój komputer ma tylko jedno gniazdo SD, więc czy istnieje sposób na wygenerowanie .imgpliku z mojej zmodyfikowanej karty „master”?

Tom Medley
źródło
4
Tom sprawdź ten post raspberrypi.stackexchange.com/questions/311/ ... Myślę, że to odpowiada na twoje pytanie.
Steve Robillard,
@SteveRobillard +1 To doskonale odpowie na pytanie.
Jivings
4
Należy pamiętać o SSH. Jeśli skonfigurujesz SSH w systemie głównym, skończysz ze sklonowanymi certyfikatami SSH na wszystkich obrazach, co niekoniecznie jest tym, czego chcesz. OTOH, jeśli zamierzasz używać Pis bezgłowy, prawdopodobnie chcesz zainstalować SSH ...
Darren Wilkinson
@darrenjw To bardzo dobry punkt. Oszczędź mi wstydu i nie pomyl się. Dziękuję Ci.
Jivings
W zależności od tego, jak zamierzasz użyć tej masy Pis, możesz sprawdzić projekt Raspi-LTSP Andrew Mulhollanda . Jest nie tylko przydatny do użytku w klasie - jest również bardzo dobry dla klastrów.
Dave Jones

Odpowiedzi:

7

Jest kilka prostych kroków przygotowawczych do zrobienia przed napisaniem mistrza klonowania na kopiach, co pozwoli ci zaoszczędzić wielu problemów.

  1. Skonfiguruj wzorzec klonowania dla DHCP
  2. Usuń wszystko w /etc/ssh/ssh_host*(zostaną one odtworzone po uruchomieniu SSHD)
  3. jeśli masz /etc/udev/rules.d/70-network*plik, musisz zmodyfikować eth0wpis w czymś innym (użyłem eth9dla moich mistrzów klonowania) - i pamiętaj, aby zaktualizować powiązany ifconfigplik - w centos, czyli /etc/sysconfig/network-scripts/ifcfg-eth0(zrób to 9), aw debian (raspbian) to/etc/network/interfaces
Nox
źródło
7

Miałem te same wymagania, jak 1i 2do dystrybucji dostosowanych OS. Po rozejrzeniu się znalazłem wiele poleceń, ale ani jednego narzędzia do utworzenia kompaktowego .zippliku z karty SD, więc napisałem mkimg.sh, który działa w ten sposób:

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

Spowoduje to podłączenie odmontowanego urządzenia /dev/sda, zmniejszenie systemu plików i partycji oraz zapisanie skompresowanego pliku zip. W moim zastosowaniu zapisuje to ~ 1,5 GB systemu Raspbian, aby utworzyć <500 MB .zip.

Oprócz kontroli poczytalności i obliczeń rozmiaru skrypt zasadniczo wykonuje następujące czynności:

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

Skrypt i dokumentacja są dostępne na GitHub .

berto
źródło
5

Możesz użyć Raspberry Pis razem z multixtermem na głównym komputerze, aby „uruchomić pasek” podczas zapisywania karty SD. Powinieneś być w stanie znaleźć multixterm w menedżerach pakietów wielu dystrybucji.

Krok 1: Kup kilka adapterów kart pamięci USB.

Krok 2: Użyj standardowych metod, aby zapisać 2 obrazy kart SD na głównym komputerze.

Krok 3: Włóż 2 karty SD z obrazami do 2 Raspberry Pis i podłącz je do sieci i włącz.

Krok 4: Włóż 2 puste karty SD do adapterów USB i podłącz je do 2 działających Rapsberry Pis.

Krok 5: Teraz tutaj jest interesująco, z głównego komputera użyj multixterm, tak jak z wiersza poleceń multixterm -xc "ssh% n" host1 host2, gdzie host1 i host2 to adresy IP Raspberry Pis.

Krok 6: W oknie standardowego wejścia multixterm możesz użyć dd, tak jak zwykle zapisujesz obrazy na kartach SD, ale teraz multixterm wyśle ​​to polecenie dd do obu Raspberry Pis jednocześnie.

Krok 7: Powtarzaj kroki 3-6, aż wszystkie karty zostaną zapisane.

Im więcej kart SD obrazujesz, tym więcej Raspberry Pis możesz użyć do obrazowania nowych kart SD. Oczywiście ta technika nie zapisuje wszystkich twoich kart za jednym razem, ale zmniejszyłaby ilość czasu potrzebnego na ukończenie pisania wszystkich kart. Ta technika byłaby w dużej mierze eksperymentalna, więc przebieg byłby różny, ale jej teoria brzmi jak ciekawy eksperyment ...

Dan B.
źródło
Bardzo interesujące - ale także bardzo drogie na masową skalę =) hehe to uwielbia. Czy nie ma sposobu, aby hiper-wątek pisał obrazy w różnych konsolach do różnych adapterów USB SD?
Piotr Kula,
5

To, czego szukasz, to urządzenie Gang Programmer do kart SD lub powielacz kart SD.

Tak, te systemy istnieją. Oto jeden ze znalezionych przez Googlinga „programisty kart sd”. To konkretne urządzenie ma gniazdo główne, które można skopiować do 7 podrzędnych kart SD jednocześnie. Dostępni są również inni programiści z 3 lub 11 gniazdami slave.

Istnieją również różne typy programistów. Niektóre mogą sflashować obraz z dysku twardego i są kontrolowane przez oprogramowanie zainstalowane na komputerze. Inne urządzenia, takie jak powyższe, nie muszą łączyć się z serwerami, ponieważ odbijają informacje poza układem głównym.

Warto wspomnieć, że te urządzenia nie są tanie. Są zwykle używane w środowisku produkcji masowej, a popyt nie jest zbyt wysoki. Przygotuj się na zapłacenie co najmniej 1000 USD za dobre urządzenie z tą funkcją.

Wydaje się, że ProDuplicator.com ma jeszcze kilka innych opcji duplikacji kart SD.

RLH
źródło
Zastanawiam się, dlaczego kosztują tyle, biorąc pod uwagę, że wciąż trzeba to usiąść, aby ręcznie wkładać i wyjmować karty SD.
Dmitry Grigoryev
@DmitryGrigoryev W ciągu 5 lat od mojej odpowiedzi strona duplikatora ma teraz jedną za mniej niż 600 USD, co IMHO wydaje się tanie. Pamiętaj, że ilość napędza cenę. Niewiele osób potrzebuje ich, więc są one drogie, ponieważ muszą odzyskać koszty rozwoju i produkcji. Gdyby istniał jeden z nich na każde 10 komputerów PC lub laptopów, prawdopodobnie byłoby to urządzenie o wartości 100-150 USD.
RLH
5

Podobny wymóg dotyczył projektu, w którym codziennie musieliśmy zapisywać obrazy na kartach SD 10+ Raspberry Pi. Przyjrzeliśmy się różnym Powielaczom kart, które można kupić, ale okazało się, że większość z nich z powodzeniem nie tworzy rozruchowej karty SD, ponieważ większość kopiuje tylko pliki bezpośrednio, a nie informacje rozruchowe, są też absurdalnie drogie!

Dlatego jako rozwiązanie napisaliśmy własne proste oprogramowanie internetowe do działania na jednym Raspberry Pi podłączonym do 2 x 7-portowych koncentratorów USB zasilanych Belkin (Pi ma ograniczenie 2 koncentratorów i maksymalnie 14 portów USB).

Wydaliśmy to jako oprogramowanie Open Source, aby pomóc innym, którzy mają takie same wymagania. Obecnie dostępny jest tylko kod źródłowy, ale prześlemy również plik obrazu oparty na Arch Linux ARM z Nginx + php

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

użytkownik10282
źródło
2

Działa to w systemie Mac OS X.

Odmontuj kartę, którą majstrowałeś, a następnie spróbuj:

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

Zamień sdcardlocationna lokalizację karty SD.

Możesz zamienić za .imgpomocą .dmglub .iso.

Następnie, aby przygotować inne karty, odmontuj je i uruchom poprzedni kod z zamienionymi wartościami. Linia byłaby taka:

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

Pamiętaj, aby odmontować je przed wyjęciem ich z czytnika kart.

Teoremiser
źródło
1

Chociaż Jak mogę wykonać kopię zapasową mojego Raspberry Pi? zapewnia doskonałe instrukcje klonowania pojedynczej karty SD, robienie tego pojedynczo, ponieważ dziesiątki kart staną się uciążliwe.

Ponieważ wydaje się, że nikt nie wyprodukował czytnika kart SD z wieloma kartami (takiego, który może pomieścić wiele kart SD jednocześnie) oraz fakt, że można bardzo tanio kupić hub USB i kilka czytników USB z jedną kartą SD, Jednym ze sposobów przyspieszenia tego procesu byłoby utworzenie własnego powielacza kart SD.

Możesz nawet napisać skrypt, aby automatycznie zapisać wybrany obraz Raspberry Pi na dowolnym pustym gnieździe karty SD włożonym do gniazda. Skrypty mogą automatycznie wykryć włożenie karty i wskazać, kiedy kopia zostanie ukończona.

Jak jednak wspomniał darrenjw w komentarzach, będziesz chciał zastąpić certyfikaty ssh w każdym sklonowanym obrazie przy pierwszym uruchomieniu, więc możesz się upewnić, że to pierwsze uruchomienie odbywa się podczas połączenia z prywatnym segmentem sieci przed połączeniem do sieci połączonej z Internetem.

Mark Booth
źródło
Zwykle nie montujesz karty, aby flashować na niej obraz.
Alex Chamberlain,
Dzięki @AlexChamberlain, mam jeszcze kilka tygodni, zanim moje Pi ma przybyć (Grrr, gdybym wiedział, że jestem na liście oczekujących RS przez długi czas realizacji, właśnie zamówiłbym w Farnell z długim czas realizacji w pierwszej kolejności), więc jeszcze tego nie próbowałem.
Mark Booth,
1

Zwykle jest to lepsze narzędzie, aby to zrobić, niż skopiować wiele obrazów RP.

Ale to zależy od tego, co naprawdę chcesz zrobić.

Powinieneś rzucić okiem na cfengine3 [1], fai [2], kucharz [3], tkaninę [4] lub marionetkę [5]. Są to narzędzia do automatycznej konfiguracji, które przydadzą się do robienia rzeczy na twoim komputerze przy pierwszym uruchomieniu (i później).

[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
źródło
1

PiBakery może być dla Ciebie realnym rozwiązaniem. PiBakery umożliwia tworzenie niestandardowego obrazu Raspbian za pomocą bloków w celu dostosowania różnych rzeczy, takich jak hasła Wi-Fi, klucze ssh itp.

Ameer
źródło
0

Inną alternatywą jest użycie flasha , narzędzia wiersza poleceń do flashowania kart SD z pewnymi dostosowaniami do systemu operacyjnego.

Ameer
źródło
0

Aby rozwiązać problem posiadania tylko jednego gniazda karty SD w komputerze, łatwą odpowiedzią na wydajne nagrywanie wielu obrazów jest zasilany koncentrator USB i szereg niedrogich adapterów microSD-USB. Testowałem przy użyciu 13-portowego koncentratora USB-3 i tanich (<1 USD) adapterów microSD-USB.

Jeśli chodzi o nagrywanie wielu podstawowych obrazów jednocześnie, sprawdź dcfldd . Jest dostępny w repozytoriach raspbian jessie. To ulepszona wersja GNU dd z możliwością jednoczesnego zapisu do wielu obrazów. Przeprowadziłem przypadkowe testy i byłem w stanie skopiować obraz karty microSD na RPi 3B do mieszanki 7 kart podłączonych do 3 typów adapterów na hubie USB. Wcześniejsze testy 3-portowego koncentratora USB 2.0 na A + również działały. Po prawidłowym ustawieniu parametrów jest prawie jak ognia i zapomnienia. Byłem ograniczony do 7 adapterów, ale nie ma powodu sądzić, że nie będzie działać z większą liczbą kart, choć prędkości będą ograniczone do najwolniejszej karty docelowej.

Jeśli trzeba zachować dużą liczbę spółką RPIS się na bieżąco ze zmianami w konfiguracji po ich używasz i na sieci, że patrzę w użyciu ansibl lub tkaniny , aby umożliwić aktualizacje przez SSH i uniknąć konieczności ponownego spalić karty, aby były aktualne.

Na koniec możesz zmodyfikować swojego wzorca, aby zmienić nazwę hosta na każdym RPi przy użyciu unikalnego identyfikatora (np. Na podstawie adresu MAC sieci), aby umożliwić łatwą lokalizację avahibez konieczności modyfikowania każdego RPi, aby uniknąć konfliktów po uruchomieniu, aby uniknąć konfliktów.

Bobstro
źródło