Scopi della guida:
Concetti affrontati:
|
Componenti software utilizzate:
Prerequisiti:
Dispositivi fisici utilizzati:
|
GUIDA MAGGIORMENTE INDICATA PER: |
|
NOTE E DISCLAIMER
|
|
Revisione guida: 1.3 |
Abstract
Il Raspberry Pi, lo sappiamo, è uno strumento insostituibile: costa poco, consuma pochissima energia elettrica, è estremamente versatile. Tutto quello che serve per chi è appassionato di domotica e non solo.
Raspberry presenta però un piccolo difetto, ovvero la tendenza, nel tempo e a fronte di specifiche condizioni (sbalzi di tensione, per esempio) nel corrompere improvviamente la microSD sul quale giace il sistema operativo, i nostri software e le nostre configurazioni.
Per corrompere intendiamo danneggiare – in modo definitivo o meno – la memoria flash della piccola scheda, rendendola inutilizzabile.
Corrompere la propria microSD significa trovarsi, di colpo, con il Raspberry (e quindi la domotica, se è l’uso che se ne fa) completamente fuori gioco. Tale situazione è solitamente indicata dal seguente messaggio (o similari), al boot:
Kernel Panic : VFS :Unable to mount root fs on unknown-block
Praticamente, un’antipatica sentenza di morte.
Per ovviare a questo problema – a prescindere – si consiglia di installare il sistema operativo su in disco SSD esterno dalle dimensioni limitate (il che garantisce una robustezza e prestazioni maggiori); chi comunque utilizzasse la microSD è bene che impari la tecnica per effettuarne un backup (e un eventuale ripristino).
La presente guida provvede proprio ad illustrare questo.
Indice
Backup
“Non si capisce l’importanza di un backup fino alla prima perdita di dati“.
Si tratta di un adagio tanto banale quanto concreto. Una volta persi i propri dati, per lo più sono persi sul serio, pertanto sarà tardi per piangere sulla microSD corrotta. Sarà per tanto il caso di imparare, prima che si verifichi l’irreparabile, una buona tecnica per effettuare il backup.
Solitamente, nel caso di schede SD (SD, MiniSD, microSD, è la stessa cosa) l’approccio è quello di collegarle a un computer e crearsi un’immagine dello stato della scheda, ovvero un unico file che contenga, bit a bit, il contenuto della scheda. Di fatto non si tratta di copiare i file, ma di copiare letteralmente i blocchi di dati in maniera raw, grezza, per quelli che sono.
È quindi buona regola, di tanto in tanto, spegnere il proprio Raspberry ed effettuare il backup per poi storicizzarlo in un luogo sicuro. Tornerà utile in caso la microSD ci abbandoni di colpo.
Vediamo ora come effettuare un’immagine di backup.
Collegare la microSD al computer
Innanzitutto, spegnere (tramite comando “sudo shutdown now” via SSH, oppure “spegni” da interfaccia grafica – mai disconnettendo l’alimentazione) l’unità Raspberry e sfilare la microSD.
Per collegarla al computer tipicamente viene utlizzato un adattatore. Ne esistono di vari tipi: alcuni permettono di collegarsi direttamente alla porta USB; altri invece “trasfomano” da formato microSD a SD (in questo caso il computer dovrà possedere una porta per l’inserimento di questo formato.
Backup con Windows
Il software (gratuito) più utilizzato per effettuare questo tipo di backup tramite windows è Win32 Disk Imager, la quale funziona con qualsiasi tipo di SD connessa al computer.
Cominciamo con il download di tale software da SourceForge. Il download parte pochi istanti dopo l’apertura della pagina.
Una volta installato, eseguendo il software apparirà una finestra come questa:
Nel percorso “Image File” andremo ad indicare il nome dell’immagine che vogliamo creare, tipicamente usando l’estensione “.img“; nel campo “Device” andremo a scegliere il disco del quale effettuare backup, in questo caso la lettera assegnata alla SD che abbiamo collegato al computer.
Cliccare ora su “Read“.
Al termine, disconnettere la microSD con la solita procedura Windows, come fosse una chiavetta o un disco USB.
Il backup è stato effettuato.
Backup con macOS
Gli utenti Apple hanno già a disposizione un potente strumento di backup, vale a dire il comando “dd“.
Lanciare, innanzitutto, l’applicazione “Terminale“.
Dopo aver connesso l’SD al computer, eseguire il comando:
diskutil list
per elencare e schermo i dischi connessi e riconosciuti dal sistema operativo:
Il disco con una partizione di boot “Windows_FAT_32” e con una partizione “Linux” è tipicamente il disco microSD di cui vogliamo effettuare backup.
Prima di effettuarlo, è necessario “smontare” il disco usando il comando:
diskutil unmountDisk /dev/diskX
dove la X è il numero di disco da smontare (nel caso dell’esempio è il numero 1).
Effettuiamo ora il backup tramite il comando:
sudo dd if=/dev/diskX of=SDCardBackup.dmg
dove la X è, anche in questo caso, il numero di disco da smontare (nel caso dell’esempio è il numero 1).
Tale comando creerà un file immagine chiamato “SDCardBackup.dmg” nella cartella del vostro utente macOS.
La procedura può esser lunga e non dà evidenza di procedere. Lasciate semplicemente lavorare il computer fino al termine del backup.
Infine, smontate nuovamente la microSD, prima di disconnetterla:
diskutil unmountDisk /dev/diskX
Backup con Linux
Gli utenti Linux hanno a disposizione una procedura analoga a quella macOS.
Innanzitutto, prima di connettere la SD eseguire il seguente comando:
df -h
il quale elencherà dischi e partizioni connesse. L’output sarà analogo al seguente:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 29834204 15679020 12892692 55% /
/dev/root 29834204 15679020 12892692 55% /
devtmpfs 437856 0 437856 0% /dev
tmpfs 88432 284 88148 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 176860 0 176860 0% /run/shm
/dev/mmcblk0p1 57288 14752 42536 26% /boot
Connettere ora la microSD ed eseguire nuovamente il comando. L’output sarà analogo al seguente:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 29834204 15679020 12892692 55% /
/dev/root 29834204 15679020 12892692 55% /
devtmpfs 437856 0 437856 0% /dev
tmpfs 88432 284 88148 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 176860 0 176860 0% /run/shm
/dev/mmcblk0p1 57288 14752 42536 26% /boot
/dev/sda5 57288 9920 47368 18% /media/boot
/dev/sda6 6420000 2549088 3526652 42% /media/41cd5baa-7a62-4706-b8e8-02c43ccee8d9
per differenza sarà possibile capire quale sia il dev assegnato alla microSD.
La parte indicata in rosso determina il nome disco (la nostra microSD) mentre il numero alla sua destra determina la/le partizione/i. Dato che vogliamo creare un’immagine completa dell’unità, utilizzeremo solo il nome disco.
Eseguire quindi il comando:
sudo dd if=/dev/sda of=~/SDCardBackup.img
Tale comando creerà un file immagine chiamato “SDCardBackup.dmg” nella cartella del vostro utente macOS.
Restore
Il restore (o ripristino) è la procedura inversa del backup, ovvero ripristinare un’immagine precedentemente creata su una nuova microSD (qualora quella corrotta non funzioni più per guasto).
Ripristino con Windows
Sempre utilizzando l’utility indicata nella procedura di backup (ovvero “Win32 Disk Imager”) potremo ripristinare un’immagine precedentemente creata.
Connettere la microSD al computer e poi eseguire l’applicazione:
Nel capo “Image File” selezionare a questo punto l’immagine da ripristinare precedentemente creata.
Nel campo “Device” selezionare la lettera corrispondente alla microSD connessa al computer.
Cliccare dunque “Write” per avviare il ripristino.
Al termine, disconnettere la microSD con la solita procedura Windows – come fosse una chiavetta o un disco USB.
La microSD contiene ora i dati precedentemente salvati su immagine disco di backup ed è disponibile all’uso.
Ripristino con macOS
Lanciare, innanzitutto, l’applicazione “Terminale“.
Dopo aver connesso l’SD al computer, eseguire il comando:
diskutil list
per elencare e schermo i dischi connessi e riconosciuti dal sistema operativo:
Il disco con una partizione di boot “Windows_FAT_32” e con una partizione “Linux” è tipicamente il disco microSD sul quale ripristinare il backup.
Prima di effettuare tale procesura, è necessario “smontare” il disco usando il comando:
diskutil unmountDisk /dev/diskX
dove la X è il numero di disco da smontare (nel caso dell’esempio è il numero 1).
Effettuiamo ora il restore tramite il comando:
sudo dd if=~/SDCardBackup.dmg of=/dev/diskx
dove la X è il numero di disco da smontare (nel caso dell’esempio è il numero 1) e “~/SDCardBackup.dmg” è il percorso e il nome del file immagine da ripristinare.
La procedura può esser lunga e non dà evidenza di procedere. Lasciate semplicemente lavorare il computer fino al termine del ripristino.
Infine, smontate nuovamente la microSD, prima di disconnetterla:
diskutil unmountDisk /dev/diskX
La vostra microSD è pronta all’uso.
Ripristino con Linux
Innanzitutto, prima di connettere la SD eseguire il seguente comando:
df -h
il quale elencherà dischi e partizioni connesse. L’output sarà analogo al seguente:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 29834204 15679020 12892692 55% /
/dev/root 29834204 15679020 12892692 55% /
devtmpfs 437856 0 437856 0% /dev
tmpfs 88432 284 88148 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 176860 0 176860 0% /run/shm
/dev/mmcblk0p1 57288 14752 42536 26% /boot
Connettere ora la microSD ed eseguire nuovamente il comando. L’output sarà analogo al seguente:
Filesystem 1K-blocks Used Available Use% Mounted on
rootfs 29834204 15679020 12892692 55% /
/dev/root 29834204 15679020 12892692 55% /
devtmpfs 437856 0 437856 0% /dev
tmpfs 88432 284 88148 1% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 176860 0 176860 0% /run/shm
/dev/mmcblk0p1 57288 14752 42536 26% /boot
/dev/sda5 57288 9920 47368 18% /media/boot
/dev/sda6 6420000 2549088 3526652 42% /media/41cd5baa-7a62-4706-b8e8-02c43ccee8d9
per differenza sarà possibile capire quale sia il dev e le partizioni assegnate alla microSD.
La parte indicata in rosso determinano i nomi delle partizioni attribuite alla nostra microSD.
Nell’esempio, sda5 e sda6 sono le due partizioni del disco sda.
Ora, prima di effettuare il ripristino è necessario smontare le due partizioni tramite il comando “unmount”, il quale si applica, nel caso dell’esempio, così:
sudo umount /dev/sda5
sudo umount /dev/sda6
Smontate le partizioni, eseguire il comando:
sudo dd bs=4M if=~/SDCardBackup.img of=/dev/sda
dove la sda è il nome disco sul quale effettuare il ripristino (praticamente, il nome di una partizione, ma senza numero) e “~/SDCardBackup.dmg” è il percorso e il nome del file immagine da ripristinare.
Al termine della procedura, eseguire il comando:
sudo sync
e solo dopo disconnettere la microSD, ora pronta all’uso.
Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Alcuni link sono taggati in qualità di affiliati Amazon e riceviamo un compenso dagli acquisti idonei, utile al sostenimento del sito, ma le nostre recensioni sono tutte indipendenti e non sponsorizzate. Se ti sei perso, a tua disposizione c'è la mappa. |