Riassunto
Si vuole creare l’immagine di backup della SD card. Il risultato è un file che ha le stesse dimensioni della scheda di memoria benchè la maggior parte dello spazio di memoria non venga utilizzato.
La soluzione è ridurre la partizione per ridurre la dimensione dell’immagine.
Il file immagine che ne risulta è notevolmente più piccolo con una consistente ottimizzazione in termini di spazio di memoria occupato.
Introduzione
Il problema è arcinoto : avete bisogno di creare un’immagine della memory card del vostro Raspberry magari per farne un altro di uguale oppure solo per avere un backup casomai la memoria si dovesse corrompere, e nel contempo vorreste ridurre la dimensione dell’immagine il più possibile.
L’operazione è abbastanza semplice, da Windows con il programma Win32DiskImager vi create il file .img che è la copia esatta della scheda, ve lo salvate da qualche parte e nel momento in cui ne avete bisogno con lo stesso programma potete flashare una nuova scheda e avere l’esatta copia del vostro sistema.
Allora qual è il problema ?
Il sistema operativo Raspbian, più qualche software che potete avere installato a contorno, in genere non supera i pochi GB. Supponiamo che lo abbiate installato in una SD card da 16GB occupandone inizialmente solo 4GB e poi avete deciso di estendere la partizione a tutto lo spazio disponibile (il che peraltro è anche una scelta logica per sfruttare tutto lo spazio della vostra scheda), a questo punto se dovete crearvi l’immagine di backup avrete un file da 16GB vale a dire la dimensione dell’intera partizione cioè dell’intera SD card.
Per le operazioni di backup sarebbe utile ridurre la dimensione dell’immagine il più possibile. In questo modo avrete almeno due vantaggi :
- Lo spazio di storage della vostra copia di backup è ridotto al minimo indispensabile;
- Potete flashare una card di qualsiasi dimensione puché superiore alla dimensione del vostro file immagine;
- Inoltre dovete considerare che non tutte le SD card sono uguali, pertanto anche se la vostra intenzione è quella di utilizzare una SD card delle stesse dimensioni di quella originale (mettiamo 16GB) potreste avere lo stesso problemi di spazio perché anche se sulla confezione riportano 16GB potrebbero essere di qualche byte in meno e quindi risultare troppo piccola il che comprometterebbe l’operazione di scrittura;
La soluzione : ridurre la partizione
A questo punto la soluzione è evidente. Va ridotta la partizione della SD card che volete backuppare allo stretto indispensabile e di questa vi create il file immagine .img che avrà quindi la dimensione minima per contenere solo le informazioni che servono e non lo spazio vuoto.
PROCEDURA PER RIDURRE LA DIMENSIONE DELL’IMMAGINE DEL SISTEMA OPERATIVO
Procedura testata e funzionante con sistema operativo Windows.
Materiale e software necessario
- La memoria SD card originale, contenente il sistema operativo del vostro Raspberry, della quale volete ridurre lo spazio occupato;
- Il software VMWare Workstation Player. Si tratta di un programma che consente di eseguire un sistema operativo nel vostro PC in un ambiente virtuale. L’ultima versione è disponibile a questo link, se nel frattempo dovesse essere cambiato la trovate facilmente con qualsiasi motore di ricerca digitando VMWare Workstation Player
- L’immagine bootabile del software GParted, che si trova qui. Se non la trovate cercate GParted live iso. Salvatevi il file .iso nel vostro hard disk;
1.Installate WMWare
Installate il software VMWare Workstation Player scaricato precedentemente
Lasciate le impostazioni di default e procedete con l’installazione.
Terminata l’installazione doppio click sull’icona VMWareWorkstation Player che è comparsa nel desktop per eseguire il programma.
2. Creazione di una macchina virtuale
Alla finestra Welcome premere Create New Virtual Machine
Selezionare GPartedLiveImage.img il file scaricato precedentemente
Premere Next
Come guest operating system selezionare Linux e quindi come version Other Linux 2.4.x kernel 64-bit
Proseguire lasciando come Virtual Machine Name quello proposto
Alla finestra Specify Disk Capacity mettere 1GB e “Store Virtual Disk as a single file” quindi premere Next e finish
3. Eseguire la Virtual Machine creata al punto 2
Selezionare la VM comparsa e premere Play per farla partire
Una volta comparso il menu di GParted, selezionare la prima opzione : GParted Live (Default settings)
Alla schermata con sfondo blu nella quale chiede “Select Keymap” potete selezionare la prima opzione “Select keymap from arch list” ed impostare la tastiera italiana
Selezionare poi 0 per continuare.
4. Eseguire GParted
Selezionare l’icona GParted e lanciare il programma (click una volta su GParted, ci mette qualche secondo per aprirsi)
Inserire la chiavetta USB con la card (oppure inserire la card nel lettore) e quindi connetterla alla VM
Sarà visualizzata in alto a dx tra i dispositivi connessi
Chiudere GParted e riaprirlo
Il device connesso è ora selezionabile in GParted.
Selezionarlo e comparirà la su attuale partizione.
Dalla grafica è evidente che si tratta di una SD Card da 32GB di cui solo una minima parte utilizzato, più precisamente :
- 4MB non allocati;
- 256MB per la partizione di boot;
- Circa 29GB di cui solo 6GB (la parte in giallo) è utilizzata mentre la stragrande maggioranza cioè quasi 23GB sono liberi;
Se dovessimo creare un backup di questa scheda avremmo un file immagine da 32GB di cui 23 vuoti. Uno spreco inutile di spazio di archiviazione.
Quello che faremo sarà ridurre la partizione da 28,87GB in modo da includere solo la parte con i dati (quella in giallo) più qualcosina di margine.
5. Riduzione della partizione
Selezionare la partizione maggiore (nell’esempio sopra quella da 28,87GB ma nel vostro caso potrebbe essere di dimensione diversa) e premere Resize/Move (Ridimensiona/Sposta)
Trascinare la cornice blu per ridurre la partizione, è importante lasciare una porzione libera e non ridurla completamente fino alla parte in giallo.
Premere quindi Ridimensione/Sposta (Resize/Move).
Premere la spunta verde (Apply) e lasciare che completi la partizione.
Avete finito con la riduzione della partizione. Ora si può procedere con il backup.
PROCEDURA PER L’ESECUZIONE DEL BACKUP DELLA SD CARD CONTENENTE IL SISTEMA OPERATIVO
Una volta ridotta la partizione che occupava tutto lo spazio senza contenere dati utili, siamo molto vicini al nostro obiettivo che, ricordiamo, è quello di ridurre ll dimensione dell’immagine. Procediamo allora con il backup.
Uscire dalla VM e aprire Win32DiskImager in Windows.
Selezionare a destra la USB contenente il sistema operativo appena ripartizionato mentre nella selezione centrale la posizione dove salvare l’immagine e il nome da dargli (aggiungere l’estensione .img).
IMPORTANTE : mettere la spunta su Read Only Allocated Partitions (in italiano tradotto male in Partizioni Allocate Sola Lettura). In questo modo andrà a leggere dalla SD card e a scrivere sul file .img solo le partizioni che sono state allocate.
Nell’esempio qui sopra il disco D: corrisponde alla chiavetta USB con la SD Card contenente il sistema operativo di cui vogliamo creare l’immagine di backup. Immagine che sarà salvata nel disco E: con il nome MarsRoverPCTO_2023.img
Ovviamente nel vostro caso posizioni di lettura e salvataggio nonché i nomi da dare ai file saranno diversi.
Premete Leggi e attendete il completamento dell’operazione.
Una volta finito andate a verificare la dimensione del file immagine .img creato. Sarà notevolmente inferiore rispetto alla dimensione dell’intera SD Card. Potrete quindi archiviarvelo con un notevole risparmio di spazio. L’obiettivo di ridurre la dimensione dell’immagine è stato raggiunto.
Welcome !!!