`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-образ ISO genisoimage.

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


источник
Что такое sha1sum после размонтирования?
Фолькер Сигел
Можете ли вы попробовать с пустым ISO-образом, созданным 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 не является синонимом только для чтения, при некоторых обстоятельствах вы можете смонтировать iso для чтения / записи (при создании загрузочного носителя).

Если вы хотите только чтение, используйте опцию

 mount -o ro,iso
Archemar
источник
3
Мой ISO-файл был доступен только для чтения с разрешениями файловой системы, и он был смонтирован только для чтения, как указано в выходных данных монтирования.