Risposte:
È possibile creare un bind-mount di sola lettura .
mount --bind /path/to/source/ /path/to/dest/
mount -o bind,remount,ro /path/to/dest
Sì, questo deve essere fatto in due passaggi nei kernel dopo i kernel Linux 2.6.25 (per il motivo vedere il link sopra).
Oppure, in alternativa, come /etc/fstab
esempio di riga ref :
/path/to/source/ /path/to/dest/ none bind,ro
In entrambi gli approcci, un mount bind risiede nel layer Virtual Filesystem (VFS), quindi questo non è specifico per nessun filesystem, né "montate" davvero nulla. Quindi, in sostanza, questo sta creando una sorta di collegamento simbolico per te, ma questo non si presenta come tale.
E per rispondere al commento qui sotto sulla perdita di dati ... no, queste istruzioni non rimuovono alcun file. Nel caso in cui siano presenti file sul percorso di destinazione, questa installazione verrà posizionata su di essa. Basta smontare per poter elencare i file nel percorso sul filesystem sottostante. Anche meglio; in generale, evitare il montaggio in cima a un percorso di destinazione non vuoto.
mount -o bind,remount,ro /path/to/dest
Vedi lwn.net/Articles/637501 dallo stesso thread.
mount -o remount,ro /path/to/dest
mi dà il seguente errore: mount: mount point is busy.
@gertvdijk
montare bind in sola lettura con un solo comando:
mount --bind -r /path/to/source/ /path/to/dest/
smontare
umount /path/to/dest/