때로는 장치를 제거하고 싶을 때도 있습니다.
sudo umount /dev/loop0
메시지를 받겠습니다
umount: /mnt: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
나는 보통 콘솔 창(내 경우에는 xfce4-terminal)을 닫고 umount
.
이 질문은 무엇을 의미하나요? 더 똑똑한 솔루션이 있습니까?
답변1
이는 프로세스가 마운트 지점 아래에 작업 디렉터리나 열린 파일 핸들을 가지고 있음을 의미합니다. 가장 좋은 방법은 제거하기 전에 문제가 있는 프로세스를 종료하고 작업 디렉터리를 변경하거나 파일 핸들을 닫는 것입니다.
그러나 Linux에는 대안이 있습니다. umount -l
"게으른" 제거 에 대한 호출을 사용하십시오 . 파일 시스템은 계속 마운트되지만 이미 사용 중인 프로세스를 제외하고는 이를 보거나 사용할 수 없습니다. 문제의 프로그램이 어떤 방법으로든 종료되면 시스템은 파일 시스템 마운트 해제를 "완료"합니다.
답변2
fuser
마운트된 파일 시스템을 사용하여 모든 프로세스를 종료할 수도 있습니다 .
fuser -cuk /mnt
옵션:
-c
Same as -m option, used for POSIX compatibility.
-u, --user
Append the user name of the process owner to each PID.
-k, --kill
Kill processes accessing the file. Unless changed with -SIGNAL, SIGKILL is sent. An fuser process
never kills itself, but may kill other fuser processes. The effective user ID of the process
executing fuser is set to its real user ID before attempting to kill.kill.
-m NAME, --mount NAME
NAME specifies a file on a mounted file system or a block device that is mounted. All processes
accessing files on that file system are listed. If a directory file is specified, it is
automatically changed to NAME/. to use any file system that might be mounted on that directory.
직접 확인해 보세요쉘 해석.
답변3
기기 제거에 방해가 될 수 있는 상황을 발견했는데, 오래된 질문이지만 답변으로 공유해드리겠습니다.
컴퓨터에 NFS 공유가 호스팅되어 있고 이러한 NFS 공유가 마운트 해제하려는 장치에 의해 지원되는 경우 공유를 중지해야 합니다. sudo service nfs-kernel-server stop
최신 버전 과 같이 NFS 서비스를 중지하는 것이 가장 좋습니다. 우분투 상급) ). NFS 서버가 lsof 또는 fusionr에 표시되지 않아 문제를 식별하기 어려울 수 있습니다.
답변4
"일반적인 솔루션"을 고려하면 이는 콘솔 창에서 실행하는 셸에 해당 장치의 파일 시스템에 있는 디렉터리가 현재 작업 디렉터리로 있음을 의미합니다.
일반적으로 Linux 및 Unix 시스템은 프로세스의 파일 시스템에 현재 작업 디렉터리가 있는 경우 파일 시스템을 마운트된 상태로 유지하는 것을 강력히 선호합니다.
콘솔 창과 그 안에서 실행 중인 셸을 종료하는 대신 cd
콘솔 창에서 이를 사용하여 그 안이나 아래의 디렉터리를 종료 할 수 있습니다 ./mnt