En mi sistema Arch Linux (Linux Kernel 3.14.2), los montajes de enlace no respetan la opción de solo lectura
# mkdir test
# mount --bind -o ro test/ /mnt
# touch /mnt/foo
crea el archivo /mnt/foo
. La entrada relevante en /proc/mounts
es
/dev/sda2 /mnt ext4 rw,noatime,data=ordered 0 0
Las opciones de montaje no coinciden con mis opciones solicitadas, pero coinciden con el comportamiento de lectura / escritura del montaje de enlace y las opciones utilizadas para montar originalmente /dev/sda2
en/
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Sin embargo, si vuelvo a montar el soporte, respeta la opción de solo lectura
# mount --bind -o remount,ro test/ /mnt
# touch /mnt/bar
touch: cannot touch ‘/mnt/bar’: Read-only file system
y la entrada relevante en /proc/mounts/
/dev/sda2 /mnt ext4 ro,relatime,data=ordered 0 0
se parece a lo que podría esperar (aunque en verdad esperaría ver la ruta completa del test
directorio). La entrada /proc/mounts/
para el montaje original de /dev/sda2/
on /
tampoco cambia y permanece en lectura / escritura
/dev/sda2 / ext4 rw,noatime,data=ordered 0 0
Este comportamiento y la solución se conocen desde al menos 2008 y están documentados en la página de manual demount
Tenga en cuenta que las opciones de montaje del sistema de archivos seguirán siendo las mismas que en el punto de montaje original, y no se pueden cambiar pasando la opción -o junto con --bind / - rbind. Las opciones de montaje se pueden cambiar mediante un comando de montaje por separado
No todas las distribuciones se comportan igual. Arch parece no respetar silenciosamente las opciones, mientras que Debian genera una advertencia cuando el montaje de enlace no obtiene montaje de solo lectura
mount: warning: /mnt seems to be mounted read-write.
Hay informes de que este comportamiento fue "arreglado" en Debian Lenny y Squeeze, aunque no parece ser una solución universal ni funciona en Debian Wheezy. ¿Cuál es la dificultad de hacer que el montaje de enlace respete la opción de solo lectura en el montaje inicial?
mount -t bind
un script de ayuda en bugs.launchpad.net/ubuntu/+source/mountall/+bug/519380
/etc/mtab
. Después del montaje inicial, la entrada dice que el montaje es rw y después del montaje dice ro, por lo que informa el estado del montaje correctamente. Es solo el comando de montaje el que falla.
mount --bind -o ro
, ambos escupen un mensaje mount: warning: «mountpoint» seems to be mounted read-write.
. Parece que Debian cayó o perdió el parche en algún momento ... funciona, sin embargo.