====== Clonazione di una SD ====== ===== 1. Sistema Linux ===== ==== 1.1. Clonazione di una SD card ==== Inserire la sd card da duplicare nel lettore; per verificare il punto di mount digitare df Si otterrà un output di questo tipo: File system 1K-blocchi Usati Disponib. Uso% Montato su udev 1992488 0 1992488 0% /dev tmpfs 401748 6540 395208 2% /run /dev/sda5 251850480 82431076 156603024 35% / tmpfs 2008720 48828 1959892 3% /dev/shm tmpfs 5120 4 5116 1% /run/lock tmpfs 2008720 0 2008720 0% /sys/fs/cgroup tmpfs 401748 56 401692 1% /run/user/1000 /dev/sdb1 61384 20288 41096 34% /media/walter/boot /dev/sdb2 7549084 1874572 5340012 26% /media/walter/c7f58a52-6b71-4cea-9338-65f3b8af27bf In questo caso i punti di mount sono **/dev/sdb1** e **/dev/sdb2** (in quanto la scheda del raspberry è divisa in due partizioni).\\ Per creare il file immagine "1:1" (si copia l'intera struttura di tutte partizioni byte per byte) digitare: sudo dd bs=1024 if=/dev/sdb of=/home/$USER/Scrivania/sdclone.img sync Il comando "dd" non da output a video, quindi, dopo aver lanciato il comando e inserito la password il cursore si fermerà, attendere fino a quando tornerà il prompt dei comandi (ci vorrà un bel po di tempo in funzione di quanto grande è la partizione) Inserire la nuova scheda e clonare l'immagine salvata (ricordandosi di smontare tutte le partizioni della scheda, se presenti): umount /dev/sdb1 umount /dev/sdb2 sudo dd bs=1024 if=/home/$USER/Scrivania/sdclone.img of=/dev/sdb sync L'operazione non genera alcun output fino alla conclusione dell'operazione, che può richiedere molto tempo a seconda delle dimensioni dell'immagine.\\ Il comando **sync** termina la scrittura dei dati bufferizzati, per effettuare l'espulsione della scheda in sicurezza. ==== 1.2 Clonazione con schede SD di capacità differenti ==== Schede di marche diverse, anche se della stessa dimensione nominale, in realtà possono avere dimensioni differenti: una sd card da 4GB potrebbe contenere contiene 3.74GB reali, mentre una sd card di marca diversa ne potrebbe contiene solo 3.64GB.\\ Un tentativo di clonare la prima sulla seconda porta inevitabilmente ad un errore di "Spazio insufficiente. Per baipassare il problema è possibile usare il parametro **count** per limitare la clonazione ad una determinata dimensione: sudo dd bs=1024 if=/dev/sdb of=/home/$USER/Scrivania/sdclone.img count=2500000 In questo esempio, indipendentemente dalle dimensioni della scheda verranno clonati i primi 1024×2500000 byte (circa 2.56GB); l'immagine così creata è normalmente clonabile su un'altra scheda da 4GB.\\ Questa procedura è utile anche se, ad esempio, la dimensione di una partizione è inferiore alla dimensione totale della scheda (es. se su 8gb esistono due partizioni da 2,4GB può essere inutile clonare lo spazio non utilizzato).\\ Attenzione: Verificare bene il volume dei dati sulla scheda da clonare e aggiungete ad essi 2-300MB di spazio vuoto per poter lavorare un minimo sulla nuova SD e poterla espandere al più presto Inserire la nuova scheda e clonare l'immagine salvata (ricordandosi di smontare tutte le partizioni della scheda, se presenti): umount /dev/sdb1 umount /dev/sdb2 sudo dd bs=1024 if=/home/$USER/Scrivania/sdclone.img of=/dev/sdb sync ==== 1.3. Clonazione delle sole partizioni ==== In questo caso sarà necessario partizionare manualmente la scheda di destinazione usando **Gparted,** creando una partizione di avvio di circa 60mb (in fat32) e una partizione di sistema (in fat ext4) nello spazio rimanente. Inserire poi la scheda di origine e creare un'immagine della partizione di avvio: sudo dd bs=1024 if=/dev/sdb1 of=/home/$USER/Scrivania/partizionedos.img sync Inserire la scheda di destinazione e clonare l'immagine: umount /dev/sdb1 sudo dd bs=1024 if=/home/$USER/Scrivania/partizionedos.img of=/dev/sdb1 sync Si noti che in questo caso non cloneremo l'intera scheda (**/dev/sdb**) ma appunto la sola prima partizione (**/dev/sdb1**). Passiamo ora a copiare manualmente il contenuto della seconda partizione (quella di sistema) nel nostro hard disk; inseriamo la scheda di origine: mkdir /home/$USER/temp cp -auv /dev/sdb2/* /home/$USER/temp Dove /dev/sdb2 è il punto di montaggio della scheda, evidenziato dal comando **df**.\\ Il comando cp -auv copierà tutto il contenuto mantenendo i permessi dei file e delle directory.\\ Inserire ora la scheda di destinazione ed eseguire l'operazione inversa: cp -auv /home/$USER/temp/* /dev/sdb2 Il sistema è trasferito! Ora sarà possibile eliminare la directory **/home/user/temporanea**. ===== 2. Sistemi Windows ===== ==== 2.1. Clonazione di una SD card ==== Si utilizza Win32diskimager ( [[http://sourceforge.net/projects/win32diskimager/|link]] ) procedendo come segue: - Utilizzare solamente un'altra SD "uguale" o piu' capiente di quella da clonare. - Inserire la scheda SD da clonare nel lettore di schede e avviare il programma - Nella finestra principale nella prima riga “Image File” digitare il nomefile con percorso completo ed estensione (tipo: C:\archivio\bak_RPi_02-2016.img) - Spuntare il check box “MD5 Hash” serve per la verifica che il file sia letto e/o scritto correttamente - Premere il tasto con la scritta "Read", verrà creata l'immagine della SD da clonare con il nome .img che si e' scelto. Al termine della copia un messaggio avvertirà della avvenuta creazione. - Inserire la SD vuota nel lettore e premere solamente il tasto "Write". La barra di progressione darà la percentuale del lavoro di scrittura e al termine, un altro messaggio ci avvertirà dell'avvenuta scrittura. (NB: questo punto può essere fatto in un qualsiasi momento) Attenzione con Win32diskimager non è possibile clonare un SD su una di pari dimensione o di dimensioni maggiori ma non è possibile la copia su una di dimensionone più piccola, per questi casi bisogna ricorrere a Linux