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
. 이는 기본 장치가 "제거해도 안전한" 시기를 쉽게 알 수 없음을 의미합니다.