Czy plik obrazu ISO jest samodzielnym systemem plików?

45

Próbuję zrozumieć, jaki związek xxx.isoma plik z innymi aspektami urządzenia blokowego, np. Partycjami i systemem plików.

Ludzie często opisują dostęp lub uczynienie .isoużytecznym „montażem ISO”.

Innymi słowy: jeśli ja lub jakiś program chciałbym „zamontować” xxx.isoplik na urządzeniu USB, czy konieczne jest posiadanie istniejącej partycji z systemem plików (np. FAT x lub ext X ) czy też .isoplik - raz w stanie „zamontowanym” - konstrukcja niższego poziomu, która pełni tę samą / podobną rolę, jaką pełni system plików (a nawet partycja)?

the_velour_fog
źródło
15
Tylko uwaga: Termin „plik ISO” w większości przypadków oznacza plik zawierający system plików w standardzie ISO 9660 dla nośników dysków optycznych. Możesz uzyskać plik ISO, kopiując na przykład płytę CD lub DVD-ROM dd.
Dubu,
4
Zamontować na USB? Masz na myśli, żeby zawartość ISO pojawiała się jako część drzewa VFS pod punktem montowania pamięci USB? Masz na myśli mount /dev/my_usb_stick /media/usb_stick && mount -o loop,ro foo.iso /media/usb_stick/some_dir? ( mountPolecenie Linuksa obsługuje loopopcję mount, aby skonfigurować urządzenie z blokiem pętli, ponieważ chęć montowania obrazów FS jak .iso jest powszechna.)
Peter Cordes
Używasz pliku jako urządzenia blokowego podczas montowania ISO.

Odpowiedzi:

64

Plik ISO nie jest systemem plików. To zawiera system plików. Z punktu widzenia użytkowania działa on tak samo jak dysk twardy, urządzenie USB lub DVD - musisz mieć punkt montowania, tj. Miejsce w systemie plików, w którym możesz go zamontować, aby uzyskać dostęp do zawartości.

Jenny D.
źródło
1
dzięki, więc czy w takim przypadku iso - po zamontowaniu - byłoby bardziej analogiczne do urządzenia blokowego lub partycji? - czy nie jest możliwe wyciągnięcie bezpośredniej analogii, ponieważ iso jest czymś zupełnie innym?
the_velour_fog
@the_velour_fog To bardzo dobra analogia!
Jenny D,
19
Powodem, dla którego nie można do niego pisać, nie jest to, że jest to zwykły plik zamontowany zamiast specjalnego pliku urządzenia, ale dlatego, że sterownik systemu plików go nie obsługuje. Jeśli obraz zawiera inny system plików, taki jak FAT32 lub EXT2 zamiast ISO9660, będziesz mógł czytać i zapisywać.
rexkogitans
4
@rexkogitans: ... lub UDF , aka ISO 13346. Jest to format pliku używany przez płyty CD-R z możliwością wielokrotnego zapisu.
MSalters
1
@ Hobbs: Pamięci USB, dyski twarde itp. również nie muszą mieć partycji. Urządzenia blokowe bez partycji są czasem nazywane „SuperFloppy”. Nie musisz partycjonować czegoś, jeśli umieścisz na nim tylko jedną partycję. Po prostu niektóre systemy operacyjne oczekują po prostu tabeli partycji i nie rozpoznają systemu plików bezpośrednio na urządzeniu blokowym. Na przykład systemy operacyjne osadzone w aparatach cyfrowych typu „wskaż i strzelaj” często odmawiają montażu kart SD w formacie SuperFloppy.
Jörg W Mittag
42

Istnieją tutaj trzy oddzielne koncepcje:

  • Urządzenie blokowe , które jest fizycznym lub wirtualnym urządzeniem reprezentującym szereg bloków danych o równej wielkości. Dyski twarde są urządzeniami blokowymi. Podobnie jak płyty CD z danymi.
  • System plików , który określa sposób przechowywania danych w urządzeniu blokowym reprezentującym serię plików i katalogów oraz inne informacje o systemie plików. ext3 jest systemem plików, podobnie jak ISO9660.
  • Plik obrazu to kopia danych na urządzeniu blokowym w postaci pliku (w innym systemie plików). Pliki obrazów mogą mieć dowolne rozszerzenie; .imgjest powszechne.

.isoPlik jest zwykle plik obrazu z urządzenia do bloku zawierającego ISO9660 plików . Zawiera dokładną reprezentację danych przechowywanych na płycie CD. Analogicznie, można mieć .imgplik (nazywają to .ext3jeśli wolisz), który jest plik obrazu z urządzenia blokowego zawierającego system plików ext3 . Jest to powszechny sposób dystrybucji rozruchowych obrazów USB lub dyskietek. Nazwa jest dowolna, .isonazywamy ją plikami obrazów zawierającymi system plików ISO9660 (lub czasem system plików UDF, który jest bardziej nowoczesny).

