Raspberry Pi backup veloce sd card

 

Raspberry Pi backup veloce sd card

Raspberry Pi backup veloce sd card

 

Guida su come ottenere un backup veloce e funzionante del proprio sistema. Per chi utilizza un Raspberry Pi, con tutto il sistema installato su sd card, è buona regola avere un backup completo, per poter ovviare velocemente ad una ipotetica perdita/rottura dei dati sulla sd card. A difesa delle sd card, io posso tetimoniare, essendo possessore di tanti Raspberry Pi, fin da  maggio 2012, che se si acquistano le migliori, difficilmente si rompono. Io per i vari utilizzi, ho speso di più per la sd card che per il Raspberry Pi. I metodi di backup a cui io mi riferisco utilizzano i comandi dd e rsync.  Il classico metodo più utilizzato e sicuro è il seguente:

 

Metodo 1)

Estrarre dal Raspberry Pi la sd card di origine e creare un file img

sudo dd bs=4M if=/dev/sdx of=PiOS.img

Ripristinare su sd card di backup:

sudo dd bs=4M if=PiOS.img of=/dev/sdx

Con il metodo sopra i tempi sono più lunghi, poichè dd, clona tutto. Esistono altri metodi simili, aggiungendo la compressione, ma a me non soddisfano.

 

Metodo 2)

Questo metodo è quello che utilizzo io, e può essere eseguito sia a caldo, sia estraendo la sd card clonandola. Per questo metodo si utilizza dd, solo per quanto riguarda le tabelle delle partizioni, e la partizione di boot, tutto il resto lo farà rsync copiando velocemente il contenuto della rootfs.

Inserire su pc la  sd card da cui effettuare il backup e raccogliere informazioni:

sudo fdisk -l

 

Raspberry Pi backup veloce sd card

 

 

esistono 2 partizioni, nel mio caso, /dev/sdc1 di boot ed /dev/sdc2 rootfs. Bisogna prendere nota delle 2 voci start, 8192 e 534528, cosicchè da creare una identica tabella delle partizioni, contenendo tutti i files di boot:

sudo dd bs=4k count=$((8192/8)) if=/dev/sdc | gzip >boot-img.gz
sudo dd bs=4k count=$((534528/8)) if=/dev/sdc | gzip >rootfs-img.gz

Adesso dobbiamo copiare in una cartella il contenuto di /dev/sdc2 utilizzando rsync:

sudo apt install rsync
sudo mkdir /mnt/{dati,rootfs}
sudo mount /dev/sdc2 /mnt/dati/
sudo rsync -aHAXSP /mnt/dati/ /mnt/rootfs/
sudo umount /dev/sdc2

Basta. Finito. Tempo totale meno di 3 minuti:

 

Raspberry Pi backup veloce sd card

 

Inserire la sd card di backup:

Azzerare tabella partizioni:

sudo dd count=1 bs=512 if=/dev/zero of=/dev/sdc

creazione della tabella delle partizione come da sd card origine:

sudo zcat boot-img.gz | sudo dd bs=4k iflag=fullblock of=/dev/sdc
sudo partprobe /dev/sdc
sudo zcat rootfs-img.gz | sudo dd bs=4k iflag=fullblock of=/dev/sdc
sudo partprobe /dev/sdc

formattare la seconda partizione in ext4:

sudo mkfs.ext4 -L rootfs /dev/sdc2

mount e copia :

sudo mount /dev/sdc2 /mnt/dati/
sudo rsync -aHAXSP /mnt/rootfs/ /mnt/dati/

umount ed attendere, può volerci qualche minuto:

sudo umount /dev/sdc2

 

Tempo totale 15 minuti circa. A questo punto se tutto è andato bene, abbiamo una copia perfetta della sd card di origine. Questo metodo funziona anche in presenza di database.

Raspberry Pi backup veloce sd card

 

enjoy 😉

 

Creare una usb bootable Win10 da Debian 9

 

Creare una usb bootable Win10 da Debian 9

Creare una usb bootable Win10 da Debian 9

Per creare una usb bootable di Windows 10 non bisogna necessariamente ricorrere a programmi Windows, come Rufus o lo strumento che mette a disposizione Microsoft, ma bensì direttamente da ogni distibuzione Gnu-Linux. Gli strumenti che io utilizzo sono: dd, parted, p7zip-full. Ad ogni modo la chiavetta usb si può preparare in modo grafico utilizzando gparted.

# apt install parted p7zip-full

