Nota introduttiva: Per montare o smontare le unità di loopback potrà essere necessario anteporre sudo a mount o umount.
Usando il comando mount è possibile montare anche filesystem ISO9660 appena creati con applicazioni come mkisofs. Questo è possibile utilizzando le periferiche virtuali di loopback (chiamate anche "loop devices").
Le loop devices sono nodi speciali che possono essere utilizzati per montare file come se fossero blocchi reali, ad esempio un /dev/sda1 per la prima partizione del primo disco rigido. Risiedono in /dev e vengono utilizzati automaticamente quando in mount è specificata l'opzione loop.
Prendiamo ad esempio un file ISO qualsiasi: feather-0.7.5.iso (Feather Linux).
Possiamo verificare che sia effettivamente un file ISO tramite il programma file.
file <nome_immagine_ISO>
L'output dovrà essere simile a quello in figura:
ISO 9660 CD-ROM filesystem data
Seguito da una eventuale stringa di identificazione e da una dicitura (bootable), se l'unità può essere utilizzata come unità di boot.
Una immagine ISO si monta con la seguente riga di comando:
mount -t iso9660 -o ro,loop <immagine_ISO> <mountpoint>
Qui di seguito una breve descrizione dei termini usati nel montaggio:
Volendo è possibile specificare il loop device modificando leggermente la riga:
mount -t iso9660 -o ro,loop=/dev/loop7 <immagine_ISO> <mountpoint>
Con loop=/dev/loop7 specifichiamo di voler usare il device /dev/loop7 per il montaggio del file. Normalmente il kernel usa il primo device di loop disponibile in ordine numerico crescente; con questa piccola variazione è possibile forzare il kernel ad utilizzare una particolare loop device.
Nel caso in cui venga specificata una loop device già in uso mount uscirà con codice d'errore 32, il mount non verrà effettuato, verrà mostrato un messaggio di stolen loop e il mount precedente non verrà modificato.
Nell'esempio in figura abbiamo montato l'immagine feather-0.7.5.iso nel mountpoint /mnt/hd/1. Possiamo ora fare tutto quello che solitamente facciamo con un disco CD o DVD inserito nell'unità, ovviamente in sola lettura. Qualsiasi tentativo di scrittura, sovrascrittura o modifica di dati all'interno dell'immagine darà un errore di Read-only filesystem.
Leggiamo quindi i contenuti del file ISO appena montato con ls:
Possiamo inoltre leggere le specifiche di montaggio nel file /proc/mounts con il comando cat /proc/mounts:
L'ultima riga della figura identifica il nostro mount di loopback, visto dal kernel. Da questa riga sappiamo le seguenti cose:
Smontare il file è semplice, è sufficiente lanciare il comando seguente:
umount <mountpoint>
Dove <mountpoint> è il percorso di mount del file ISO. Assicuriamoci che il mountpoint non sia aperto in lettura o in scrittura, ovvero che nessun utente o nessun terminale abbia il mountpoint /mnt/hd/1 o una qualsiasi sottodirectory o un qualsiasi file interno all'immagine aperto in lettura o scrittura. Dovremo quindi risalire di almeno una directory o recarci in una cartella indipendente da essa, come ad esempio /mnt/hd, / o /home.
Nota: ovviamente la scrittura non si applica ai filesystem ISO o ad altri filesystem di sola lettura come squashfs, cramfs o romfs.
Usando il loopback è possibile montare non solo filesystem ISO, ma qualsiasi tipo di filesystem che risieda in file, specificando il tipo di filesystem e usando l'opzione loop. La sintassi della riga di comando è esattamente la stessa; basterà sostituire il tipo di filesystem e omettere l'opzione ro se vorremo aprire il filesystem in lettura/scrittura.
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati