기술 · 실용 가이드
umount가 “target is busy”라고 하나요? -l 또는 -f 전에 살아 있는 참조를 찾으세요
정확한 마운트, 하위 마운트, 프로세스·커널 보유자와 마운트 네임스페이스를 입증하세요. 소유자를 정상 해제한 뒤 lazy나 force는 문서화된 예외로 제한합니다.

정확한 마운트, 하위 마운트, 프로세스·커널 보유자와 마운트 네임스페이스를 입증하세요. 소유자를 정상 해제한 뒤 lazy나 force는 문서화된 예외로 제한합니다.
“Target is busy”는 활성 참조나 마운트 트리 제약이 남았다는 뜻이며 종류를 알려 주지는 않습니다. 프로세스를 찾기 전에 findmnt로 정확한 target과 source를 확정하세요. 장치명, bind 경로, 마운트 지점은 서로 바꿔 쓸 수 없습니다. 하위 마운트를 먼저 검사하세요. 아래의 다른 파일시스템이 상위 마운트를 계속 바쁘게 만들 수 있습니다.
변경 전에 정확한 마운트 증거 보존
전체 오류, 대상 경로, 유효 사용자, 호스트·컨테이너·서비스 문맥과 실패 명령을 저장합니다. 증거 수집 중에는 마운트를 유지하고 findmnt -T와 명시 열로 실제 레코드에 연결합니다.
장치, 마운트 지점, bind 보기를 같은 것으로 추정하지 마세요. 네임스페이스가 관련되면 mountinfo의 mount ID와 parent ID를 원래 실패 문맥에서 기록합니다.
프로세스보다 하위 마운트 트리 먼저 확인
findmnt -R로 모든 하위 마운트를 검사합니다. 상위 디렉터리에 보이는 프로세스가 없어도 아래 FS가 상위 트리 제거를 막습니다. 영향 확인 뒤 가장 깊은 것부터 처리합니다.
재귀 unmount는 의도적 트리 작업입니다. shared/slave 전파는 이벤트를 peer 트리에 복제하므로 변경 전에 mountinfo 태그를 확인합니다.
보이는 프로세스와 커널 참조 분류
충분한 권한으로 fuser -vmM을 실행하세요. 접근 문자는 cwd, executable, open file, root, mmap을 구분합니다. 중지 전에 사용자, 명령, 서비스를 확인합니다.
fuser -k는 기본 SIGKILL이므로 습관적으로 쓰지 않습니다. 빈 출력도 현재 권한과 네임스페이스의 가시성만 뜻할 수 있으며 매뉴얼에 제한이 명시돼 있습니다.
네임스페이스·bind·서비스 경계 확인
마운트 네임스페이스는 프로세스별 목록을 격리합니다. 서비스나 컨테이너의 /proc/PID/mountinfo와 비교하세요. 호스트 shell과 보이는 트리가 다를 수 있습니다.
bind, automount, NFS, loop, swap 또는 FS 고유 보유자는 소유 subsystem의 지원 lifecycle로 해제하고 승인 동작과 rollback을 기록합니다.
소유자를 해제하고 일반 umount 재시도
파일을 닫고 cwd를 옮기며 입증된 서비스를 중지하거나 자식 FS를 순서대로 해제합니다. 한 번에 하나만 바꾸고 findmnt/fuser 증거를 반복합니다.
일반 umount를 다시 실행합니다. 성공해야 정상 경로에서 참조가 제거된 것입니다. 이후 대상 네임스페이스의 부재와 서비스 상태를 확인합니다.
-l과 -f는 예외 분기로 제한
umount -l은 가시 트리에서 즉시 분리하고 참조는 나중에 정리합니다. util-linux는 네트워크나 하위 마운트가 있는 로컬 FS에서 곧 재부팅을 전제로 합니다.
umount -f는 주로 연결 불가 NFS용이며 hang 회피를 보장하지 않습니다. 커널 문서는 데이터 손실과 EBUSY 지속을 경고합니다. 예외 승인 시 이유, 범위, 위험 소유자와 검증을 기록합니다.
경로가 사라진 것보다 증거로 종료
전후 mountinfo 또는 findmnt, 해제한 보유자나 subsystem, 일반 unmount 성공 또는 승인 예외, 원래 실행 경로 결과를 보존합니다. 하위 마운트와 다른 namespace의 의도치 않은 복제도 확인합니다.
이 절차는 프로세스 종료, 컨테이너 파괴, propagation 변경, 네트워크 FS 강제, 운영 호스트 재부팅을 승인하지 않습니다. 완료는 참조 설명, 승인된 소유자 해제, 대상 namespace 정리와 의존 서비스 정상 상태입니다.