Identificare la chiavetta usb:

# fdisk -l

nel mio caso /dev/sdc di 16G

Formattazione:

# dd count=1 bs=512 if=/dev/zero of=/dev/sdc

 
Creazione tabella delle partizioni più 1 partizione in fat32:

# parted /dev/sdc
(parted) mklabel msdos                                          
(parted) mkpart primary fat32 1 16G                                 
(parted) set 1 boot on                                                   
(parted) q
# mkfs.fat -n win10 /dev/sdc1
# mount /dev/sdc1 /mnt
# cd /mnt/
# 7z x /percorso_win_iso_scaricata/windows10.iso
# cd ..
# umount /dev/sdc1

Creare una usb bootable Win10 da Debian 9

adesso la nostra usb con windows 10 è pronta per essere testata.

enjoy 😉

 

Creare una Debian Jessie Live persistente con firmware non-free

 

Creare una Debian Jessie Live persistente con firmware non-free

 

Guida su come creare una Debian Jessie Live persistente con firmware non-free, alla Debian way. Possedere una chiavetta usb con la propria distribuzione preferita può ritornare utile, sia come OS di riserva, live o installabile, sia come strumento di lavoro. Per avere un buon strumento di lavoro, bisogna però avere tutti i propri programmi preferiti, e per ottenere ciò bisogna creare una Debian Live in modalità persistente. Con la modalità persistente, si può installare tutto quello che serve e portarsi dietro i documenti preferiti,  ed addirittura la distribuzione può essere aggiornata, senza paura che al riavvio le modifiche vadano perse. Quello che serve come prima cosa è scaricare la Debian Live iso-hybrid, scegliendo anche il proprio Desktop Environment, ed alcuni pacchetti:

 

# apt-get install mbr syslinux p7zip

 

la mia chiavetta di 8G viene identificata come /dev/sdb, quindi la guida utilizzerà questa sintassi:

Inserire la chiavetta usb e verificare come viene identificata, la mia come /dev/sdb con 2 partizioni:

# fdisk -l
# umount /dev/sdb1
# umount /dev/sdb2

 

Formattazione:

# dd count=1 bs=512 if=/dev/zero of=/dev/sdb

 

Creazione tabella delle partizioni e di 2 partizioni, una in fat32 l'altra in ext4:

# parted /dev/sdb
(parted) mklabel msdos                                          
(parted) mkpart primary fat32 1 1536M                                  
(parted) mkpart primary ext4 1536 8G
(parted) set 1 boot on                                                   
(parted) q

 

Creazione filesystem:

# /sbin/mkdosfs -n live /dev/sdb1
# /sbin/mkfs.ext4 -L persistence /dev/sdb2
# mkdir /mnt/live
# mkdir /mnt/persistence
# mount /dev/sdb1 /mnt/live
# mount /dev/sdb2 /mnt/persistence
# cd /mnt/live
# 7z x /percorso_iso_scariicata/debian-live-8.2.0-amd64-mate-desktop+nonfree.iso

 

Modificare il file live.cfg inserendo le opzioni persistence e noeject:

# nano isolinux/live.cfg

dove la prima parte deve essere come sotto:

label live-amd64
        menu label ^Live (amd64)
        menu default
        linux /live/vmlinuz
        initrd /live/initrd.img
        append boot=live components persistence noeject quiet splash

 

Creazione del dispositivo usb bootable e della seconda partizione persistente:

# /sbin/install-mbr /dev/sdb
# syslinux -i /dev/sdb1
# mv isolinux syslinux
# mv syslinux/isolinux.cfg syslinux/syslinux.cfg
# mv syslinux/isolinux.bin syslinux/syslinux.bin
# cd /mnt/persistence
# echo / union > persistence.conf
# cd ..
# umount /mnt/live
# umount /mnt/persistence

A questo punto si può riavviare e provare la Debian Jessie Live persistente con firmware non-free. La prima cosa da fare volendo è quella di aggiornare il sistema per poi installare i propri programmi preferiti:

# apt-get update && apt-get upgrade -y

Utente e password di default sono: username=user password=live

 

enjoy 😉

 

Visualizzare il progress di dd

 

Quando si usa dd per copiare un file o cancellare un disco, non si è a conoscenza fino a che punto si trovi, e quindi quanto rimanga alla fine del lavoro. Per ovviare a questo, e quindi mostrare qualcosa che ne indichi il progresso, esistono due modi:

 

# apt-get install dcfldd

 

