Ho cercato di ottenere qualcosa di simile, ma la risposta effimera non ha spiegato la semantica del metodo. Non è riuscito per me e quindi ho fatto praticamente la stessa domanda prima qui su unix.SE. Dopo un commento l'ho capito da solo e ho risposto. Questa è una versione modificata della mia risposta per adattarsi a questo contesto qui. Ho rimosso la mia altra domanda (e risposta) a favore di questa.
Ecco cosa stavo cercando di fare:
Caso di esempio
Monti:
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
Dopo il montaggio /ho una cartella /home/joeper l'utente joe. Una volta che l'altra posizione viene montata ( /data), ho a disposizione l'intero set di cartelle home, quindi le sto montando in posizione ( /data/home on /home). C'è una cartella /data/home/joe, quindi fino a quando il montaggio non /dev/sdb1riesce, otterrà il contenuto di /data/home/joe, altrimenti tornerà a /home/joe(on /dev/sda1!).
Quando ha esito positivo, come posso accedere al contenuto originale di /home/joe(on /dev/sda1!) Invece di quelli montati in posizione da /data/home/joe?
Soluzione
Sulla base di un commento del commento di Patrick sulla mia domanda e della soluzione di effimero (risposta accettata qui), ho trovato quanto segue.
Si è evidentemente possibile mount --bind(o mount -o bindla) cartella padre ( questa è la parte cruciale ) di un bind-mount altrove e accedere in tal modo il contenuto originale. Quindi, per il mio esempio, invece di provare a:
mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath
(cioè montare le posizioni già montate altrove) dovevo:
test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath
Questo è ciò che Patrick intendeva nel suo commento
A meno che tu non stia rimontando /(root), quella risposta dovrebbe funzionare bene.
Finché hai a disposizione una cartella principale per la posizione montata sul bind, funzionerà, anche se con una indiretta come mostrato sopra. Se hai collegato qualcosa su di /te, sei sfortunato, poiché non esiste una cartella principale per /.
mount --bind, ma ho avuto solo alcune idee contorte che si sarebbero sicuramente spezzate quando ne avevo bisogno. Questo fa esattamente ciò di cui ho bisogno e può persino entrare come supporto permanente. Grazie