btrfs文件系统快照的创建与恢复

子卷及挂载目录

子卷挂载目录说明
@root/根目录
@home/homehome目录
@snapshot/.snapshot用于保存快照

/var/lib/portables/var/lib/machines这两个子卷是systemd自动创建的(不知道具体作用,有知道的大佬可以科普下)

btrfs文件系统快照的创建与恢复

创建快照

根目录子卷(@root)保存到/.snapshot/root_backup

home目录子卷(@home)保存到/.snapshot/home_backup

sudo btrfs subvolume snapshot -r / /.snapshot/root_backup
sudo btrfs subvolume snapshot -r /home /.snapshot/home_backup
btrfs文件系统快照的创建与恢复

删除系统文件(破坏系统)

root账号执行

rm -rf /home/*
rm -rf /bin/*

然后系统就无法正常使用了,重启后也无法正常进入系统。

btrfs文件系统快照的创建与恢复

恢复快照

接下来进入LiveCD进行快照的恢复,这里使用的archlinux的安装镜像。

先把btrfs分区(/dev/sda2)挂载到 /mnt 目录下

mount -t btrfs /dev/sda2 /mnt

然后进入/mnt目录,查看所有子卷列表。

cd /mnt
btrfs subvolume list ./

其中@snapshot/root_backup@snapshot/home_backup就是刚才创建的快照子卷。

先删除原@root@home这两个子卷

@root子卷下还有@root/var/lib/portables@root/var/lib/machines这两个子卷,如果直接删除的话会提示子卷不为空,无法删除。

btrfs文件系统快照的创建与恢复

需要先删除@root/var/lib/portables@root/var/lib/machines这两个子卷才可以。

btrfs subvolume delete @root/var/lib/portables
btrfs subvolume delete @root/var/lib/machines
btrfs subvolume delete @root
btrfs subvolume delete @home
btrfs文件系统快照的创建与恢复

然后就可以执行快照恢复,快照恢复跟创建子卷一样(快照也是一个子卷),把快照恢复到原来的位置就可以

@snapshot/root_backup 恢复到 @root

@snapshot/home_backup 恢复到 @home

btrfs subvolume snapshot @snapshot/root_backup @root
btrfs subvolume snapshot @snapshot/home_backup @home

然后修改 @root/etc/fstab文件,修改一下子卷对应的id,先查看子卷列表。

btrfs subvolume list ./
btrfs文件系统快照的创建与恢复

@root的id是263

@home的id是264

vim @root/etc/fstab

修改 /@root/@home 对应的subvolid

btrfs文件系统快照的创建与恢复

修改保存后重启电脑就可以了。

原创文章,作者:小哆啦,如若转载,请注明出处:https://www.notevm.com/a/6633.html

(0)
小哆啦的头像小哆啦
上一篇 2022年12月7日 17:40
下一篇 2023年1月11日 12:11

相关推荐

发表回复

登录后才能评论