`mount -o loop 'змінює встановлений файл зображення ISO


22

Схоже, 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 читається лише на рівні файлової системи. Я спробував три різних ISO-образи: установочний DVD з Windows 7 (офіційний), SystemRescueCD (невеликий рятувальний Linux) та ручний ISO, створений genisoimageінструментом.

Я перевірив усі ці файли ISO із fileутилітою та fileсказав, що всі вони є файловою системою CD-ROM ISO 9660 . Файли всередині ISO-зображень не змінюються - я також перевірив це - схоже, що несправний сценарій монтажу додає деякі метадані або просто сміття.


Що таке sha1sum після відключення?
Volker Siegel

Чи можете ви спробувати порожнє ізо-зображення, створене компанією genisoimage -o empty.iso emptydir?
Волкер Зігель

чи можете ви спробувати створити новий пристрій петлі та спробувати встановити isoйого? Ви можете mknod -m 660 /dev/loop1 b 7 1також використовувати після запускуchmod 660 /dev/loop*
Simply_Me

Демонтаж @VolkerSiegel не повертає попередню контрольну суму. Файл змінено назавжди. Але дякую, що вказав на це, я редагую своє запитання, щоб включити цю інформацію.

2
Аналогічний звіт про помилку на стартовій панелі: mount -o loop .... змінює образ udf
Volker Siegel

Відповіді:


1

Iso не є синонімом лише для читання, під деякими ланцюжками ви можете встановити ізо читання / запис (під час створення завантажувального носія).

Якщо ви хочете лише читати, скористайтеся опцією

 mount -o ro,iso

3
Мій файл ISO був доступний лише для читання за допомогою дозволів файлової системи, і він був встановлений лише для читання, як зазначено у висновку програми монтування.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.