Come lavorare con le immagini ISO

..di Francesco Argese

Linux ci fornisce dei potenti tool da riga di comando che ci consentono di effettuare operazioni molto utili. La feature che viene trattata in questo tutorial è la gestione delle immagini ISO tramite pochi e semplici comandi da riga di comando.

Grazie ai semplici comandi illustrati di seguito non è necessario masterizzare un’immagine CD o DVD su disco per prendere visione dei suoi contenuti. Inoltre, in tal modo potrebbe essere possibile, ad esempio, memorizzare più distribuzioni Linux su un solo supporto DVD. Considerato che sotto Linux “everything’s a file”, l’unica cosa che ci resta da imparare è come montare l’immagine ISO.

Le immagini ISO, dalle quali i CD e DVD sono tradizionalmente masterizzati, sono interessanti e utili perchè non contengono file ma solo i metadati associati al filesystem del CD/DVD. Questi metadati comprendono codice di boot, struttura del filesystem e attributi dei file. Questo significa che è possibile scaricare un solo file, come ad esempio l’ultima versione di Ubuntu, e creare un sistema operativo avviabile in maniera indipendente semplicemente scrivendolo su disco.

Come è possibile montare un’immagine .iso? Dopo aver creato la cartella image dentro la directory /mnt è sufficiente dare questo comando:

mount -o loop image_file.iso /mnt/image

(N.B.: il comando deve essere lanciato come utente root; su Ubuntu si può usare il comando preceduto da sudo.)

Dopo aver montato l’immagine con questo comando è possibile visionare il contenuto della ISO semplicemente andando a visionare tramite interfaccia grafica la cartella /mnt/image. State attenti: non dimenticate l’opzione -o loop altrimenti il sistema operativo andrà a cercare dentro il file di configurazione /etc/fstab una corrispondenza relativa al montaggio del device.

Le ISO sono molto usate anche per fare il backup. Anche questa operazione è piuttosto semplice. Il comando da digitare è il seguente:

dd if=/dev/hda1 of=/image_file.iso

Dove if indica l’address device di input mentre of indica il file su cui scrivere l’immagine ISO.

Da notare che dd richiede un address device e non una directory come potrebbe sembrare dal comando. Infatti se diamo il comando “file /dev/hda1” otterremo che /dev/hda1 è un tipo di file block special e non un comune file essendo direttamente collegato alla periferica hardware. Segue un esempio che consente di capire meglio la differenza tra un device address ed un file. Il comando df -h ci consente di visualizzare i volumi montati e lo spazio a disposizione su ciascun volume.

Un tipico output del comando è il seguente:

Filesystem Dimens. Usati Disp. Uso% Montato su
/dev/hda2 34G 2,9G 30G 9% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 72K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/hdc 4,3G 4,3G 0 100% /media/cdrom0
/media/cdrom0/systemrescuecd-x86-0219.iso 121M 121M 0 100% /mnt/image

Eseguendo dd if=/mnt/image of=backup.iso la shell ritornerà un errore.

Invece eseguendo dd if=/dev/hdc of=backups.iso il tutto funzionerà correttamente.