Czy mogę sklonować całe Raspberry Pi w celu wdrożenia na innym Raspberry Pi?

12

Nie jestem pewien, czy wszystkie tematy „jak wykonać kopię zapasową karty SD” są tym, o co proszę ... ale proszę bardzo :)

Czy istnieje sposób, aby utworzyć 100% klon mojego Raspberry Pi i po prostu wdrożyć go na innym Raspberry Pi? Mam więc dwie identyczne kopie ... A może to klonowanie karty SD za pomocą wbudowanego polecenia dd ?

Powodem, dla którego pytam, jest to, że mam Raspberry Pi w pełni skonfigurowany z Apache , PHP i kilkoma innymi bibliotekami, a teraz chcę tylko inny klon z dokładnie tymi samymi konfiguracjami itp.

Czy to możliwe, czy odpowiedziałem na własne pytanie?

naboovalley
źródło
Dziwię się, że jak dotąd nie wspomniano o piklonie. Dla mnie to najprostszy sposób klonowania karty SD na RPI i nigdy nie miałem z nią problemów. Wcześniej odpowiedziałem na to pytanie, więc oto link do odpowiedzi z kilkoma szczegółami: raspberrypi.stackexchange.com/questions/66824/… Mam nadzieję, że to pomaga.
LecauseAndThePi
Nigdzie nie mogłem znaleźć pobrania Piclone
Elia Weiss,
Nie chcesz go pobierać, już tam jest. Wystarczy wpisać piklon w terminalu, a uruchomi się GUI.
LecauseAndThePi

Odpowiedzi:

9

@naboovalley:

Załóżmy następujący scenariusz:

  • Na swoim Raspberry Pi przejdź do terminala, a następnie przejdź do katalogu / dev. Powinieneś zobaczyć, między innymi, mmcblk0, mmcblk0p1 i mmcblk0p2.
  • mmcblk0 jest „nagim” urządzeniem karty SD, podczas gdy mmcblk0p1 jest pierwszą partycją tej karty SD zawierającej obraz jądra i tak dalej, a mmcblk0p2 jest drugą partycją tej karty SD zawierającej główny system plików.
  • Zamknij Raspberry Pi w przyzwoity sposób (wpisz polecenie „zamknij”, prawdopodobnie jako root)
  • Umieść kartę SD w innym komputerze z systemem Linux. Zwykle wyżej wymienione katalogi powinny być automatycznie montowane na / media / i powinny tam być 2 podkatalogi (jeden dla partycji 1 karty SD, jeden dla partycji 2 karty SD)
  • Utworzyłeś katalog tymczasowy, aby skopiować zawartość karty SD. Mówić:~/tmp
  • Znajdujesz się w ~/tmp

Możesz teraz skopiować zawartość pierwszej partycji oryginalnej oryginalnej karty SD, wydając następujące polecenie rsync:

rsync -avn /media/<user>/<partition1> .

Czy nie umieścić /na końcu! Powyższe polecenie „uruchomi się na sucho”, co oznacza, że ​​pokaże ci, co ostatecznie zrobi, ale nie wykona go naprawdę.

Aby wykonać na prawdę (po potwierdzeniu, że sucha próba robi to, co powinna), możesz usunąć npowyższe polecenie (tak więc rsync -av /media/<user>/<partition1> .).

Użyj tego samego polecenia dla drugiej partycji.

Teraz powinieneś mieć dokładną kopię oryginalnej karty SD na komputerze z systemem Linux.

Wyjmij oryginalną kartę SD, włóż inną - prawidłowo sformatowaną - kartę SD do komputera z systemem Linux i wykonaj następującą komendę rsync:

rsync -avn <partition1> /media/<user>

Jest to kolejny suchy test, który powinien pokazać, że zawartość <partition1>w /media/<user>zostanie skopiowana na kartę SD.

Po potwierdził wszystko jest w porządku, można ponownie usunąć nz rsynckomendy.

Zrób to samo dla drugiej partycji.

Powinno to dać dokładną kopię oryginalnej karty SD na drugiej karcie SD.

Uwaga: sprawdziłem je wszystkie na maszynie Lubuntu. Katalogi i nazwy mogą się różnić w innych dystrybucjach Linuksa.

Zauważ też, że elementy pomiędzy < >są symbolami zastępczymi i musisz sam przekonać się, jak pasują do twojego środowiska.

GeertVc
źródło
Doskonały. Dziękuję Ci! Czy kopia „dd” zrobi to samo, co opisujesz, czy też rsync lepiej zrobi pełną kopię systemową tak, jak chcę?
naboovalley
Nie mam dd
dużego
Nie rozumiem do końca tej części, w której mówisz „- poprawnie sformatowana - karta SD”. Czy musimy wstępnie sformatować kartę SD z odpowiednio dobranymi partycjami fat32 i ext4? Dziękuję
Romain Vincent
7

Tak, możesz użyć ddlub Win32 Disk Imager w systemie Windows, aby wykonać dokładny obraz z jednej karty na drugą. Jednak karta docelowa będzie musiała mieć taki sam rozmiar lub większy, aby było to praktyczne.

Możesz także po prostu skopiować wszystkie pliki ze źródłowego systemu plików do docelowego systemu plików. Oznacza to, że podłącz docelową kartę do czytnika kart USB i włóż ją do źródłowego Raspberry Pi. Następnie włącz SSH i wydaj odpowiednie polecenia kopiowania.

