Parece que mount -o loop
altera 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 ro
opçã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 ro
opçã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 genisoimage
ferramenta.
Eu verifiquei todos os arquivos ISO com o file
utilitário e file
disse 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.
genisoimage -o empty.iso emptydir
?
iso
-lo nele? Você pode usar mknod -m 660 /dev/loop1 b 7 1
também após a execuçãochmod 660 /dev/loop*