在 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)很順利的解決了 “Device is busy” 的問題~
推薦閱讀
操作過程:1、找到你的數據盤,按系統提示進行擴容2、重啟服務器3、首先要終止系統正在運行的程序,這點很重要,否則后繼的操作無法成功終止以下程序如:nginx、apache、m>>>詳細閱讀
本文標題:取消掛載 umount 時出現的 “Device is busy”
地址:http://www.xglongwei.com/jishu/diannao/300858.html