現在 Linux 環境中掛載外接的設備越來越方便,支援度也越來越高,很多設備接上後直接自動 mount 上來,不需要在系統中慢慢找尋和掛載。接上設備很方便但往往在移除卸載時,有可能發生 Divice is busy 的狀況,可能有程式或是使用者正在使用,我們會擔心如果沒有正確移除設備,可能會造成資料的遺失資料的遺失或是資料可能會不完整。
要如何解決這樣的問題,讓我們可以卸載設備?
在安裝 Linux 時,就有支援 fuser 這個指令,這是用檔案或是檔案系統來找出使用者或程序的指令,詳細的使用參數可以在系統中 man 一下或是參考鳥哥網站的說明。
顯示的內容除了程序名稱,還會有 process id,有了 PID 就可以用其他指令來 kill 佔用的程序。 如果要查詢時一併馬上刪除佔用的程式,可以直接在加上 -k 這個參數。
要如何解決這樣的問題,讓我們可以卸載設備?
在安裝 Linux 時,就有支援 fuser 這個指令,這是用檔案或是檔案系統來找出使用者或程序的指令,詳細的使用參數可以在系統中 man 一下或是參考鳥哥網站的說明。
# fuser -m -v /mnt/mymount (mount point)
-m: 顯示所有使用檔案或檔案系統的程序,後面可以接掛載點或設備。
-v: 列出詳細資訊
顯示的內容除了程序名稱,還會有 process id,有了 PID 就可以用其他指令來 kill 佔用的程序。 如果要查詢時一併馬上刪除佔用的程式,可以直接在加上 -k 這個參數。
# fuser -m -v -k /mnt/mymount (mount point)
如果擔心這樣刪除太狠了,可以再加上 -i 這個參數,在刪除前先跟下指令的使用者確認一下。# fuser -m -v -k -i /mnt/mymount (mount point)
(-i 需要和 -k 相互配合使用)
先處理佔用卸載資源的程序後,我們就可以安全的卸載和移除硬體了。
留言