关于 Btrfs /var 子卷的默认挂载参数

大家好,我的系统版本是 Leap 15.2

我在安装时除了手动禁用了快照外,其余保持推荐的分区配置。现在手动开启了快照:

sudo Snapper -c root create-config /

手册 中的一句话让我感到很困惑。

/var
This directory contains many variable files, including logs, temporary caches, third party products in /var/opt , and is the default location for virtual machine images and databases. Therefore this subvolume is created to exclude all of this variable data from snapshots and has Copy-On-Write disabled.

也就是说由于/var含有很多变量文件,openSUSE 创建这个子卷以将其排除在快照外,并且禁用写入时复制。

查看了etc/fstab/var并没有nodatacow挂载参数,而且根据 [这里](https://wiki.Arch Linux.org/index.PHP/Btrfs#Disabling_CoW) 的资料,目前似乎并不可能为单独一个子卷停用写入时复制。

那么手册里说的的 “并且禁用写入时复制” 究竟是如何实现的呢?如果在安装时开启了快照,/var子卷的挂载参数是什么样的呢?

把你的 /etc/fstab 贴出来看看。可能你自己在安装的时候改动了参数吧。

/                       btrfs  defaults                      0  0
/var                    btrfs  subvol=/@/var                 0  0
/usr/local              btrfs  subvol=/@/usr/local           0  0
/tmp                    btrfs  subvol=/@/tmp                 0  0
/srv                    btrfs  subvol=/@/srv                 0  0
/root                   btrfs  subvol=/@/root                0  0
/opt                    btrfs  subvol=/@/opt                 0  0
/home                   btrfs  subvol=/@/home                0  0
/boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
/boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
swap                    swap   defaults                      0  0

如上所示,/var 没有 nodatacow 挂载参数

我在安装时除了取消勾选开启快照外,没有改动其它参数。所以我的疑问是这里到底应不应该手动加上 nodatacow 挂载参数呢?如果安装的时候开启了快照会是什么样的呢?

我在英文论坛获取了答案。系统是通过给/var 加上 “C” 标志来禁用写入时复制的,而不是通过添加挂载参数。这应该等效于

chattr +C /var
2赞

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。