我是 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 中回滚的最佳实践,当回滚时,可以让我恢复到预安装系统中使用的原始字节?