설치 후 "dev"를 제거하는 방법은 무엇입니까?

설치 후 "dev"를 제거하는 방법은 무엇입니까?

dev설치 후 제거가 안되는 것 같습니다 . 계속 Ubuntu 18.04.2 LTS해서 달리고 있어요 4.15.0-1052-aws.

mkdir -p ~/jail/dev
pushd ~/jail
sudo mount --rbind /dev dev/
sudo umount  dev/
umount: /home/ubuntu/Code/conversations/jail/dev: target is busy.

컴퓨터를 다시 시작하지 않고 제거할 수 있는 방법이 있습니까?

또는 더 쉽게 제거할 수 있도록 설치하는 방법이 있습니까?

고쳐 쓰다:이것은 다음의 출력입니다 lsof /home/ubuntu/Code/conversations/jail/dev.

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
kdevtmpfs  55 root  cwd    DIR    0,6     2980    2 dev
kdevtmpfs  55 root  rtd    DIR    0,6     2980    2 dev

답변1

mount --make-rslave dev/
umount -R dev/

안전상의 이유로 첫 번째 명령이 필요합니다. 두 번째 명령이 디렉터리 내의 하위 디렉터리를 언로드하는 것을 방지합니다.원래 /dev목차. 이는 "설치 전파" 때문입니다.

두 번째 명령은 전체 트리를 재귀적으로 언로드합니다. dev/pts예를 들어 이렇게 하면 를 제거하기 전에 먼저 제거할 수 있습니다 dev/. 이것이 "대상이 사용 중입니다" 오류의 원인입니다.


최적화로 umount -l대신 사용할 수 있습니다 umount -R. 이는 전체 바인드 마운트 트리를 분해할 때 유용할 수 있습니다.

바인드 마운트의 "umount -R"은 무시할 수 없을 정도로 많은 시간이 소요됩니다. 이유는 무엇입니까?

그러나 단순한 바인드 마운트나 가상 파일 시스템 이상의 것이라면 주의가 필요합니다. 파일이 열려 있는 프로그램은 일반적으로 해당 파일에 계속 액세스할 수 있습니다. 파일 시스템은 닫힐 때까지 열려 있습니다. 그러나 파일 시스템은 즉시 "분리"됩니다. 더 이상 네임스페이스를 복잡하게 만들지 않습니다. 대기 에는 표시되지 않습니다 findmnt. 이는 기본 장치가 "제거해도 안전한" 시기를 쉽게 알 수 없음을 의미합니다.

관련 정보