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/joe
per 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/sdb1
riesce, 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 bind
la) 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