Я пытался добиться чего-то подобного, но ответ 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
, но получил только некоторые замысловатые идеи, которые наверняка сломаются, когда мне это понадобится. Это делает именно то, что мне нужно, и даже может использоваться как постоянное крепление. Спасибо