尝试使用以下命令创建根子卷的只读快照
sudo btrfs sub snap -r /mnt/@ /mnt/@_20200510
导致错误消息
Create a readonly snapshot of '/mnt/@' in '/mnt/@_20200510'
ERROR: cannot snapshot '/mnt/@': Text file busy
此外,snapper 和其他备份工具也停止工作。
答案1
关闭并删除交换文件。
Linux 5.x 引入了对 Btrfs 的官方交换文件支持。不幸的是,这种支持似乎并不完整。我想发生的情况是无法对包含打开的非 COW 文件的子卷进行快照(快照?snapfleshwounded?)。在某种程度上,这是完全有道理的。另一方面,wtf。叹。
如果您想使用交换文件,我认为创建一个单独的子卷应该没问题,但是我还没有测试过这一点。否则,您确实需要在创建快照之前删除交换文件,否则该文件将被重新链接,即使您将其标记为非 COW,也不再是非 COW,并且 swapon 将无法工作。