ดูเหมือนว่าmount -o loop
การเปลี่ยนแปลงไฟล์ภาพที่ติดตั้งอยู่ ฉันดาวน์โหลดไฟล์อิมเมจ ISO แล้วตรวจสอบ SHA-1 checksum ของมัน จากนั้นฉันติดตั้งไฟล์ 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 จะอ่านได้อย่างเดียวในระดับระบบไฟล์ ฉันลองใช้อิมเมจ ISO ที่แตกต่างกันสามแบบ: DVD การติดตั้ง Windows 7 (เป็นทางการ), SystemRescueCD (Linux ขนาดเล็กกู้ภัย) และ ISO แบบทำมือที่สร้างขึ้นโดยgenisoimage
เครื่องมือ
ฉันจะตรวจสอบว่าไฟล์ ISO ทั้งหมดที่มีfile
สาธารณูปโภคและfile
กล่าวว่าทั้งหมดของพวกเขาISO 9660 ข้อมูลแผ่น ไฟล์ภายในอิมเมจ ISO จะไม่เปลี่ยนแปลง - ฉันตรวจสอบแล้ว - ดูเหมือนว่าสถานการณ์เมานต์ผิดพลาดจะเพิ่มเมตาดาต้าหรือขยะ
genisoimage -o empty.iso emptydir
ไหม?
iso
มันได้ไหม? คุณสามารถใช้งานmknod -m 660 /dev/loop1 b 7 1
ได้หลังจากวิ่งchmod 660 /dev/loop*