원래 마운트에 영향을 주지 않고 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_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_c바인딩이 있습니까 C_dir?

편집: 이 문제는 Ubuntu에서는 발생하지 않는 것 같습니다. 보다 구체적으로 말하면 Ubuntu 14.04에서는 제대로 작동하지만 Fedora 23 및 CentOS 7에서는 작동하지 않습니다. 왜 차이가 있나요? Fedora와 CentOS를 위한 솔루션은 무엇입니까?

편집: 해결하려는 실제 문제에 대한 추가 정보입니다. 샌드박스 생성을 시도하고 샌드박스에 --rbind마운트 /dev하는 데 사용했습니다. 샌드박스를 제거할 때 FC23 및 CentOS7에서는 unmount unmounts 이후에 쉘과 SSH 연결이 중단되고 컴퓨터를 재부팅해야 하기 /proc때문에 샌드박스를 완전히 제거할 수 없는 것 같습니다 . 그래서 하위 설치에 영향을 주지 않고 --rbind 설치를 제거할 수 있는 방법이 있는지 물었습니다.<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

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

관련 정보