Immagini ISO a go go con Linux
ISO (o meglio ISO 9660) è lo standard filesystem per per i CD.
Genisoimage e dd sono due programmi da usare da terminale che facilitano la creazione di immagini ISO.
Il primo supporta sia l'estensione Joliet che la Rockridge.
Nell'articolo vedremo come usare i suddetti programmi.
DD
dd crea copie 1:1 di qualsiasi media, sia che si tratti di hard disk, partizioni di hard disk, CD e DVD.
Il comando base è:
dd if=source of=target
L'opzione if dice a dd dove reperire i dati, mentre of definisce l'output.
La sorgente e il target sono spesso devices come hard disk o CD/DVD.
Per copiare una partizione possiamo usare:
dd if=/dev/hda1 of/hdb1
Per creare una ISO da CD/DVD:
dd if=/dev/hdc of=immagine.iso
Quando si usa dd non c'è bisogno di montare il device da copiare, bisogna solo mettere il device giusto in if.
In questo caso il CD/DVD verrà copiato nel file immgine.iso.
dd ha anche un buon numero di flags.
Uno interessante è bs (block size), che può aumentare considerevolmente la velocità del programma.
Di default dd usa 512-byte blocks, cioà legge 512 byte alla volta e li scrive sull'output.
Se selezioniamo blocchi più grandi possiamo velocizzare il processo:
dd if=/dev/hda1 of=/hdb1 bs=2k
Questo comando dice di copiare la partizione in blocchi di 2 KB.
Possiamo anche specificare quanti blocchi dd deve leggere.
Per copiare 40 MB scriviamo bs=1M count=40.
L'opzione count specifica il numero di blocchi.
Questo può essere utile se ad esempio vogliamo copiare il bootsector, copiando solo i primi 512 KB:
dd if=/dav/hda of=bootsector bs=512 count=1
dd può essere usato anche per recuperare dati da filesystem danneggiati.
Prima di riparare il danno possiamo creare una copoa 1:1 del filesystem in questioneescludendo i settori danneggiati:
dd bs=512 conv=noerror,sync if=/dev/hda of=dev=hdb
Questo comando dice a dd di continuare a leggere i dati anche se scopre settori danneggiati.
L'opzione noerror dice a dd di non fermarsi agli errori e sync di segnare i settori illegibile come zero.
Generate ISO Images
Il tool genisoimage permette di creare delle immagini ISO in maniera semplice e con un buon numero di opzioni.
La sintassi di base è:
genisoimage parameter -o immagine.iso /directory_dati
L'opzione -o serve per definire il nome del target.
Altre opzioni:
- r serve per abilitare l'estensione Rockridge
- R per settare i privilegi e il proprietario
- J per usare l'estensione Joliet
- V specifica un volume ID per CD/DVD
- v attiva la modalità verbose (per avere più info)
- quiet il contrario di v
genisoimage -J -R -o immagine.uso /directory_dati
Inoltre genisoimage è ideale anche per i backup in quanto ha altre opzioni specifiche, come:
- m che serve per escludere alcuni tipi di file
- x per escludere intere directory
Esempi:
genisoimage ... -m *.html -m *.HTML -o immagine.iso /home
genisoimage ... -x /tmp -x /opt immagine.iso /
Inoltre possiamo creare anche media avviabili aggiungendo l'Isolinux bootloader:
genisoimage -J -R -o bootcd.iso -b isolinux/isolinux.bin -c isolinux/boot.cat
-no-emul-boot -boot-load-size 4 -boot-info-table /folder/data
Il flag -b è seguito dal nome dell'immagine di boot, il flag -c permette di specificare il boot catalog.
L'opzione -no-emul-boot dice al programma di non creare una emulazione quando si installa da questo CD.
L'opzione -boot-load-size 4 specifica che il BIOS provvede a quattor settori da 512-bytes per il file di boot.
Testiamo le immagini
Possiamo testare le nostre immagini usando mount specificando l'opzione -o loopp_
mount -o loop immagine.iso /mnt/tmp
Ovviamente il punto di mount deve esistere e il comando necessita dei privilegi di root.
Possiamo smontarla con:
umount /mnt/tmp
A presto!
dd genisoimage linux unix iso iso 9660 jolie
Commentami!