quindi:

 

$ dcfldd if=/dev/zero of=/dev/null

 

oppure:

 

$ dd if=/dev/zero | pv | dd of=/dev/null

 

enjoy 😉

Eliminare permanentemente tutti i dati di un disco

 

 

 

Negli ultimi periodi capita di avere chiavette usb o hard disk in abbondanza, e quindi di non riuscire più ad utilizzarli. Può capitare di regalare o vendere queste unità disco, e per una questione di sicurezza, sarebbe meglio fare in modo che nessuno si diverta a recuperare qualche dato personale. E' stato dimostrato che più del 30% dei pc connessi ad internet quotidianamente, naviga su siti porno, salvando foto e video zozzi, come fa Picchiopc. Quindi l'obiettivo è quello di rendere la vita difficile a chi vuole sbirciare nelle abitudini altrui 🙂 Una volta identificato il disco da formattare, il comando è semplice:

 

$ sudo dd if=/dev/zero of=/dev/sdX

 

 

enjoy 😉

USB 3.0 e Linux una scheggia

 

Oggi sono andato alla fiera dell'elettronica di Busto Arsizio (VA), per curiosare e vedere se ci fossero delle novità o qualcosa che attirasse la mia attenzione. Io queste fiere le seguo sempre, di solito frequento anche quelle di Erba (CO) Novegro (MI) e Cremona. Comunque curiosando di quà e di là ho acquistato qualcosa, alla fine me la sono cavata fortunatamente con una spesa di circa 120€ in totale. Il pezzo pregiato dei miei acquisti è stata una pen drive da 16g con standard USB 3.0 al prezzo di 39€, mentre quella USB 2.0 costava 26€. Una volta arrivato a casa mi sono messo subito a testarla, ed a questo proposito, bisogna ricordare che Linux per primo ha il supporto nativo per questo standard, fin dal kernel 2.6.31. Comunque per far capire la velocità di questo standard ho fatto una prova sul mio pc che ha come hub:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Per prima cosa ho formattato la pen drive con dd, dato che gparted non riusciva a formattarla:

$ dd if=/dev/zero of=/dev/sdX

Test:

copia di un file video di 1g su una pen drive Sony da 2g:

Bus 001 Device 015: ID 054c:0243 Sony Corp. MicroVault Flash Drive

Risultato:

real    5m29.500s
user    0m0.008s
sys    0m2.512s

copia dello stesso file su ADATA Nobility Series N005 USB 3.0:

Bus 001 Device 016: ID 125f:105a A-DATA Technology Co., Ltd.

Risultato:

real    0m42.896s
user    0m0.024s
sys    0m2.740s

il risultato direi che è ottimo…una scheggia 🙂
 

Duplicare chiave usb

 

A volte può essere utile duplicare una chiave usb blocco per blocco, basti pensare ad una chiavetta con dentro una distro live e che vogliamo per vari motivi trasferirla su di un' altra chiavetta. A questo proposito ci viene in aiuto il comando " dd ":

smontare chiave usb:

# sudo umount dev/sdg1

sdg1 si riferisce alla mia chiavetta.

duplicare la chiave in un file:

$ dd if=/dev/sdg1 | gzip -9 | dd of=/home/edmond/Desktop/backup.gz bs=1024k

oppure l'operazione inversa, da un file verso la chiavetta:

$ zcat /home/edmond/Desktop/backup.gz | dd of=/dev/sdg1 bs=1024k

oppure direttamente da chiavetta a chiavetta:

$ dd if=/dev/sdg1 of=/dev/sdh1 bs=1024k

Versione del bios con dd

Per chi volesse conoscere la versione del proprio bios, uno dei metodi consiste nell'utillizzare dd, con la seguente sintassi:

dd if=/dev/mem bs=32k skip=31 count=1 | strings -n 8 | grep -i bios

nel mio caso l'output di questo comando è stato:

debianbox:/home/edmond# dd if=/dev/mem bs=32k skip=31 count=1 | strings -n 8 | grep -i bios1+0 records in
1+0 records out
32768 bytes (33 kB) copied, 0,000523527 s, 62,6 MB/s
_bL2_ $BIOSLOCKFUNCTION ELITEGROUP _O_
$PCCHIPS945P-M3 1.0 $BIOSLOCKFUNCTION
IBM COMPATIBLE 486 BIOS COPYRIGHT Phoenix Technologies, Ltd
Phoenix – AwardBIOS v6.00PG