`mount -o loop` altera o arquivo de imagem ISO montado

22

Parece que mount -o loopaltera o arquivo de imagem montado. Baixei o arquivo de imagem ISO e verifiquei sua soma de verificação SHA-1. Então montei esse arquivo ISO e a soma de verificação mudou. Aqui estão as etapas exatas que eu fiz, uma cópia e colar no meu console, CentOS 7 x64 (observe que o arquivo ISO é somente leitura):

[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

Fiquei tão surpreso que repeti as etapas acima em outra máquina (Ubuntu 14.04 x64), apenas para obter o mesmo resultado: a soma de verificação do arquivo mudou depois mount -o loop. A desmontagem da imagem ISO não retorna sua soma de verificação ao valor original; a alteração do arquivo é persistente. Além disso, a próxima montagem altera a soma de verificação novamente para algum novo valor. Como isso pode ser explicado?

PS

Montar explicitamente somente leitura adicionando a roopção mount impede que o arquivo seja alterado, portanto, se eu usar:

sudo mount -o ro,loop X17-58997.iso /mnt/iso

tudo está bem e o arquivo de imagem ISO permanece inalterado após a montagem. O comportamento incorreto ocorre apenas quando a roopção não é especificada, mesmo que o arquivo de imagem ISO seja somente leitura no nível do sistema de arquivos. Tentei em três imagens ISO diferentes: DVD de instalação do Windows 7 (oficial), SystemRescueCD (Linux pequeno de resgate) e ISO artesanal criado por genisoimageferramenta.

Eu verifiquei todos os arquivos ISO com o fileutilitário e filedisse que todos eles são dados do sistema de arquivos do CD-ROM ISO 9660 . Os arquivos dentro das imagens ISO não são alterados - eu também verifiquei - parece que o cenário de montagem defeituoso adiciona alguns metadados ou apenas lixo.


fonte
Qual é o sha1sum após a desmontagem?
Volker Siegel
Você pode tentar com uma imagem ISO vazia, criada por genisoimage -o empty.iso emptydir?
Volker Siegel
você pode tentar criar um novo dispositivo de loop e tentar montá iso-lo nele? Você pode usar mknod -m 660 /dev/loop1 b 7 1também após a execuçãochmod 660 /dev/loop*
Simply_Me 10/08/14
A desmontagem do @VolkerSiegel não retorna a soma de verificação anterior. O arquivo foi alterado para sempre. Mas obrigado por apontar isso, vou editar minha pergunta para incluir essas informações.
2
Relatório de erro semelhante à barra de lançamento: mount -o loop .... altera a imagem UDF
Volker Siegel

Respostas:

1

Iso não é sinônimo de somente leitura, em algumas circunstâncias, você pode montar um iso de leitura / gravação (ao criar uma mídia de inicialização).

Se você quiser somente leitura, use a opção

 mount -o ro,iso
Archemar
fonte
3
Meu arquivo ISO era somente leitura pelas permissões do sistema de arquivos e era montado como somente leitura, conforme indicado na saída de montagem.