我已將磁碟機分為兩個 btrfs 分割區:一個安裝為/ (dev/sda1)
,第二個安裝為/home (/dev/sda2)
。
我製作了最初的快照/home
:
mkdir -p /home/snapshots/mnt
mount -o subvolid=0 /dev/sda2 /home/snapshots/mnt
btrfs subvolume snapshot /home /home/snapshots/mnt/snapshots/init
之後,我將init
快照設為預設值並重新啟動系統。因為我希望init
快照保持乾淨,所以我決定製作它的快照並將其命名為current
:
mount -o subvolid=0 /dev/sda2 /home/snapshots/mnt
btrfs subvolume snapshot /home /home/snapshots/mnt/snapshots/current
它有效,但在創建current
預設子卷並重新啟動系統後,我注意到這ls
給/home/snapshots
了我意想不到的結果:
# ls /home/snapshots
init mnt
# ls /home/snapshots/init
#
問題是:為什麼該init
資料夾可見?我的直覺是init
快照是在 id 0 的子卷上創建的,並且應該只能從那裡可見。
答案1
製作給定子磁碟區的快照時,其中包含的所有子磁碟區(從附加到檔案樹中的意義上來說)將被視為空目錄。因此就有了這樣的行為。您可以將它們從快照中刪除,這裡不會丟失資料:)