„mount -o loop” zmienia zamontowany plik obrazu ISO

22

Wygląda na to, że mount -o loopzmienia zamontowany plik obrazu. Pobrałem plik obrazu ISO i sprawdziłem sumę kontrolną SHA-1. Następnie zamontowałem ten plik ISO i suma kontrolna uległa zmianie. Oto dokładne kroki, które wykonałem, skopiuj i wklej z mojej konsoli CentOS 7 x64 (zauważ, że plik ISO jest tylko do odczytu):

[mbartnicki@89-78-33-81 Downloads]$ ls -lh
total 3.1G
-r--r--r--. 1 mbartnicki mbartnicki 3.1G Mar 31 18:28 X17-58997.iso
[mbartnicki@89-78-33-81 Downloads]$ sha1sum X17-58997.iso 
6c9058389c1e2e5122b7c933275f963edf1c07b9  X17-58997.iso
[mbartnicki@89-78-33-81 Downloads]$ sudo mount -o loop X17-58997.iso /mnt/iso/
mount: /dev/loop0 is write-protected, mounting read-only
[mbartnicki@89-78-33-81 Downloads]$ sha1sum X17-58997.iso 
994944df320e9e03c032263d7b9e36157a0a587c  X17-58997.iso

Byłem tak zaskoczony, że powtórzyłem powyższe kroki na innym komputerze (Ubuntu 14.04 x64), aby uzyskać ten sam wynik: suma kontrolna pliku zmieniła się później mount -o loop. Odmontowanie obrazu ISO nie przywraca sumy kontrolnej do pierwotnej wartości; zmiana pliku jest trwała. Co więcej, przy następnym montażu ponownie zmień sumę kontrolną na nową wartość. Jak można to wyjaśnić?

PS

Montowanie jawnie tylko do odczytu poprzez dodanie roopcji montowania zapobiega zmianie pliku, więc jeśli użyję:

sudo mount -o ro,loop X17-58997.iso /mnt/iso

wtedy wszystko jest w porządku, a plik obrazu ISO pozostaje niezmieniony po zamontowaniu. Niewłaściwe zachowanie występuje tylko wtedy, gdy ronie określono opcji, nawet jeśli plik obrazu ISO jest tylko do odczytu na poziomie systemu plików. Wypróbowałem trzy różne obrazy ISO: instalacyjny dysk DVD z systemem Windows 7 (oficjalny), SystemRescueCD (mały ratunkowy Linux) i ręcznie wykonany ISO stworzony przez genisoimagenarzędzie.

Sprawdziłem wszystkie pliki ISO za pomocą filenarzędzia i filepowiedziałem, że wszystkie są danymi systemu plików CD-ROM ISO 9660 . Pliki w obrazach ISO nie są zmieniane - sprawdziłem też - wygląda na to, że scenariusz błędnego montażu dodaje metadane lub po prostu śmieci.


źródło
Co to jest sha1sum po odmontowaniu?
Volker Siegel,
Czy możesz spróbować z pustym obrazem ISO utworzonym przez genisoimage -o empty.iso emptydir?
Volker Siegel,
czy możesz spróbować stworzyć nowe urządzenie pętli i spróbować go zamontować iso? Możesz użyć mknod -m 660 /dev/loop1 b 7 1także po uruchomieniuchmod 660 /dev/loop*
Simply_Me
@ Odmontowanie VolkerSiegel nie zwraca poprzedniej sumy kontrolnej. Plik został zmieniony na dobre. Ale dzięki za zwrócenie na to uwagi, zamierzam edytować moje pytanie, aby uwzględnić te informacje.
2
Podobny raport o błędzie w starterze: mount -o loop .... zmienia obraz udf
Volker Siegel

Odpowiedzi:

1

ISO nie jest synonimem tylko do odczytu, w niektórych okolicznościach możesz zamontować ISO do odczytu / zapisu (podczas tworzenia nośnika rozruchowego).

Jeśli chcesz tylko do odczytu, użyj opcji

 mount -o ro,iso
Archemar
źródło
3
Mój plik ISO był tylko do odczytu według uprawnień systemu plików i został zamontowany tylko do odczytu, jak podano w danych wyjściowych montowania.