在 Linux 運維中,因檔案系統被進程佔用而導致 umount 失敗是常見情況。單純加 -f 參數往往無效,本文通過實戰案例,詳細講解從嘗試普通卸載、強制卸載,到使用 fuser 與 lsof 定位佔用進程並精準釋放資源的完整流程,助你安全解決「device is busy」難題。
某線上 NFS 掛載點 /data1/img 發生存取異常,甚至 ls 都無響應,需緊急卸載。執行 umount /data1/img 提示 device is busy。
# umount -f /data1/img
umount2: Device or resource busy
umount: /data1/img: device is busy
注意: 加 -f 後建議等待 1-2 分鐘,部分情況下核心需時間處理掛鎖釋放,但若底層進程持續佔用,仍會失敗。
# fuser -cu /data1/img
/data1/img: 1757c(mysql)
-c:針對掛載點檢查-u:顯示進程擁有者確認 mysql 進程可安全重啟後,可用 fuser -k 直接殺掉佔用進程:
# fuser -ck /data1/img
/data1/img: 1757c
警告: -k 會發送 SIGKILL,未確認前請勿輕易使用,建議先手動 kill -15 優雅停止服務再卸載。
# lsof /data1/img
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 1757 mysql cwd DIR 252,1 4096 2 /data1/img
lsof 能顯示更詳細的檔案描述符類型(cwd、txt、mem 等),適合深度排查。
umount,失敗則加 -f 並等待;fuser -cu 或 lsof 找出佔用進程;systemctl stop 或 kill -15);umount 即可成功;fuser -k 或 umount -l(懶人卸載,掛載點立即釋放,資源在後台清理)。掌握這套流程,能讓你在面對頑固掛載點時從容應對,避免強制重啟帶來的資料風險。

Ubuntu 14.04 不支持 exFAT 格式 U 盤?一鍵安裝 exfat-utils 解決
Linux 無法連線 MySQL?權限設定錯誤排查與修復實戰
Linux fork() 系统调用原理与写时复制(COW)机制深度解析
Linux 透過 CPAN 安裝 Perl 模組完整指南:從基礎到 Proxy 設定
Xmanager Passive 模式無法使用:防火牆阻擋 X11 回連端口 6000 的排查與解決
Linux 環境變數管理實戰:使用 env 指令暫時清空 Bash 環境
Linux 7-Zip (p7zip) 完整安裝與使用指南:Debian/Ubuntu/CentOS/Fedora 全平台支援