Copiare files da un'immagine disco su SD Card
Prendiamo come esempio l'immagine del sistema operativo Raspbian, questo viene fornito da scompattare e trasferire direttamente sulla SD Card, una volta avviato il sistema, tramite opportuna utility (precaricata nel sistema) e` poi possibile espandere il file system per l'intera capienza della card utilizzata (che normalmente e` prassi averla piu` 'grande' dell'immagine), ma se non vennisse fornito il "tool" ?
Per prima cosa si deve analizzare l'immagine per verificare i punti di "montaggio" delle partizioni da eseguire successivamente.
Possiamo usare parted (sostituite "nomefileimmagine" con la vostra):
parted <nomefileimmagine>
comparira` a schermo il prompt dei comandi:
GNU Parted 2.3 Using <nomefileimmagine> Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
Cambiamo la visualizzazione in "byte", digitate "unit", poi "B", ed infine "print" per visualizzare le partizioni contenute nel file d'immagine, "q" per uscire, questo e` un'esempio:
GNU Parted 2.3 Using <nomefileimmagine> Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit Unit? [compact]? B (parted) print Model: (file) Disk <nomefileimmagine>: 1960837120B Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1048576B 95420415B 94371840B primary fat16 lba 2 95420416B 1877999615B 1782579200B extended 5 96468992B 1877999615B 1781530624B logical ext4 (parted) q
I numeri da memorizzare sono gli inizi delle partizioni: 1048576 per la partizione di "boot", 96468992 per quella del sistema operativo.
{nda: Sarebbe da completare con una guida al partizionamento}
Partizionate la vostra SD Card a vostro piacimento, un'esempio:
fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 7742 MB, 7742685184 bytes 4 heads, 16 sectors/track, 236288 cylinders, total 15122432 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0002c262 Device Boot Start End Blocks Id System /dev/mmcblk0p1 8192 122879 57344 c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 15122431 7499776 83 Linux
- Tutti i comandi successivi sono da eseguire come "root".
Montate le partizioni della vostra SD Card e quelle dell'immagine disco, per queste ultime, utilizzate i "numeri" ricavati in alto, se le directory destinazione non esistono dovrete crearle:
mount -o offset=1048576 <nomefileimmagine> /mnt/boot mount -o offset=96468992 <nomefileimmagine> /mnt/sistema mount /dev/mmcblk0p1 /mnt/SDCard/boot mount /dev/mmcblk0p2 /mnt/SDCard/sistema
Adesso copiamo i files:
cp -avrx /mnt/boot/* /mnt/SDCard/boot/ cp -avrx /mnt/sistema/* /mnt/SDCard/sistema/
La copia della directory "boot" dara` errore sui permessi, ovviamente, perche` su un file system FAT32 non e` possibile (potreste togliere l'opzione "a").
Prima di smontare la SD Card, assicuratevi di correggere il parametro nel file "/boot/cmdline.txt", che punti alla giusta partizione di sistema.
Ora potete smontare (tutto) e testare la vostra SD Card.