원래 마운트에 영향을주지 않고 rbind 마운트를 마운트 해제하십시오.


11

serverfault에 대해 질문 했지만 충분한 관심을 얻지 못 했으므로 여기에 일부 사람들이 답을 알고 있기를 바랍니다.

rbind 마운트 마운트 해제에 대해 다른 질문이 있지만 솔루션에 원치 않는 효과가 있습니다. 다음 디렉토리 레이아웃을 고려하십시오.

.
├── A_dir
│   └── mount_b
├── B_dir
│   └── mount_c
└── C_dir

지금은 결합 C_dirB_dir/mount_c와 rbind B_dirA_dir/mount_b:

[hidden]$ sudo mount --bind C_dir B_dir/mount_c
[hidden]$ sudo mount --rbind B_dir A_dir/mount_b
[hidden]$ mount | grep _dir | wc -l
3

이제는 umount A_dir/mount_b실패 할 것입니다. 웹상의 모든 곳의 답변에 따르면 umount A_dir/mount_b/mount_c먼저 해야합니다 umount A_dir/mount_b. 그러나 umount A_dir/mount_b/mount_cunmount도 필요 B_dir/mount_c합니다.

[hidden]$ sudo umount A_dir/mount_b/mount_c
[hidden]$ mount | grep _dir | wc -l
1

이제 내 질문은 어떻게 마운트 해제 A_dir/mount_b하지만 B_dir영향을받지 않는 것입니다. 즉 여전히 바인딩 B_dir/mount_cC_dir있습니까?

편집 :이 문제는 우분투에 나타나지 않는 것 같습니다. 더 구체적으로, 그것은 내 우분투 14.04에서 잘 작동하지만 Fedora 23 및 CentOS 7에서는 작동하지 않습니다. Fedora와 CentOS의 차이점과 해결 방법은 무엇입니까?

편집 : 해결하려는 실제 문제에 대한 추가 정보. 나는 샌드 박스를 만들려고하고 사용 --rbind를 탑재 /dev하고 /proc샌드 박스에. 샌드 박스를 파괴 할 때 <sandbox-root>/dev/ptsFC23에서 마운트를 해제 /dev/pts하면 CentOS7이 마운트 해제되므로 쉘을 깨끗이 파괴 할 수없는 것 같습니다. 그 후 쉘과 SSH 연결이 중단되고 시스템을 재부팅해야합니다. 그렇기 때문에 하위 마운트에 영향을주지 않고 --rbind 마운트를 마운트 해제하는 방법이 있는지 묻습니다.


답변:


9

나는 해결책을 스스로 찾았다. 나는 단순히 다음으로 전파하지 않고 --make-rslave변경을 수행하는 데 사용해야 A_dir/mount_b합니다 B_dir.

sudo mount --make-rslave A_dir/mount_b
sudo umount -R A_dir/mount_b

마운트 매뉴얼 페이지 섹션 공유 서브 트리 조작을 참조하십시오 .


1
일부 시스템에서는 한 mount --rbind src target --make-rslave번의 호출로 결합 할 수도 있습니다 . 일부 시스템은 이것을 허용하지 않습니다.
imz-Ivan Zakharyaschev
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.