[시스템] umount 가 안될때 강제로 umount 시키는 법- lsof
특정 파티션을 umount 시킬려고 해도 해당 파티션에 있는 파일을 누군가 사용
하고 있다면 “자원이 사용중” 이라는 메세지와 함께 umount 가 안
되죠…혹은 해당 파티션에 접근한 사용자가 없더라도 그 파티션에 작업중인
프로세서가 종료 되지 않은 경우에도 마찬가지 입니다.
이때 강제로 umount 를 시킬려면 이 프로세서를 죽여야 합니다.
먼저 lsof 로 해당 파티션에 접근된 프로세서와 파일을 찾아봅니다.
# lsof <expected file system name>
여기서 expected file system name 이란 해당 파티션의 마운트 디렉토리 명
이라고 생각하면 됩니다.
그럼 해당 파티션에 접근되어져서 종료되지 않은 프로세스를 알수가 있죠.
죽여 버립니다. 과감히 …콱!!
# kill -9 <프로세서>
그런뒤 umount 하면 됩니다. 그럼..
저같은 경우에는으로 확인 으로 킬
fuser -m
fuser -k
후 umount를 사용했습니다.
lsof가 fuser보다 많은 정보가 출력 되더군요..
감사합니다.
fuse 도 파일시스템에 접근하는 프로세스를 죽일때 사용하는 대표적인 방법 중
하나입니다. fuse -u 옵션을 사용하면, 프로세스와 사용자정보까지도 나오죠.
losf 는 파일시스템 접근하는 프로세스를 찾는 용도 외에 특정 프로세스가
잡고 있는 파일들이나, 현재 오픈된 네트워크 포트와 해당 포트를 이용하는
프로세스까지 추척이 가능합니다.
lsof -p : 프로세스가 잡고 있는 파일 목록 확인
lsof -i : 현재 open 된 port 와 해당 프로세스명과 PID 확인
이밖에도 매우 많은 옵션들과 기능이 있죠. 시스템 상태를 확인하고, 원인을
분석, 추적하는데 사용되는 대표적인 명령입니다.
시스템 관리자라면 반드시 알아야 하는 명령 중 하나이죠.
수고하세요.
nfs mount 의 경우 가끔 위 명령으로 동작하지 않는 경우가 종종 발생한다. 을 사용해 보는 것도 도움이 된다.
그때는 umount -l