
在 btrfs 磁碟區上,我有一個資料夾snapshots/
,我不時在其中儲存整個磁碟區的快照。
btrfs 自動掛載所有子卷,例如。安裝頂部磁碟區後,snapshots/
將填入所有已完成的快照。
現在我想卸載 中的子卷snapshots
,留空snapshots
(當然不刪除快照)。如果我在卷上進行備份、索引或搜索,這非常有用,否則總是需要以依賴工具的方式進行限制以排除snapshots/
,這並不總是那麼容易。
由於子卷不是由核心安裝的,因此我無法使用 卸載它們mount
。如何卸載它們?
答案1
你可以組織您的 btrfs 卷以不同的方式避免這種自動安裝(透過不將 btrfs 安裝/
到您的系統上/
,而是將 btrfs 子磁碟區安裝/rootfs
到您的系統上/
。在這種情況下,只有指定的 btrfs 子磁碟區/rootfs/foo/bar
才會自動安裝/foo/bar
)。但這不是一項非常容易的任務,如果一步失敗,重新啟動電腦可能會遇到困難。
作為 umount 解決方法,我認為更簡單的方法是隱藏 subvol 的內容,snapshot
並在其上安裝一個啞掛載點。您可以透過 fstab 自動執行此操作,如下所示:
none /snapshot tmpfs defaults,size=1M,ro 0 0
要再次存取您的/snapshot
子卷,一種簡單的方法是添加特定的非自動安裝點(在本範例中為唯讀,因為您很少需要更改我們的快照):
/dev/sda2 /mnt/snapshots btrfs defaults,noauto,ro,subvol=/snapshot 0 2
注意:您也可以不隱藏快照子卷,而是為其設定特定的安全掛載選項:
/dev/sda2 /snapshots btrfs defaults,noexec,nodev,ro,subvol=/snapshot 0 2