![在 Linux 中延遲卸載或卸載繁忙的磁碟](https://rvso.com/image/1311339/%E5%9C%A8%20Linux%20%E4%B8%AD%E5%BB%B6%E9%81%B2%E5%8D%B8%E8%BC%89%E6%88%96%E5%8D%B8%E8%BC%89%E7%B9%81%E5%BF%99%E7%9A%84%E7%A3%81%E7%A2%9F.png)
我讀到可以透過使用“惰性”選項來“卸載”繁忙的磁碟。線上說明頁對此有這樣的說法:
umount - 卸載檔案系統
-l 延遲卸載。現在將檔案系統從檔案系統層次結構中分離出來,並在檔案系統不再繁忙時立即清除對檔案系統的所有參考。此選項允許卸載“繁忙”的檔案系統。 (需要內核 2.4.11 或更高版本。)
但這有什麼意義呢?我考慮了為什麼我們要卸載分區:
- 移除硬體
- 在安裝時對檔案系統執行不安全的操作
在這兩種情況下,恕我直言,所有「惰性」卸載都會使確定磁碟是否確實已卸載以及您實際上可以繼續執行這些操作變得更加困難。唯一的應用程式umount -l
似乎是讓沒有經驗的用戶「感覺」他們已經實現了他們沒有實現的目標。
為什麼要使用惰性卸載?
答案1
假設您確實需要變更某個軟體(例如 Web 伺服器)寫入日誌的容量,但它的流量很大,無法關閉該操作,也無法變更日誌記錄路徑。
透過延遲卸載,您可以在軟體仍在運行時安全地卸載卷,將另一個卷安裝到同一安裝點並命令軟體重新開啟檔案。
理想情況下,由於您不需要關閉軟體,因此不會丟失任何請求,基本上也不會丟失日誌條目,因為它們仍然被寫入舊安裝,直到重新開啟檔案(軟體處理重新開啟檔案的情況如何)檔案由軟體決定)。
解釋一下線上幫助頁,這意味著如果該卷在延遲卸載時有打開的文件,那麼實際上它仍然處於裝載狀態,但只是無法通過文件系統訪問,並且只有在關閉最後一個打開的文件時才真正解除安裝.
答案2
因為你很懶 - 你想在磁碟操作完成後卸載。
這是一個可能的場景:
您用來rsync
執行備份並走開。您可以umount -l
連接驅動器,一旦完成複製和同步,它就會卸載,這樣當您休息後回來時(您知道這將比備份花費更長的時間),您只需拔下驅動器即可,而不必再次擺弄鍵盤。
答案3
這樣做其實是為了在行政工作中爭取更多的時間來做後續工作。
如果與此無關的其他任務正在管道中等待,那麼您可以延遲卸載並繼續處理批次中的其他任務。
例子:任務 1 和任務 2 是兩個連續安排的管理任務。
任務1每日備份
此操作將大量檔案從專案分割區複製到備份分割區,例如 /mnt/backupProj,該分割區將動態安裝並在此任務結束時卸載。
任務2更新 SQL 視圖
在專用伺服器上執行一系列資料庫視圖更新。
任務 2 顯然完全獨立於任務 1,因此我們可以延遲卸載 /mnt/backupProj,而無需等待備份任務完成。
答案4
考慮使用綁定安裝,就像您在使用時可能會看到的那樣chroot
:
mount --rbind /proc /mnt/proc
# do stuff
umount /mnt/proc
如果你的系統上有一個守護程序不斷地詢問/proc
(我正在看著你ksysguardd
),那麼你將無法做到umount /mnt/proc
。umount
在這種情況下,懶惰會讓你。