轉載自:http://www.jb51.net/os/RedHat/1051.html
在 Linux 下 umount 挂載的優盤或者移動硬碟的時候,經常會出現 “Device is busy” 的提示,哦~真讓人惱火,在 Windows 下的那個無法解除安裝移動裝置的問題,竟然也竄到了 Linux 下 ……
其實,錯誤不在 WIndows 也不在 Linux,無法解除安裝移動裝置的原因,是因為系統中還有程式在霸占着移動裝置上的檔案,如果冒然強制解除安裝,可能會導緻資料丢失和裝置損壞,“Device is busy” 是一種保護措施。
既然知道是有程式霸占,找出這個程式再處理一下就好了。 fuser 這個小程式可以派上用場,基本上每個發行版都會帶有 fuser 這個工具。
fuser 可以顯示出目前哪個程式在使用磁盤上的某個檔案、挂載點、甚至網絡端口,并給出程式程序的詳細資訊。
假設無法解除安裝的裝置為 /media/USB,運作下列指令即可:
$ fuser -m -v /media/USB/
使用者 程序号 權限 指令
/media/BAK/: galeki 335 ..c.. gqview
-m 參數表明指定的路徑是一個挂載點顯示所有使用指定檔案系統的程序,後面可以跟挂載點,或是dev裝置 ( Thanks lisir :),-v 參數給出詳細的輸出,可以看出,原來是 gqview 這個程式還在霸占着移動裝置,fuser 還給出了程式的程序号,知道了程序号,你就可以随便怎麼處置這個程式了。
另外你也可以添加一個 -k 參數:
fuser -m -k /media/USB/
這招自動把霸占着 /media/USB/ 的程式殺死。如果你不是很明确是否要殺死所有霸占裝置的程式,你還可以加一個 -i 參數,這樣每殺死一個程式前,都會詢問:
$ fuser -m -v -i -k /media/BAK/
使用者 程序号 權限 指令
/media/BAK/: galeki 371 ..c.. gqview
殺死程序 371 ? (y/N)