Sepertinya mount -o loop
mengubah 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 ro
opsi 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 ro
opsi 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 genisoimage
alat.
Saya memeriksa semua file ISO dengan file
utilitas, dan file
mengatakan 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
?
iso
itu? Anda dapat menggunakan mknod -m 660 /dev/loop1 b 7 1
juga setelah dijalankanchmod 660 /dev/loop*