Я пытался добиться чего-то подобного, но ответ ephemient не объяснил семантику метода. Мне это не удалось, и поэтому я задал практически тот же вопрос ранее здесь, на unix.SE. После комментария я понял это самостоятельно и ответил на него. Это отредактированная версия моего ответа, чтобы вписаться в этот контекст здесь. Я удалил свой другой вопрос (и ответ) в пользу этого.
Вот что я пытался сделать:
Пример дела
кронштейны:
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
После монтирования у /меня есть папка /home/joeдля пользователя joe. Как только другое место будет смонтировано ( /data), у меня будет полный набор домашних папок, так что я привязываю их на место ( /data/home on /home). Там есть папка /data/home/joe, поэтому, если установка /dev/sdb1удалась, он получит содержимое /data/home/joe, в противном случае он вернется к /home/joe(вкл /dev/sda1!).
Когда это удастся, как я могу получить доступ к исходному содержимому /home/joe(вкл /dev/sda1!) Вместо того, чтобы привязать его к месту /data/home/joe?
Решение
На основании комментария Патрика по поводу моего вопроса и решения ephemient (принятый ответ здесь) я придумал следующее.
Это является , по- видимому возможно mount --bind(или mount -o bind) в родительской папке ( это важная часть ) в безвыходном смонтировать в другом месте и , таким образом , доступ к исходному содержанию. Так что для моего примера, вместо того, чтобы пытаться:
mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath
(т.е. смонтировать уже смонтированные привязки места в другом месте) мне пришлось:
test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath
Так вот что Патрик имел в виду в своем комментарии
Если вы не перемонтируете через /(root), этот ответ должен работать нормально.
Пока у вас есть родительская папка в доступном для привязки месте, она будет работать, хотя и с одним косвенным указанием, как показано выше. Если вы что-то монтируете на привязку, /вам не повезло, поскольку нет родительской папки для /.
mount --bind, но получил только некоторые замысловатые идеи, которые наверняка сломаются, когда мне это понадобится. Это делает именно то, что мне нужно, и даже может использоваться как постоянное крепление. Спасибо