때로는 다음을 제거하고 싶습니다.USB 장치하지만 오류가 umount /run/media/theDrive
발생합니다 .drive is busy
어떤 프로세스나 프로그램이 장치에 액세스하고 있는지 확인하는 방법은 무엇입니까?
답변1
lsof | grep /media/whatever
마운트를 사용하는 객체가 무엇인지 알아내는 데 사용됩니다 .
또한 umount -l
정리하는 동안 새 프로세스가 드라이브를 사용하지 못하도록 방지하려면 (지연된 마운트 해제)를 고려하십시오.
답변2
대부분의 경우 사용하기에 가장 좋은 명령은 다음과 같습니다.라소프("나나에스티오펜에프에어즈").
lsof +f -- /media/usb0
/media/usb0
마운트 해제할 USB 드라이브 또는 기타 파일 시스템의 마운트 지점은 어디에 있습니까? +f --
lsof에게 후속 인수를 마운트 지점으로 처리하도록 지시합니다. 일반적으로(항상은 아니지만) 이를 자체적으로 관리하므로 이것도 lsof /media/usb0
유효합니다. 이것은 열린 파일(링크되지 않은 파일도 포함), 메모리 매핑된 파일, 현재 디렉터리 및 좀 더 모호한 용도를 찾습니다. 다른 사용자 프로세스에 대한 정보를 얻으려면 루트로 명령을 실행해야 합니다(일부 unice는 lsof
루트로 실행해야 한다고 생각합니다).
lsof가 찾을 수 없는 몇 가지 용도가 있습니다. 이는 이동식 미디어에서는 일반적이지 않습니다. 여기에는 다음이 포함됩니다.
/foo
마운트 지점:/foo/bar
마운트 지점인 경우 마운트 해제할 수 없습니다./foo
마운트된 장치:/foo/bar
마운트된 블록 장치이거나 루프에 마운트된 일반 파일이거나 Linux 바인드 마운트의 소스인 경우 마운트 해제할 수 없습니다.- NFS 내보내기: lsof는 커널 NFS 서버 내보내기 트리를 감지하지 않습니다.
긴급 상황에 사용할 수 있는 또 다른 명령은 fusionr입니다. 이 명령은 파일이 열려 있는 장치에 있는 프로세스의 PID를 간단히 나열합니다.
fuser -m /media/usb0
답변3
파일을 열다
파일을 여는 프로세스가 일반적인 원인입니다. 보여주세요:
lsof +f -- <mountpoint or device>
/dev/<device>
사용하는 대신 사용하면 이점이 있습니다 /mountpoint
. 마운트 지점이 나중에 사라지 umount -l
거나 재정의된 마운트에 의해 숨겨질 수 있습니다.
fuser
lsof
또한 작동하지만 더 유용한 출력이 있다고 생각합니다 . 그러나 fuser
드라마를 일으키는 과정을 없애고 인생을 계속 살아갈 수 있을 때 유용합니다.
파일 나열 <mountpoint>
(위 경고 참조):
fuser -vmM <mountpoint>
쓰기 위해 파일을 연 프로세스만 대화형으로 종료합니다.
fuser -vmMkiw <mountpoint>
mount -o remount,ro <mountpoint>
읽기 전용 모드로 다시 마운트( )한 후에는 나머지 모든 프로세스를 안전하게 종료할 수 있습니다.
fuser -vmMk <mountpoint>
마운트 포인트
범인은 커널 자체일 수 있습니다. 마운트하려는 파일 시스템 위에 다른 파일 시스템을 마운트하면 umount
문제가 발생할 수 있습니다. 조사하다:
mount | grep <mountpoint>/
루프백 설치의 경우(스티븐 키트에게 감사드립니다), 다음 출력도 확인하세요.
losetup -la
익명 인덱스 노드(Linux)
익명 인덱스 노드다음을 통해 생성할 수 있습니다:
- 임시 파일(
open
포함O_TMPFILE
) - inotify보다
- [이벤트 FD]
- [사건 조사]
- [시간제 노동자]
이들은 가장 파악하기 어려운 포켓몬 유형 이며 lsof
열에 ( TYPE
a_inode
lsof
매뉴얼 페이지).
에는 표시되지 않으므로 lsof +f -- /dev/<device>
다음이 필요합니다.
lsof | grep a_inode
익명 inode를 보유한 프로세스를 종료하려면 다음을 참조하세요.현재 inotify 시계 나열(경로 이름, PID).
inotify
보기(리눅스)
이 댓글이유를 설명하다inotify
해서는 안 된다제거를 방지하지만이 메모자신이 처한 상황을 설명한다~ 할 것이다:
vx_softcnt_flush()
제거 작업 중 통화 가 중단될 수 있습니다 . 정지는 inotify watchdog이i_count
변수를 증가시키고v_os_hold value
inotify watchdog이 보류를 해제할 때까지 보류를 높게 만들기 때문에 발생합니다.
답변4
GNOME을 사용하는 경우 Nautilus를 통해 제거하면 드라이브를 아직 사용 중인 프로세스와 사용 중인 파일을 알려주는 메시지가 표시됩니다.