헤드리스 NAS에서 sdf1
(플래시 카드)를 마운트하는 동시에 /
(소프트웨어 RAID로 지원되는 LVM 볼륨)에서도 /home
마운트 했습니다. lv00
RAID 장애 발생 시 컴퓨터에 액세스할 수 있도록 /home/foo/.ssh
SSH 공개 키 등의 복사본을 파일 시스템에 저장합니다 sdf1
.
마운트에 의해 숨겨진 파일을 업데이트하려면 /home
일반적으로 를 다시 마운트 lv00
하고 /mnt/home
해야 할 일을 수행한 다음 lv00
다시 이동합니다.
제거하지 않고 이를 달성할 수 있는 방법이 있습니까 /home
?
답변1
mkdir /mnt/root
mount --bind / /mnt/root
ls /mnt/root/home/foo/.ssh
--bind
와 반대로 사용하는 한 --rbind
마운트 위에 무언가를 마운트하지 않고도 마운트의 복제본을 얻을 수 있습니다.
답변2
비슷한 것을 얻으려고 노력했지만단명대답은 방법의 의미를 설명하지 않습니다. 나에게는 실패했기 때문에 앞서 unix.SE에 대해 거의 동일한 질문을 했습니다. 댓글을 다신 후 제가 직접 파악해서 답변을 드렸습니다. 이것은 여기의 맥락에 맞게 내 답변의 편집된 버전입니다. 이 질문에 찬성하여 다른 질문(및 답변)을 삭제했습니다.
이것이 내가하려는 일입니다.
예시 사례
산:
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
설치 후 사용자 폴더가 /
생겼습니다 . 다른 위치가 설치되면( ) 홈 폴더 전체 세트를 사용할 수 있으므로 해당 위치( ) 에 번들로 마운트했습니다 . 폴더가 있으므로 마운트가 성공하면 콘텐츠를 가져오고 그렇지 않으면 (on !) 으로 돌아갑니다 ./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
이것이 Patrick이 그의 의견에서 의미한 것입니다.
이 답변은 다시 설치(루트)하지 않는 한
/
제대로 작동합니다 .
바인드 마운트 위치에 사용할 수 있는 상위 폴더가 있는 한 위에 표시된 대로 간접적인 방식이기는 하지만 작동합니다. 무언가를 번들로 설치했다면 /
운이 좋지 않을 것입니다 /
.
답변3
다음 명령을 사용하면 설치를 제거하지 않고 새 위치로 이동할 수 있습니다 mount --move
.
$ mount --move /home /mnt/home
do stuff with the local /home
$ mount --move /mnt/home /home