`mount -o loop` เปลี่ยนแปลงไฟล์อิมเมจ ISO ที่เมาท์


22

ดูเหมือนว่า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 จะไม่เปลี่ยนแปลง - ฉันตรวจสอบแล้ว - ดูเหมือนว่าสถานการณ์เมานต์ผิดพลาดจะเพิ่มเมตาดาต้าหรือขยะ


sha1sum คืออะไรหลังจากเลิกเมานท์แล้ว?
Volker Siegel

คุณลองกับภาพ iso ที่ว่างเปล่าสร้างโดยได้genisoimage -o empty.iso emptydirไหม?
Volker Siegel

คุณลองสร้างอุปกรณ์ลูปใหม่แล้วลองเมานต์isoมันได้ไหม? คุณสามารถใช้งานmknod -m 660 /dev/loop1 b 7 1ได้หลังจากวิ่งchmod 660 /dev/loop*
Simply_Me

@VolkerSiegel การถอนการติดตั้งไม่ส่งคืนการตรวจสอบก่อนหน้า ไฟล์มีการเปลี่ยนแปลงที่ดี แต่ขอบคุณที่ชี้ให้เห็นว่าฉันจะแก้ไขคำถามของฉันเพื่อรวมข้อมูลนี้

2
รายงานข้อบกพร่องที่คล้ายกันที่ launchpad: mount -o loop ... เปลี่ยนอิมเมจ udf
Volker Siegel

คำตอบ:


1

Iso ไม่ใช่คำพ้องความหมายสำหรับอ่านอย่างเดียวภายใต้สถานการณ์บางอย่างคุณอาจต้องการติดตั้ง iso read / write (เมื่อสร้างสื่อสำหรับบูต)

ถ้าคุณต้องการอ่านอย่างเดียวใช้ตัวเลือก

 mount -o ro,iso

3
ไฟล์ ISO ของฉันเป็นแบบอ่านอย่างเดียวด้วยสิทธิ์ระบบไฟล์และไฟล์นั้นจะถูกเมาท์เป็นแบบอ่านอย่างเดียวตามที่ระบุในเอาต์พุตการเมาต์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.