mount -o loop
マウントされたイメージファイルを変更するように見えます。ISOイメージファイルをダウンロードし、SHA-1チェックサムを確認しました。次に、そのISOファイルをマウントし、チェックサムを変更しました。ここに、私が行った正確な手順、コンソールからのコピー&ペースト、CentOS 7 x64(ISOファイルは読み取り専用であることに注意してください):
[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
驚いたので、同じ結果を得るために、別のマシン(Ubuntu 14.04 x64)で上記の手順を繰り返しましたmount -o loop
。ISOイメージをアンマウントしても、チェックサムは元の値に戻りません。ファイルの変更は永続的です。さらに、次回のマウントでは、チェックサムが再び新しい値に変更されます。どのように説明できますか?
PS
ro
マウントオプションを追加して明示的に読み取り専用でマウントすると、ファイルが変更されなくなります。
sudo mount -o ro,loop X17-58997.iso /mnt/iso
その後、すべてが問題なく、ISOイメージファイルはマウント後も変更されません。ro
ISOイメージファイルがファイルシステムレベルで読み取り専用であっても、オプションが指定されていない場合にのみ、間違った動作が発生します。Windows 7インストールDVD(公式)、SystemRescueCD(小さなレスキューLinux)、およびgenisoimage
ツールで作成された手作りのISOの3つの異なるISOイメージを試しました。
私はすべてのISOファイルをfile
ユーティリティでチェックしfile
、それらはすべてISO 9660 CD-ROMファイルシステムデータであると言いました。ISOイメージ内のファイルは変更されません-私もチェックしました-障害のあるマウントシナリオがメタデータまたは単なるゴミを追加するようです。
genisoimage -o empty.iso emptydir
。
iso
、それをマウントしてみてください。mknod -m 660 /dev/loop1 b 7 1
実行後も使用できますchmod 660 /dev/loop*