원래 마운트에 영향을 주지 않고 rbind 마운트를 마운트 해제합니다.

원래 마운트에 영향을 주지 않고 rbind 마운트를 마운트 해제합니다.

요청 날짜서버 결함하지만 충분한 관심을 받지 못해 여기에 다시 게시했습니다. 여기 있는 일부 사람들이 답을 알고 있기를 바랍니다.

또 있다질문rbind 마운트를 마운트 해제하는 방법에 대해 논의하고 있지만 솔루션이 원치 않는 영향을 미칩니다. 다음 디렉터리 레이아웃을 고려하세요.

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

이제 다음 C_dir에 바인딩 B_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_c마운트 해제도 수행합니다 .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

편집: 이 문제는 우분투에서는 나타나지 않는 것 같습니다. 더 구체적으로 말하면 Ubuntu 14.04에서는 제대로 작동하지만 Fedora 23 및 CentOS 7에서는 작동하지 않습니다. 차이점이 있는 이유와 Fedora 및 CentOS에 대한 해결 방법은 무엇입니까?

편집: 내가 해결하려는 실제 문제에 대한 추가 정보입니다. 나는 샌드박스를 생성하려고 시도했고 샌드박스에 및를 --rbind마운트하는 데 사용했습니다. 샌드박스를 제거할 때 FC23 및 CentOS7에서 마운트 해제하면 마운트가 해제되고 그 후 쉘 및 SSH 연결이 중단되고 시스템을 재부팅해야 하기 때문에 샌드박스를 완전히 제거할 수 없는 것 같습니다 . 그렇기 때문에 하위 마운트에 영향을 주지 않고 --rbind 마운트를 마운트 해제할 수 있는 방법이 있는지 묻는 것입니다./dev/proc<sandbox-root>/dev/pts/dev/pts

답변1

나는 해결책을 스스로 찾았습니다. 다음으로 다시 전파되지 않도록 --make-rslave변경 사항을 적용하는 데만 사용하면 됩니다 .A_dir/mount_bB_dir

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

보다맨 페이지 섹션공유 하위 트리 작업.

관련 정보