在虚拟机环境中试验 BTRFS。
我创建了 2 个子卷(平面结构)
ID 256 gen 13 top level 5 path @
ID 256 gen 9 top level 5 path @home
我分别安装了@
和@home
下/mnt & /mnt/home
,如下所示:
mount -o noatime,space_cache=v2,compress=zstd,subvol=@ /dev/vda3 /mnt
mount -o noatime,space_cache=v2,compress=zstd,subvol=@home /dev/vda3 /mnt/home
当我看到下面的子卷列表时,/mnt/home
我会看到两个子卷
btrfs subvolume list /mnt/home
ID 256 gen 13 top level 5 path @
ID 256 gen 9 top level 5 path @home
这是预期的行为吗?我本以为只会看到@home
我做错了什么(可能没有正确创建子卷或没有正确安装它们)?
这是预期的行为。从手册页:
因此,默认情况下,给定路径仅用于标识要检查的文件系统。
要获得更多您期望的内容,您可以使用该选项
-o
。但请注意,此选项仅打印给定路径下方的子卷,并且路径只是子卷的起始标识符。
例如,我在普通根目录之外有一个根 (/) 子卷、一个单独的 /usr 子卷和快照卷。
如果我添加
-o
标志我只得到
usr
子卷,因为它位于根目录之下。根子卷 (ID 256) 已退出,因为它是由路径标识的子卷/
,因此不在下面,并且快照 (ID 277) 已被删除,因为它是 的同级@rootfs
。让事情再次变得有点混乱,比如
即使 /usr 不低于 /var 但 /var 是 @rootfs 子卷中的路径,也会产生相同的结果。