Circa un anno fà il mio amico dottor Zanardi acquistò un prodotto considerato da noi smanettoni attempati come la pietra filosofale dell'homebrew a basso costo. Parlo del Raspberry pi nella sua incarnazione B+, la schedina grande come un pacchetto di sigarette contenente un processore ARM con 512 MByte, 2 prese USB 2.0, una etehernet ed una uscita HDMI.
L'annuncio del nuovo Raspberry pi 2 da 1MByte ed una cpu ARM quadcore con un numero di USB raddoppiato, ha alimentato le mie secrezioni salivari tanto da pensare al suo acquisto quando in Italia scenderà dai prezzi attuali, mediamente più alti vista la novità .
Gentilmente lo stesso Zanardi mi ha prestato il suo precedente gioiello invitandomi alla prova, inizialmente per testare Openelec per il quale forse farò un post dopo averlo sperimentato per bene.
Entrambi sappiamo bene che esistono schedine più potenti a costi mediamente poco più alti, tra questi la scheda Odroid, ma esistono altre made in China più potenti ed anche più fornite dal punto di vista delle periferiche. Ma a noi affascina anche la grande community dietro al progetto anglossassone, inclusi dispositivi hardware da inserire nella GPIO a basso costo.
Al momento a me interessa lo sviluppo software e in particolari delle varie distro linux ottimizzate per questo hardware. La maggior parte dei sistemi vienedistribuito sotto forma di file img, ossia immagini dei dischi con le varie partizioni, da copiare sulla SD Card con dd o programmi Windows come Win32DiskImager.
Questo pone un problema pratico, infatti se l'immagine da trasferire è da 4 GByte e viene usata come target una SD Card da 16 GByte, avrete solo i 4GByte dell'immagine disponibile, perdendo i restanti 12GByte che teoricamente dovreste avere. Avviene per il funzionamento dei programmi simil dd, questi effettuano un trasferimento a blocchi utile quando il sorgente ed il target hanno le stesse dimensioni, pensate ai giurassici floppy disk. L'immagine di una aveva le stesse dimensioni del floppy target e la cosa aveva senso, ma ora la moltitudine di supporti di dimensioni differenti porta a questo problema. D'altronde trasferire un disco in una immagine è molto più semplice col dd, capisco quindi l'uso estensivo di questa utlity.
Ora illustrerò come vedere le partizioni all'interno del file img creato con dd, come montarle e come trasferirle nel target device di maggiori dimensioni:
Vedere le partizioni del file img
In questo esempio proveremo a montare un file img con più partizioni, infatti dobbiamo individuare l'offset delle singole partizioni per montarle una ad una, non potendo effettuare un mount in loop dell'intera immagine a meno che l'immagine non contenga una sola partizione. In questo caso basta il normale mount del file in loop.
da root o con sudo digitate fdisk -ul file.img come nell'immagine
uscite da fdisk digitando q. Volendo controllare il contenuto della seconda partizione dobbiamo annotare la dimensione dei settori ( 512 ) e il blocco da cui parte ( 122880 ). Ora possiamo effetuare il mount indicando l'offset
PS: il mount si può semplificare facendo il calcolo di 512*122880 con bc e passando l'offset diretto in questo modo:
sudo mount -t auto -o loop,users,offset=272629760 file.img /mnt
Trasferire un sistema recuperando lo spazio
L'immagine così come è fatta se copiata rudemente con dd occuperà la SD Card target da 8GB per intero, perdendo i restanti 4GB ( in realtà saranno 3.7GB ). Con una serie di passaggi intermedi possiamo copiare l'immagine sulla SD ma otterremo i restani GB come partizione non formattata.
Usiamo dd per creare un file compresso con gzip ( NdA assicuratevi di non avere nessuna partizione del file.img montata )
Ora assicuriamoci di avere la SD target inserita, non montiamola ma verifichiamo con quale device è riconosciuta dal sistema. Potete usare dmesg ed ottenere questo output nelle righe finali
oppure fdisk -l ( da root o con sudo ) per ottenere questo output
La SD Card in questo caso non contiene partizioni, ma non ha importanza se le avesse andrebbero perse visto che dd è un comando distruttivo. Quindi fate attenzione all'esatto device individuato nel vostro caso. Come sempre non mi prendo nessuna responsabilità in caso di perdite di dati o altro.
Individuato il mio device ( /dev/sdd ) posso trasferire l'immagine
A differenza del brutale dd sulla SD Card, ora con fdisk -l o gparted potrete vedere i restanti GB come partizione disponibile ma non inizializzata. Ora scegliete se creare una partizione separata e montarla all'avvio della SD, oppure effettuare un allargamento della partizione con gparted.
Alla prossima!
UPDATE 20 Agosto
Per completezza di informazione ho usato la stessa procedura con una live di OpenSuse e funziona perfettamente.
arulajeh.id Situs Berita Terbaru Dan Terbaik
Tambahkan Komentar