Strumenti Utente

Strumenti Sito


clonazione_sd

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 ( link ) procedendo come segue:

  1. Utilizzare solamente un'altra SD “uguale” o piu' capiente di quella da clonare.
  2. Inserire la scheda SD da clonare nel lettore di schede e avviare il programma
  3. Nella finestra principale nella prima riga “Image File” digitare il nomefile con percorso completo ed estensione (tipo: C:\archivio\bak_RPi_02-2016.img)
  4. Spuntare il check box “MD5 Hash” serve per la verifica che il file sia letto e/o scritto correttamente
  5. 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.
  6. 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

clonazione_sd.txt · Ultima modifica: 2023/09/02 09:40 da 127.0.0.1