Tôi đã cố gắng để đạt được một cái gì đó tương tự, nhưng ephemient câu trả lời 's không giải thích ngữ nghĩa của phương pháp này. Nó đã thất bại đối với tôi và vì vậy tôi đã hỏi hầu như cùng một câu hỏi trước đây trên unix.SE. Sau khi nhận xét tôi đã tự mình tìm ra và trả lời nó. Đây là một phiên bản chỉnh sửa câu trả lời của tôi để phù hợp với bối cảnh này ở đây. Tôi loại bỏ câu hỏi khác của tôi (và câu trả lời) để ủng hộ câu hỏi này.
Đây là những gì tôi đã cố gắng làm:
Ví dụ trường hợp
Gắn kết:
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
Sau khi gắn /
tôi có một thư mục /home/joe
cho người dùng joe
. Khi vị trí khác được gắn kết ( /data
) Tôi có sẵn bộ thư mục nhà đầy đủ, vì vậy tôi sẽ gắn kết chúng vào vị trí ( /data/home on /home
). Có một thư mục /data/home/joe
, miễn là việc gắn kết /dev/sdb1
thành công, anh ta sẽ nhận được nội dung /data/home/joe
, nếu không anh ta sẽ quay lại /home/joe
(bật /dev/sda1
!).
Khi nó thành công, làm thế nào tôi có thể truy cập nội dung ban đầu của /home/joe
(bật /dev/sda1
!) Thay vì các nội dung được gắn kết vào vị trí /data/home/joe
?
Dung dịch
Dựa trên nhận xét của Patrick về nhận xét của tôi về câu hỏi của tôi và giải pháp của ephemient (câu trả lời được chấp nhận ở đây), tôi đã đưa ra những điều sau đây.
Đó là dường như có thể mount --bind
(hoặc mount -o bind
) các thư mục mẹ ( đây là phần quan trọng ) của một ràng buộc gắn ở nơi khác và do đó truy cập vào các nội dung ban đầu. Vì vậy, đối với trường hợp ví dụ của tôi, thay vì cố gắng:
mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath
(tức là gắn kết các vị trí đã gắn kết ở nơi khác) Tôi đã phải:
test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath
Vì vậy, đây là những gì Patrick có nghĩa trong bình luận của mình
Trừ khi bạn vượt qua /
(root), câu trả lời đó sẽ hoạt động tốt.
Miễn là bạn có một thư mục mẹ đến vị trí gắn kết có sẵn, nó sẽ hoạt động, mặc dù với một chỉ dẫn như được hiển thị ở trên. Nếu bạn gắn kết một cái gì đó trên /
bạn không gặp may, vì không có thư mục cha cho /
.
mount --bind
, nhưng chỉ có một số ý tưởng phức tạp chắc chắn sẽ bị phá vỡ khi tôi cần nó. Điều này thực hiện chính xác những gì tôi cần và thậm chí có thể đi vào như một thú cưỡi vĩnh viễn. Cảm ơn