Ci sono tre concetti separati qui:
- Un dispositivo a blocchi , che è un dispositivo fisico o virtuale che rappresenta una serie di blocchi di dati di dimensioni uguali. Gli HDD sono dispositivi a blocchi. Lo stesso vale per i CD di dati.
- Un file system , che definisce un modo per memorizzare dati in un dispositivo di blocco che rappresenta una serie di file e directory e altre informazioni file system. ext3 è un file system, così come ISO9660.
- Un file di immagine è una copia dei dati su un dispositivo a blocchi, sotto forma di un file (su un altro file system). I file di immagine possono avere qualsiasi estensione;
.img
è comune.
Un .iso
file è in genere un file di immagine di un dispositivo a blocchi contenente un file system ISO9660 . Contiene una rappresentazione esatta dei dati memorizzati su un CD. Analogamente, potresti avere un .img
file (chiamalo .ext3
se preferisci) che è un file immagine di un dispositivo a blocchi contenente un filesystem ext3 . Questo è un modo comune di distribuire immagini USB o floppy avviabili. Il nome è arbitrario, .iso
è proprio ciò che chiamiamo file di immagine contenente un file system ISO9660 (o, a volte, un file system UDF, che è più moderno).
Non è possibile montare direttamente i file di immagine, poiché non sono dispositivi a blocchi, ma semplicemente una copia dei dati in un dispositivo a blocchi. Tuttavia, Linux e altri sistemi operativi hanno una funzione chiamata dispositivi loop che consente di accedere a un file immagine come dispositivo a blocchi. Per montare un file ISO, è innanzitutto necessario creare un dispositivo loop che rappresenti un dispositivo a blocchi virtuale con gli stessi contenuti del file ISO. Quindi è possibile montarlo come se fosse un CD fisico o come un'unità USB contenente un filesystem ext3 o qualsiasi altra cosa. Il mount
comando può farlo automaticamente per te, ma sotto il cofano sono passaggi separati.
Le partizioni sono un modo per suddividere un dispositivo a blocchi in più dispositivi a blocchi logici più piccoli. Le partizioni sono opzionali. Un CD è analogo a un'unità USB non partizionata o un floppy disk a questo proposito, uno in cui il filesystem è archiviato sull'intero dispositivo senza tabella delle partizioni. I file ISO pertanto non contengono una tabella delle partizioni. Nulla ti impedisce, per esempio, di creare un filesystem ISO9660 su una partizione HDD. Quando si fare avere partizioni, un file di immagine può essere di una singola partizione o dell'intero dispositivo fisico tra cui la tabella delle partizioni, ma i CD non sono partizionato, per cui la distinzione è irrilevante per le immagini ISO.
Non è necessario montare un dispositivo - o un file di immagine - per accedere ai file contenuti all'interno. Alcune applicazioni e librerie hanno la possibilità di accedere direttamente ai dati, senza coinvolgere il sistema operativo. Comprendono semplicemente direttamente il file system e dispongono di codice che imita ciò che fa il sistema operativo quando accede ai file in un file system. Questo è il motivo per cui esistono strumenti che possono mostrarti il contenuto di un file ISO, senza montarlo effettivamente tramite il sistema operativo. Il montaggio è un concetto di sistema operativo, ma non è l'unico modo per accedere ai dati su un dispositivo a blocchi. Alcune persone potrebbero considerare la semplice azione di fare questo "montaggio" in un certo senso.
Ciò su cui monti un dispositivo (o un file ISO attraverso un dispositivo di loopback) è irrilevante. È proprio qui che nella gerarchia dei percorsi chiedi al sistema operativo di mostrare i contenuti di un dispositivo. Su Linux, di solito sceglieresti una directory su alcuni file system già montati. Ma nulla ti impedisce, per esempio, l'avvio da un CD e chiedere al kernel di montarlo come filesystem di root. Ovviamente, poiché un file ISO è, beh, un file, probabilmente esiste già su alcuni file system, che è necessario aver montato da qualche parte per accedere all'ISO.
dd
, ad esempio.