将子卷回滚到 btrfs 中的快照时,简单地重命名并保留旧子卷是不好的做法吗?

将子卷回滚到 btrfs 中的快照时,简单地重命名并保留旧子卷是不好的做法吗?

我是 btrfs 的新手。我正在尝试快照和回滚。我在这里阅读了答案:

我还是不明白。

我的 subvolid=0 未在启动时安装。相反,我在启动时安装了三个子卷:root/home/.snapshots。假设我创建了根的快照:

NOW=$(date +"snapshot-%d-%m-%y-%H-%M-%s")
btrfs subvolume snapshot / /.snapshots/$NOW

然后,我安装一些软件包(我在 arch 上):

pacman -S vim

我的系统发现安装不舒服,所以我想回滚到我之前制作的快照。

opts=defaults,x-mount.mkdir,compress=lzo,ssd,noatime
sudo mount -t btrfs -o subvolid=0,$opts LABEL=system /mnt/btrfs-root
cd /mnt/btrfs-root
mv ./snapshots/$NOW ./rollback-root
mv ./root ./b4-$NOW-root
mv ./rollback-root ./root
cd
umount /mnt/btrfs-root
sudo reboot now

这样,我就成功地引导到了在快照时运行的系统。

然而,我现在有了一个新的子卷,废弃的/root重命名为b4-$NOW-root.

如果我安装 subvolid=0,并尝试删除该子卷,我会收到一条错误消息。

另外,如果我查看已安装的子卷,我可以看到vim我安装在 bin 目录之一中的包。

文件系统使用的字节数似乎也增加了一倍。安装后一次,​​这是预期的,然后在我回滚后又一次。从概念上讲,我理解为什么会这样,但事实上我使用的文件系统字节增加了两倍似乎违反了我对短语“回滚”的语义理解。是否有一些在 btrfs 中回滚的最佳实践,当回滚时,可以让我恢复到预安装系统中使用的原始字节?

相关内容