Należy również pamiętać, że kupiłeś klucze licencyjne do sprzętowego dekodowania MPEG-2 lub VC-1 . Są one powiązane z twoim sprzętem, więc musisz upewnić się, że edytujesz /boot/config.txt na kopii.

mnie--
źródło
Czy na karcie SD są przechowywane wszystkie pliki systemowe i zainstalowane biblioteki? Nie będę musiał uruchamiać żadnych poleceń instalacyjnych podczas podłączania sklonowanej kopii karty SD do R-Pi # 2?
naboovalley
2
Może to również powodować problemy z kluczami SSH i adresami IP.
Steve Robillard,
Więc na R-Pi # 2 może się wydawać, że adres IP jest taki sam jak R-Pi # 1? Zgaduję, że mogę to po prostu odświeżyć, aby uzyskać nowy adres IP sieci?
naboovalley
Jeśli używasz DHCP, RPi automatycznie otrzyma nowy adres IP podczas rozruchu, ale powinieneś zmienić nazwę hosta, jeśli planujesz używać obu w tej samej podsieci. Jeśli używasz stałego adresu IP, powinieneś zmienić zarówno adres IP, jak i nazwę hosta
Roberto
Jeśli spojrzę na mój system plików („df”), mam coś o nazwie „rootfs” 2.1 GB i / dev / root 2.1GB - moja karta SD / dev / mmcblk0 zajmuje tylko 10 MB. Więc kiedy skopiuję „mmcblk0”, cały mój system zostanie włączony? Dzięki chłopaki
naboovalley
6

Możesz po prostu skopiować za pomocą dd jak @ me-- sugeruje, ale to nie wszystko, co musisz zrobić, gdy klonujesz system. Istnieją pewne unikalne identyfikatory systemu, które również powinny zostać zmienione.

Hasła należy zresetować, aby użyć nowej soli. Dzięki temu ludzie nie będą wiedzieć, że dwukrotnie użyłeś tego samego hasła. Uruchom passwdpolecenie zarówno jako użytkownik (zwykle pi ), jak i root.

Jeśli używasz SSH, klucze SSH powinny zostać ponownie wygenerowane. Jest to ważne na przykład, aby upewnić się, że jeśli ktoś ukradnie jedno Raspberry Pi, nie będzie w stanie odszyfrować komunikacji z drugim. Po prostu uruchom to polecenie:

sudo rm /etc/ssh/ssh_host_*

Co najważniejsze, musisz zmienić nazwę hosta. Jeśli jest ustawiony domyślnie, jest to raspberrypi . Jeśli jesteś podobny do mnie, przesyłam wiadomość do nazwy hosta Raspberry Pi, więc robię to ssh raspberrypi. Posiadanie dwóch „raspberrypisów” w sieci powoduje, że przestają one działać, więc na przykład drugi powinien zostać przemianowany na rasberrypi2 . Możesz wprowadzić tę zmianę sudo raspi-config, wybierając Advanced Options, a następnie wybierając Hostname.

Fred
źródło
raspi-confignie jest dostępny dla Raspbmc . Być może należy opisać ręczny sposób ustawiania nazwy hosta?
Peter Mortensen
W celach informacyjnych raspberrypi.stackexchange.com/questions/3926/… obejmuje zmianę nazwy hosta w Raspbmc.
Fred
4

Klonowanie karty micro SD w celu wykonania kopii zapasowej lub przeniesienia systemu do innego RPi3 jest wbudowane jako akcesorium, przynajmniej w wersji systemu operacyjnego, którą dostałem na starcie SD NOOBS:

  • Idź do akcesoriów;
  • Hit Copy SD ;
  • Umieść pustą kartę micro SD w uchwycie USB;
  • Umieść uchwyt w otwartym gnieździe USB;
  • Wybierz nowy SD;
  • Hit kopię.
w8mqw
źródło
To powinna być poprawna odpowiedź. Tak łatwo.
Jordania
1

Możesz to zrobić za pomocą Raspberry Pi i nowej karty SD Motto podłączonej przez USB. Najnowsza wersja oprogramowania Raspberry Pi ma wbudowane oprogramowanie o nazwie SD cardcopier pod akcesoriami, które właśnie to robi.

Wybierz oryginalną kartę (czyli kartę, z której uruchamiasz się) jako Źródło, a nową sformatowaną pustą kartę (podłączoną przez czytnik kart do USB na pi) jako Miejsce docelowe. Całkiem prosty interfejs użytkownika i zadziałało dla mnie po raz pierwszy. Opcja wiersza poleceń na Macu z użyciem dd jakoś skończyła się z problemem paniki jądra.

sijones
źródło
0

Jest to bardzo bezpieczne i niezawodne narzędzie do kopiowania rzeczy takich jak root systemy plików (ze względu na łącza znajdujące się w głównym systemie plików) rsync. To narzędzie weźmie pod uwagę wszystkie niezbędne rzeczy, takie jak znaczniki czasu, linki, uprawnienia, ... Idealnie nadaje się do kopiowania rzeczy takich, jak chcesz.

GeertVc
źródło
Ale nadal kopiuję tylko zawartość karty SD dla pełnego duplikatu systemu - czy muszę podać coś innego? Dzięki
naboovalley,
Zobacz nową odpowiedź, którą opublikowałem poniżej.
GeertVc