[시스템] umount 가 안될때 강제로 umount 시키는 법- lsof

특정 파티션을 umount 시킬려고 해도 해당 파티션에 있는 파일을 누군가 사용

하고 있다면 “자원이 사용중” 이라는 메세지와 함께 umount 가 안

되죠…혹은 해당 파티션에 접근한 사용자가 없더라도 그 파티션에 작업중인

프로세서가 종료 되지 않은 경우에도 마찬가지 입니다.

이때 강제로 umount 를 시킬려면 이 프로세서를 죽여야 합니다.

먼저 lsof 로 해당 파티션에 접근된 프로세서와 파일을 찾아봅니다.

# lsof <expected file system name>

여기서 expected file system name 이란 해당 파티션의 마운트 디렉토리 명

이라고 생각하면 됩니다.

그럼 해당 파티션에 접근되어져서 종료되지 않은 프로세스를 알수가 있죠.

죽여 버립니다. 과감히 …콱!!

# kill -9 <프로세서>

그런뒤 umount 하면 됩니다. 그럼..

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

3 Responses

  1. 김동욱 말해보세요:

    저같은 경우에는
    fuser -m 으로 확인
    fuser -k
    으로 킬
    후 umount를 사용했습니다.
    lsof가 fuser보다 많은 정보가 출력 되더군요..
    감사합니다.

    • 서진우 말해보세요:

      fuse 도 파일시스템에 접근하는 프로세스를 죽일때 사용하는 대표적인 방법 중
      하나입니다. fuse -u 옵션을 사용하면, 프로세스와 사용자정보까지도 나오죠.
      losf 는 파일시스템 접근하는 프로세스를 찾는 용도 외에 특정 프로세스가
      잡고 있는 파일들이나, 현재 오픈된 네트워크 포트와 해당 포트를 이용하는
      프로세스까지 추척이 가능합니다.

      lsof -p : 프로세스가 잡고 있는 파일 목록 확인
      lsof -i : 현재 open 된 port 와 해당 프로세스명과 PID 확인

      이밖에도 매우 많은 옵션들과 기능이 있죠. 시스템 상태를 확인하고, 원인을
      분석, 추적하는데 사용되는 대표적인 명령입니다.

      시스템 관리자라면 반드시 알아야 하는 명령 중 하나이죠.
      수고하세요.

  2. 서진우 말해보세요:

    nfs mount 의 경우 가끔 위 명령으로 동작하지 않는 경우가 종종 발생한다.
    그때는 umount -l 을 사용해 보는 것도 도움이 된다.

김동욱 에 응답 남기기 응답 취소