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.
genisoimage -o empty.iso emptydir?
isoitu? Anda dapat menggunakan mknod -m 660 /dev/loop1 b 7 1juga setelah dijalankanchmod 660 /dev/loop*