在 Linux 下 umount 掛載的優(yōu)盤或者移動硬盤的時候,經(jīng)常會出現(xiàn) “Device is busy” 的提示,哦~真讓人惱火,在 Windows 下的那個無法卸載移動設(shè)備的問題,竟然也竄到了 Linux 下 ……

其實,錯誤不在 WIndows 也不在 Linux,無法卸載移動設(shè)備的原因,是因為系統(tǒng)中還有程序在霸占著移動設(shè)備上的文件,如果冒然強(qiáng)制卸載,可能會導(dǎo)致數(shù)據(jù)丟失和設(shè)備損壞,“Device is busy” 是一種保護(hù)措施。
既然知道是有程序霸占,找出這個程序再處理一下就好了。 fuser 這個小程序可以派上用場,基本上每個發(fā)行版都會帶有 fuser 這個工具。
fuser 可以顯示出當(dāng)前哪個程序在使用磁盤上的某個文件、掛載點、甚至網(wǎng)絡(luò)端口,并給出程序進(jìn)程的詳細(xì)信息。
假設(shè)無法卸載的設(shè)備為 /media/USB,運行下列命令即可:
$ fuser -m -v /media/USB/
用戶 進(jìn)程號 權(quán)限 命令
/media/BAK/: galeki 335 ..c.. gqview
-m 參數(shù)表明指定的路徑是一個掛載點顯示所有使用指定文件系統(tǒng)的進(jìn)程,后面可以跟掛載點,或是dev設(shè)備 ( Thanks lisir :),-v 參數(shù)給出詳細(xì)的輸出,可以看出,原來是 gqview 這個程序還在霸占著移動設(shè)備,fuser 還給出了程序的進(jìn)程號,知道了進(jìn)程號,你就可以隨便怎么處置這個程序了。
另外你也可以添加一個 -k 參數(shù):
fuser -m -k /media/USB/
這招自動把霸占著 /media/USB/ 的程序殺死。如果你不是很明確是否要殺死所有霸占設(shè)備的程序,你還可以加一個 -i 參數(shù),這樣每殺死一個程序前,都會詢問:
$ fuser -m -v -i -k /media/BAK/
用戶 進(jìn)程號 權(quán)限 命令
/media/BAK/: galeki 371 ..c.. gqview
殺死進(jìn)程 371 ? (y/N)很順利的解決了 “Device is busy” 的問題~
推薦閱讀
阿里云磁盤擴(kuò)容教程(Linux磁盤卸載、擴(kuò)容、掛載)
操作過程:1、找到你的數(shù)據(jù)盤,按系統(tǒng)提示進(jìn)行擴(kuò)容2、重啟服務(wù)器3、首先要終止系統(tǒng)正在運行的程序,這點很重要,否則后繼的操作無法成功終止以下程序如:nginx、apache、m>>>詳細(xì)閱讀
本文標(biāo)題:取消掛載 umount 時出現(xiàn)的 “Device is busy”
地址:http://www.tjyalang.cn/jishu/diannao/300858.html