Posso clonare il mio intero Raspberry Pi per la distribuzione su un altro Raspberry Pi?


12

Non sono sicuro se tutti gli argomenti "come eseguire il backup della scheda SD" siano ciò che sto chiedendo ... ma eccoci qui :)

Esiste un modo per creare un clone al 100% del mio Raspberry Pi e semplicemente distribuirlo su un altro Raspberry Pi? Quindi ho due copie esattamente identiche ... O questo è fatto clonando la scheda SD usando il comando dd incorporato ?

Il motivo per cui mi chiedo è che ho il mio Raspberry Pi completamente configurato con Apache , PHP e alcune altre librerie e ora voglio solo un altro clone con le stesse identiche configurazioni, ecc.

È possibile o ho risposto alla mia domanda?


Sono sorpreso che il piclone non sia stato menzionato finora. Per me questo è il modo più semplice di clonare una scheda SD su un rpi, e nvere ha avuto problemi con esso. Ho già risposto a questa domanda in passato, quindi ecco un link alla risposta con alcuni dettagli: raspberrypi.stackexchange.com/questions/66824/… Spero che questo aiuti.
LecauseAndThePi

Non sono riuscito a trovare il download di piclone da nessuna parte
Elia Weiss,

Non hai intenzione di scaricarlo, è già lì. Digita piclone nel terminale e avvierà la GUI.
LecauseAndThePi

Risposte:


9

@naboovalley:

Supponiamo che il seguente scenario:

  • Sul tuo Raspberry Pi, vai su un terminale e poi vai alla directory / dev. Dovresti vedere, tra gli altri dispositivi, mmcblk0, mmcblk0p1 e mmcblk0p2.
  • mmcblk0 è il dispositivo "nudo" della scheda SD, mentre mmcblk0p1 è la prima partizione di quella scheda SD contenente l'immagine del kernel e così via e mmcblk0p2 è la seconda partizione di quella scheda SD contenente il file system radice.
  • Spegni il tuo Raspberry Pi in modo decente (digita il comando "shutdown", possibilmente come root)
  • Inserisci la scheda SD in un'altra macchina Linux. Normalmente, le directory sopra menzionate dovrebbero essere automaticamente montate su / media / e dovrebbero esserci 2 sottodirectory (una per la partizione 1 della scheda SD, una per la partizione 2 della scheda SD)
  • Hai creato una directory temporanea per copiare il contenuto della tua scheda SD. Dire:~/tmp
  • Ti trovi in ~/tmp

Ora puoi copiare il contenuto della prima partizione della scheda SD originale originale emettendo il seguente comando rsync:

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

Do Non mettere una /alla fine! Il comando precedente eseguirà "dry run", il che significa che ti mostrerà cosa alla fine farà, ma non lo eseguirà per davvero.

Per eseguire per davvero (dopo aver confermato che la corsa a secco sta facendo quello che dovrebbe fare), è possibile rimuovere il ncomando sopra (quindi, rsync -av /media/<user>/<partition1> .).

Utilizzare lo stesso comando per l'altra partizione.

Ora dovresti avere una copia esatta della tua scheda SD originale sul tuo computer Linux.

Rimuovere la scheda SD originale, inserirne un'altra - formattata correttamente - Scheda SD nella macchina Linux ed eseguire il comando rsync seguente:

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

Questa è di nuovo una corsa a secco, che dovrebbe mostrare che il contenuto di <partition1>in /media/<user>verrà copiato sulla scheda SD.

Una volta confermato che tutto va bene, è possibile rimuovere nuovamente ndal rsynccomando.

Fai lo stesso per la seconda partizione.

Questo dovrebbe darti una copia esatta della scheda SD originale sull'altra scheda SD.

Nota: ho controllato tutto ciò su una macchina Lubuntu. Directory e nomi possono variare su altre distro Linux.

Nota anche che gli elementi tra < >sono segnaposto e devi vedere da solo come si abbinano al tuo ambiente.


Perfetto. Grazie! La copia "dd" farà lo stesso che descrivi o rsync sarà molto meglio fare una copia di sistema completa nel modo desiderato?
naboovalley,

Non ho molta esperienza con il ddcomando, quindi non posso dirlo, scusa ...
GeertVc

Non capisco interamente la parte in cui dici "- formattato correttamente - scheda SD". Dobbiamo preformattare la scheda SD con partizioni fat32 ed ext4 di dimensioni adeguate? Grazie
Romain Vincent,

7

Sì, è possibile utilizzare ddo Win32 Disk Imager su Windows per acquisire un'immagine esatta da una scheda all'altra. Tuttavia, la carta di destinazione dovrà essere della stessa dimensione o più grande per renderlo pratico.

