Dường như mount -o loop
thay đổi tập tin hình ảnh được gắn kết. Tôi đã tải xuống tệp hình ảnh ISO và kiểm tra tổng kiểm tra SHA-1 của nó. Sau đó, tôi gắn tập tin ISO đó và tổng kiểm tra đã thay đổi. Dưới đây là các bước chính xác mà tôi đã thực hiện, sao chép-dán từ bảng điều khiển của tôi, CentOS 7 x64 (lưu ý rằng tệp ISO là chỉ đọc):
[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
Tôi đã rất ngạc nhiên, tôi đã lặp lại các bước trên các máy khác (Ubuntu 14.04 x64), để có được kết quả tương tự: tổng kiểm tra tệp đã thay đổi sau đó mount -o loop
. Việc ngắt hình ảnh ISO không trả lại tổng kiểm tra của nó về giá trị ban đầu; thay đổi tập tin là liên tục. Hơn nữa, lần gắn kết tiếp theo thay đổi tổng kiểm tra một lần nữa thành một số giá trị mới. Làm thế nào nó có thể được giải thích?
PS
Gắn kết rõ ràng chỉ đọc bằng cách thêm ro
tùy chọn gắn kết ngăn không cho tệp bị thay đổi, do đó nếu tôi sử dụng:
sudo mount -o ro,loop X17-58997.iso /mnt/iso
sau đó mọi thứ đều ổn, và tập tin ảnh ISO tồn tại không thay đổi sau khi mount. Hành vi sai chỉ xảy ra khi ro
tùy chọn không được chỉ định, ngay cả khi tệp ảnh ISO ở chế độ chỉ đọc ở cấp hệ thống tệp. Tôi đã thử trên ba hình ảnh ISO khác nhau: DVD cài đặt Windows 7 (chính thức), SystemResTHERCD (cứu Linux nhỏ) và ISO làm bằng tay được tạo bởi genisoimage
công cụ.
Tôi đã kiểm tra tất cả các tệp ISO đó với file
tiện ích và file
nói rằng tất cả chúng là dữ liệu hệ thống tệp CD-ROM ISO 9660 . Các tệp bên trong ảnh ISO không bị thay đổi - Tôi cũng đã kiểm tra nó - có vẻ như kịch bản gắn kết bị lỗi thêm một số dữ liệu meta hoặc chỉ là rác.
genisoimage -o empty.iso emptydir
?
iso
nó vào nó không? Bạn cũng có thể sử dụng mknod -m 660 /dev/loop1 b 7 1
sau khi chạychmod 660 /dev/loop*