Immagini ISO a go go con Linux

Mattepuffo's logo
Immagini ISO a go go con Linux

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!


Condividi

Commentami!