`mount -o loop` mengubah file ISO image yang dipasang

22

Sepertinya mount -o loopmengubah file gambar yang dipasang. Saya mengunduh file gambar ISO dan memeriksa checksum SHA-1-nya. Kemudian saya memasang file ISO dan checksum berubah. Berikut langkah-langkah persis yang saya buat, salin-tempel dari konsol saya, CentOS 7 x64 (perhatikan, file ISO itu hanya-baca):

[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

Saya sangat terkejut, bahwa saya mengulangi langkah-langkah di atas pada komputer lain (Ubuntu 14,04 x64), hanya untuk mendapatkan hasil yang sama: file checksum diubah setelahnya mount -o loop. Melepas gambar ISO tidak mengembalikan checksumnya ke nilai asli; perubahan file bersifat persisten. Selain itu, pemasangan selanjutnya mengubah checksum lagi ke beberapa nilai baru. Bagaimana itu bisa dijelaskan?

PS

Mounting hanya-baca dengan menambahkan roopsi mount mencegah file diubah, sehingga jika saya menggunakan:

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

maka semuanya OK, dan file gambar ISO berlangsung tidak berubah setelah mount. Perilaku yang salah terjadi hanya ketika roopsi tidak ditentukan, bahkan jika file gambar ISO hanya-baca pada tingkat sistem file. Saya mencoba tiga gambar ISO yang berbeda: DVD instalasi Windows 7 (resmi), SystemRescueCD (Linux penyelamatan kecil) dan ISO buatan tangan yang dibuat oleh genisoimagealat.

Saya memeriksa semua file ISO dengan fileutilitas, dan filemengatakan bahwa semuanya adalah ISO 9660 data sistem file CD-ROM . File di dalam gambar ISO tidak diubah - saya juga memeriksanya - sepertinya skenario mount yang salah menambahkan beberapa meta-data atau hanya sampah.


sumber
Apa sha1sum setelah dilepas?
Volker Siegel
Bisakah Anda mencoba dengan gambar iso kosong, dibuat oleh genisoimage -o empty.iso emptydir?
Volker Siegel
dapatkah Anda mencoba membuat perangkat loop baru dan mencoba memasang isoitu? Anda dapat menggunakan mknod -m 660 /dev/loop1 b 7 1juga setelah dijalankanchmod 660 /dev/loop*
Simply_Me
@VolkerSiegel unmount tidak mengembalikan checksum sebelumnya. File diubah untuk selamanya. Tetapi terima kasih telah menunjukkan ini, saya akan mengedit pertanyaan saya untuk memasukkan informasi ini.
2
Laporan bug serupa di launchpad: mount -o loop .... mengubah gambar udf
Volker Siegel

Jawaban:

1

Iso bukan sinonim hanya untuk membaca, dalam beberapa keadaan, Anda mungkin ingin memasang iso read / write (saat membuat media boot).

Jika Anda hanya ingin membaca, gunakan opsi

 mount -o ro,iso
Archemar
sumber
3
File ISO saya hanya-baca oleh izin sistem file, dan itu dipasang-baca hanya seperti yang dinyatakan dalam output mount.