Nie można bezpośrednio montować plików obrazów, ponieważ nie są to urządzenia blokowe, a jedynie kopia danych w urządzeniu blokowym. Jednak Linux i inne systemy operacyjne mają funkcję zwaną urządzeniami pętlowymi, która umożliwia dostęp do pliku obrazu jako urządzenia blokowego. Aby zamontować plik ISO, najpierw należy utworzyć urządzenie pętli, które reprezentuje wirtualne urządzenie blokowe z taką samą zawartością jak plik ISO. Następnie możesz zamontować go tak, jak na fizycznym dysku CD lub na dysku USB zawierającym system plików ext3 lub cokolwiek innego. mountPolecenie może zrobić to za Ciebie automatycznie, ale pod maską są oddzielne etapy.

Partycje są sposobem na rozbicie urządzenia blokowego na wiele mniejszych logicznych urządzeń blokowych. Partycje są opcjonalne. Pod tym względem dysk CD jest analogiczny do niepartycjonowanego napędu USB lub dyskietki, na którym system plików jest przechowywany na całym urządzeniu bez tablicy partycji. Pliki ISO nie zawierają zatem tabeli partycji. Jednak nic nie stoi na przeszkodzie, aby utworzyć system plików ISO9660 na partycji dysku twardego. Kiedy zrobić mieć partycji plik obrazu może być z jednej partycji lub całego urządzenia fizycznego, w tym tablicy partycji, ale płyty nie są dzielone, więc różnica jest nieistotna dla obrazów ISO.

Nie musisz montować urządzenia - ani pliku obrazu - aby uzyskać dostęp do plików w nim zawartych. Niektóre aplikacje i biblioteki mają bezpośredni dostęp do danych, bez angażowania systemu operacyjnego. Po prostu bezpośrednio rozumieją system plików i mają kod, który naśladuje to, co robi system operacyjny, gdy uzyskuje dostęp do plików w systemie plików. Dlatego istnieją narzędzia, które mogą wyświetlać zawartość pliku ISO, bez faktycznego montowania go za pośrednictwem systemu operacyjnego. Montowanie to koncepcja systemu operacyjnego, ale nie jest to jedyny sposób uzyskiwania dostępu do danych na urządzeniu blokowym. Niektórzy ludzie mogą rozważyć zwykłą czynność polegającą na tym, że ten „montaż” w pewien sposób.

To, na co montujesz urządzenie (lub plik ISO przez urządzenie z pętlą zwrotną) jest nieistotne. Właśnie w hierarchii ścieżki prosisz system operacyjny o pokazanie zawartości urządzenia. W systemie Linux zwykle wybiera się katalog w niektórych już zamontowanych systemach plików. Ale nic nie stoi na przeszkodzie, powiedzmy, uruchamianiu z płyty CD i proszeniu jądra o zamontowanie go jako głównego systemu plików. Oczywiście, ponieważ plik ISO jest, no cóż, plikiem, prawdopodobnie istnieje na początku w pewnym systemie plików, który trzeba gdzieś zamontować, aby w ogóle uzyskać dostęp do ISO.

marcan
źródło
11

Nie, plik obrazu ISO sam w sobie nie jest systemem plików. Podobnie jak partycja może zawierać system plików, ale nie jest systemem plików, tak czy plik obrazu ISO zawiera system plików, ale nie jest to system plików.

Ale potrzebujesz systemu plików dla dwóch rzeczy:

  • miejsce do przechowywania pliku .iso (zakładając, że nie jest to błyszczący srebrny dysk)
  • katalog, w którym należy zamontować np /mnt/isotmp

Następnie, jeśli ścieżka rozwiąże się do czegoś poniżej /mnt/isotmp, kod systemu plików obrazu ISO wykona rozpoznawanie , otwieranie itp.

Anthon
źródło
fajnie, opisany przez ciebie układ jest podobny do sposobu montowania dysku twardego, tj. block device/partition/filesystem/montowania w /some/directory. więc czy mam w tej chwili założyć, że ISO zasadniczo pełni funkcję systemu plików?
the_velour_fog
Nie powiedziałbym tego tak. Plik ISO zawiera system plików. Tak jak partycja zawiera system plików. Nie powiedziałbyś, że partycja to także system plików (mam nadzieję)
Anthon,
Czym różni się to od powiedzenia „plik png zawiera obraz, ale nie jest obrazem”, tj. Głupie i bezużyteczne rozróżnienie?
Nick Matteo
@ thevelour_fog: Dokładniej mówiąc, iso w zasadzie pełni funkcję urządzenia blokowego.
TMN