Linux 环境下umount, 报 device is busy 的问题分析与解决方法
在Linux環境中,有時候需要掛載外部目錄或硬盤等,但當想umount時,卻提示類似“umount:/home/oracle-server/backup:device is busy”這種提示。
出現這種提示的原因可能是該文件系統處于busy狀態,不能卸載。
那么什么情況可能會導致文件系統處于“busy”狀態呢,考慮一下三種情況:
? ?1)?文件系統上面有打開的文件
? ?2)?某個進程的工作目錄在此文件系統上
? ?3)?文件系統上面的緩存文件正在被使用
?
解決上述問題的方法是,可以使用fuser命令,fuser -km /home/oracle-server/backup(掛載文件系統)。關于fuser的使用,可以通過fuser --help查看詳細參數。如下圖
我們常用到的參數有兩個:
-m? 列出所有使用該文件系統的進程
-k? 殺掉訪問該文件系統的進程
所以對于我的環境來說,命令就是fuser -km?/home/oracle-server/backup。這里要說明一下,執行這條命令時,要用正確的用戶,那怎么知道正確的用戶呢?可以查看所要umount目錄的屬性(使用ll命令查看)中的所屬用戶。
正常情況下,通過fuser命令之后,就可以使用umount命令卸載掉掛載目錄了。
?
?
補充:
1??新掛載目錄后原有目錄中文件消失?
答案是原有文件并沒有小時,只是隱藏了,看不到罷了。那這又是什么原因呢?
這個原因是由于Linux的VFS(虛擬文件系統)機制導致的,正常登錄以后,所看到的各個目錄,文件都是內核在加載時候構造在內存中的VFS目錄樹,而不是直接看到硬盤上的實際目錄樹。當你掛載某個設備到一個VFS掛載點上時(比如/home),系統就把VFS中的這個掛載點/home指向你最后所掛載的那個設備上。那么你現在訪問該掛載點時,就會看到你最后掛載在此處的設備。而之前所掛載的設備依然在那里,只不過掛載點/home已經不再指向之前的設備。所以之前的數據是被隱藏了,但并沒有刪除,若umount掛載后,數據又重新回來了。
2 思考:為什么有時候會出現掛載某個光驅后umount會出現“umount: /mnt/cdrom: device is busy”
這是由于直接將/dev/cdrom mount?到了/mnt目錄造成的。
正確掛載CD-ROM的方法應該如下:
#cd /mnt
# mkdir cdrom
# mount /dev/cdrom /mnt/cdrom
或者?
# mount /dev/cdrom /media/cdrom
直接掛載在/mnt,/media等系統目錄下,在umount時會出現出錯信息“umount: /mnt/cdrom: device is busy”的情況。
轉載于:https://www.cnblogs.com/ray-bk/p/10443492.html
總結
以上是生活随笔為你收集整理的Linux 环境下umount, 报 device is busy 的问题分析与解决方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019做的第一个艰难决定
- 下一篇: 冒泡排序和其两种优化