Respuesta directa del artículo de LWN:
mount --bind /vital_writable_data /untrusted_container/vital_data
mount -o bind,remount,ro /untrusted_container/vital_data
Compatible desde Linux 2.6.26.
Según este artículo es posible. Necesita un kernel reciente.
mount --bind -o ro /vital_data /untrusted_container/vital_data
En Squeeze solía funcionar solo con:
mount --bind /src /dst
entonces
mount -o remount,ro /dst
Ahora en Debian Wheezy tienes que hacer:
mount -o remount,ro,bind /dst
para deshacerse del:mensaje de recurso ocupado.
Editar:ahora en Debian Jessie, mount intenta ser inteligente y monta subdirectorios, que si ya están montados con bind, se vuelven recursivos y suceden cosas malas :)
Hay una opción especial que obliga a util-linux a volver a ser 'estúpido'. La solución es esta:
mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/
Luego puede montar --bind $prefix/sbin en otro directorio.
Desde la página del manual:
Las operaciones del subárbol compartido. Desde Linux 2.6.15 es posible marcar un montaje y sus submontajes como compartidos, privados, esclavos o no enlazables. Un montaje compartido brinda la capacidad de crear espejos de ese montaje de modo que los montajes y desmontajes dentro de cualquiera de los espejos se propaguen al otro espejo. Una montura esclava recibe propagación de su maestro, pero no al revés. Una montura privada no tiene habilidades de propagación. Un montaje no enlazable es un montaje privado que no se puede clonar a través de una operación de enlace. La semántica detallada está documentada en el archivo Documentation/filesystems/sharedsubtree.txt en el árbol de fuentes del kernel. Las operaciones admitidas son:
mount --make-shared mountpoint
mount --make-slave mountpoint
mount --make-private mountpoint
mount --make-unbindable mountpoint
Los siguientes comandos permiten cambiar recursivamente el tipo de todos los montajes bajo un punto de montaje dado.
mount --make-rshared mountpoint
mount --make-rslave mountpoint
mount --make-rprivate mountpoint
mount --make-runbindable mountpoint
mount(8) no lee fstab(5) cuando se solicita una operación --make-*. Toda la información necesaria debe especificarse en la línea de comandos. Tenga en cuenta que el kernel de Linux no permite cambiar varios indicadores de propagación con una sola llamada al sistema mount(2), y los indicadores no se pueden mezclar con otras opciones de montaje.
Desde util-linux 2.23, el comando de montaje permite usar varios indicadores de propagación juntos y también junto con otras operaciones de montaje. Esta función es EXPERIMENTAL. Los indicadores de propagación se aplican mediante llamadas al sistema mount(2) adicionales cuando las operaciones de montaje anteriores se realizaron correctamente. Tenga en cuenta que este caso de uso no es atómico. Es posible especificar las banderas de propagación en fstab(5) como opciones de montaje (privado, esclavo, compartido, no enlazable, rprivate, rslave, rshared, runbindable).