Risposta diretta dall'articolo LWN:
mount --bind /vital_writable_data /untrusted_container/vital_data
mount -o bind,remount,ro /untrusted_container/vital_data
Supportato da Linux 2.6.26.
Secondo questo articolo è possibile. Hai bisogno di un kernel recente.
mount --bind -o ro /vital_data /untrusted_container/vital_data
In Squeeze funzionava solo con:
mount --bind /src /dst
allora
mount -o remount,ro /dst
Ora in Debian Wheezy devi fare:
mount -o remount,ro,bind /dst
per eliminare il messaggio:risorsa occupata.
Modifica:ora in Debian Jessie, mount cerca di essere intelligente e monta le sottodirectory, che se già montate con bind, diventano ricorsive e accadono cose brutte :)
C'è un'opzione speciale che costringe util-linux a essere di nuovo 'stupido'. La soluzione è questa:
mount --bind --make-rprivate /sbin/ $prefix/sbin/
mount -o remount,ro,bind $prefix/sbin/
Successivamente puoi montare --bind $prefix/sbin in un'altra directory.
Dalla pagina man:
Le operazioni del sottoalbero condiviso. A partire da Linux 2.6.15 è possibile contrassegnare un montaggio ei suoi sottomontaggi come condivisi, privati, slave o non vincolabili. Un montaggio condiviso offre la possibilità di creare mirror di tale montaggio in modo tale che i montaggi e gli smontaggi all'interno di uno qualsiasi dei mirror si propaghino all'altro mirror. Un mount slave riceve la propagazione dal suo master, ma non viceversa. Una cavalcatura privata non ha capacità di propagazione. Un montaggio non associabile è un montaggio privato che non può essere clonato tramite un'operazione di collegamento. La semantica dettagliata è documentata nel file Documentation/filesystems/sharedsubtree.txt nell'albero dei sorgenti del kernel. Le operazioni supportate sono:
mount --make-shared mountpoint mount --make-slave mountpoint mount --make-private mountpoint mount --make-unbindable mountpoint
I seguenti comandi consentono di modificare in modo ricorsivo il tipo di tutti i montaggi sotto un dato punto di montaggio.
mount --make-rshared mountpoint mount --make-rslave mountpoint mount --make-rprivate mountpoint mount --make-runbindable mountpoint
mount(8) non legge fstab(5) quando viene richiesta un'operazione --make-*. Tutte le informazioni necessarie devono essere specificate sulla riga di comando. Nota che il kernel di Linux non consente di modificare più flag di propagazione con una singola chiamata di sistema mount(2) e i flag non possono essere mescolati con altre opzioni di mount.
A partire da util-linux 2.23 il comando mount consente di utilizzare diversi flag di propagazione insieme e anche insieme ad altre operazioni di montaggio. Questa caratteristica è SPERIMENTALE. I flag di propagazione vengono applicati da ulteriori chiamate di sistema mount(2) quando le precedenti operazioni di montaggio hanno avuto successo. Si noti che questo caso d'uso non è atomico. È possibile specificare i flag di propagazione in fstab(5) come opzioni di montaggio (private, slave, shared, unbindable, rprivate, rslave, rshared, runbindable).