Parece que mount -o loop
cambia el archivo de imagen montado. Descargué el archivo de imagen ISO y verifiqué su suma de comprobación SHA-1. Luego monté ese archivo ISO y la suma de verificación cambió. Estos son los pasos exactos que hice, copiar y pegar desde mi consola, CentOS 7 x64 (tenga en cuenta que el archivo ISO es de solo lectura):
[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
Me sorprendió tanto que repetí los pasos anteriores en otra máquina (Ubuntu 14.04 x64), solo para obtener el mismo resultado: la suma de comprobación del archivo cambió después mount -o loop
. Desmontar la imagen ISO no devuelve su suma de comprobación al valor original; El cambio de archivo es persistente. Además, el siguiente montaje cambia la suma de comprobación nuevamente a algún valor nuevo. Como puede ser explicado?
PD
El montaje explícito de solo lectura al agregar la ro
opción de montaje evita que el archivo se cambie, de modo que si uso:
sudo mount -o ro,loop X17-58997.iso /mnt/iso
entonces todo está bien, y el archivo de imagen ISO dura sin cambios después del montaje. El comportamiento incorrecto ocurre solo cuando ro
no se especifica la opción, incluso si el archivo de imagen ISO es de solo lectura en el nivel del sistema de archivos. Probé tres imágenes ISO diferentes: DVD de instalación de Windows 7 (oficial), SystemRescueCD (Linux pequeño de rescate) e ISO hecho a mano creado por la genisoimage
herramienta.
Revisé todos los archivos ISO con file
utilidad, y file
dije que todos ellos son datos del sistema de archivos CD-ROM ISO 9660 . Los archivos dentro de las imágenes ISO no cambian, también lo verifiqué, parece que el escenario de montaje defectuoso agrega algunos metadatos o simplemente basura.
genisoimage -o empty.iso emptydir
?
iso
? Puede usar mknod -m 660 /dev/loop1 b 7 1
también después de la ejecuciónchmod 660 /dev/loop*