답변:
mkdir /mnt/root
mount --bind / /mnt/root
ls /mnt/root/home/foo/.ssh
를 사용하는 한 --bind
(위에있는 것과는 달리 --rbind
) 마운트 된 것없이 마운트의 복제본을 얻습니다.
비슷한 것을 달성하려고 노력했지만 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
)이 상위 폴더 ( 이것은 중요한 부분 (A)의 다른 바인드 장착시켜 원래의 내용을 액세스). 내 예제의 경우 다음을 시도하는 대신
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
이것이 패트릭이 그의 의견에서 의미 한 바입니다.
/
(루트)를 다시 마운트하지 않는 한 그 대답은 정상적으로 작동합니다.
사용 가능한 바인드 마운트 위치에 대한 상위 폴더가 있으면 위와 같이 하나의 간접 경로로도 작동합니다. 에 /
대한 상위 폴더가 없기 때문에 무언가를 바인딩 마운트 하면 운이 좋지 않습니다 /
.
mount --bind
지만 필요할 때 깨지기 쉬운 복잡한 아이디어 만 얻었습니다. 이것은 내가 필요한 것을 정확하게 수행하고 심지어 영구 마운트로 들어갈 수 있습니다. 감사합니다