Potresti anche semplicemente copiare tutti i file sul tuo file system di origine in un file system di destinazione. Cioè, collega la tua scheda di destinazione a un lettore di schede USB e inseriscila nel tuo Raspberry Pi di origine. Quindi inserire SSH ed emettere i comandi di copia appropriati.

Una cosa da tenere a mente è anche se sono state acquistate chiavi di licenza per la decodifica hardware di MPEG-2 o VC-1 . Questi sono collegati al tuo hardware, quindi dovrai assicurarti di modificare /boot/config.txt sulla tua copia.


Quindi la scheda SD contiene tutti i file specifici del sistema e le librerie installate? Non dovrò eseguire alcun comando di installazione quando inserirò la copia clonata della scheda SD in R-Pi # 2?
naboovalley,

2
Questo può anche presentare problemi con le chiavi SSH e gli indirizzi IP.
Steve Robillard,

Quindi su R-Pi # 2 potrebbe pensare che l'indirizzo IP sia lo stesso di R-Pi # 1? Immagino di poterlo semplicemente aggiornare per ottenere un nuovo IP di rete?
naboovalley,

Se si utilizza DHCP, RPi riceverà automaticamente un nuovo IP all'avvio, ma è necessario modificare il nome host se si prevede di utilizzare entrambi nella stessa sottorete. Se usi un IP fisso, dovresti cambiare sia l'IP che il nome host
Roberto,

Se guardo il mio filesystem ("df") ho qualcosa chiamato "rootfs" 2.1GB e / dev / root 2.1GB - la mia scheda SD / dev / mmcblk0 richiede solo 10M. Quindi quando copio "mmcblk0" il mio intero sistema verrà incluso? Grazie ragazzi
naboovalley,

6

Puoi semplicemente copiare con dd come suggerisce @ me--, ma non è tutto ciò che devi fare durante la clonazione di un sistema. Esistono alcuni identificatori di sistema univoci che dovrebbero essere modificati.

Le password devono essere ripristinate in modo da utilizzare un nuovo salt. Ciò impedisce alle persone di sapere che hai usato la stessa password due volte. Esegui il passwdcomando sia come utente (di solito pi ) sia come root.

Se si utilizza SSH, è necessario rigenerare le chiavi SSH. Questo è importante, ad esempio, per assicurarsi che se qualcuno ruba un Raspberry Pi non può decrittografare le comunicazioni con l'altro. Basta eseguire questo comando:

sudo rm /etc/ssh/ssh_host_*

Infine e, soprattutto, è necessario modificare il nome host. Se è al suo valore predefinito è raspberrypi . Se sei come me, scrivo il nome host del Raspberry Pi, quindi lo faccio ssh raspberrypi. Avere due "raspberrypis" sulla rete fa smettere di funzionare, quindi il secondo dovrebbe essere rinominato in rasberrypi2 per esempio. È possibile apportare questa modifica con sudo raspi-config, selezionando Advanced Optionse quindi selezionando Hostname.


raspi-confignon è disponibile per Raspbmc . Forse dovrebbe essere descritto un modo manuale per impostare il nome host?
Peter Mortensen,


Per riferimento, raspberrypi.stackexchange.com/questions/3926/… copre la modifica del nome host in Raspbmc.
Fred

4

La clonazione di una micro SD per il backup o per spostare il sistema su un altro RPi3 è integrata come accessorio, almeno sulla versione del sistema operativo che ho ottenuto sulla SD di avvio NOOBS:

  • Vai agli accessori;
  • Hit Copia SD ;
  • Posizionare una micro SD vuota in un supporto USB;
  • Posizionare il supporto nello slot USB aperto;
  • Scegli la nuova SD;
  • Hit copia.

Questa dovrebbe essere la risposta corretta. Così facile.
Giordania,

1

Puoi farlo esattamente usando il raspberry pi e una nuova scheda SD motto connessa via USB. L'ultima versione del software Raspberry Pi ha un software integrato chiamato cardcopier SD sotto accessori che fa esattamente questo.

Scegli la tua scheda originale (quindi la scheda da cui stai eseguendo l'avvio) come Sorgente e la nuova scheda vuota formattata (collegata tramite lettore di schede a USB sul PI) come Destinazione. Interfaccia utente piuttosto semplice e ha funzionato per me la prima volta. L'opzione della riga di comando su mac che utilizza dd ha in qualche modo avuto un problema di panico nel kernel.


0

È uno strumento molto sicuro e affidabile per copiare cose come i file system di root (a causa dei collegamenti presenti nel file system di root) rsync. Questo strumento prenderà in considerazione tutte le cose necessarie come timestamp, collegamenti, permessi, ... Perfettamente adatto per copiare cose come vuoi fare.


Ma copio ancora solo il contenuto della scheda SD per il duplicato dell'intero sistema - o devo includere qualcos'altro? Grazie
naboovalley l'

Vedi la nuova risposta che ho pubblicato di seguito.
GeertVc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.