linux系统盘打快照,使用Btrfs对Linux系统进行快照回滚

Btrfs 也叫成 Butter FS、Better FS 或是 B-Tree FS,它是由 Oracle 于 2007 年开始设计、开发的一个现代文件系统,它于 2009 年开始便被合并入 Linux 2.6.29 内核。Btrfs 基于 GPL 许可,由于不是十分稳定,虽然许多 Linux 发行版都对其进行了集成,但并不作为默认文件系统进行使用。Btrfs 之所以被广泛集成,因其支持磁盘快照、支持递归快照、对 RAID 的支持,支持子卷(Subvolumes),以及允许在线调整文件系统大小等优秀特性。虽然目前大多 Linux 发行版都在用 Ext4 作为主要文件系统,但将来随时有可能被 Btrfs 所取代。

Btrfs 主要被设计用于解决当前 Linux 文件系统各种「弱点」的 COW(copy-on-write)文件系统, 有望提供更好的可扩展性和可靠性,其主要开发焦点都放在了容错、修复和易于管理等方面。

接下来我将主要向大家介绍如何使用 apt-btrfs-snapshot 将 Linux 中的 btrfs 文件系统快照回滚到之前的系统状态。使用 apt-btrfs-snapshot 创建和管理文件系统快照就像其它 APT 操作一样简单,使用它我们可以轻松地恢复 btrfs 文件系统的状态。

先决条件

为了创建并使用 btrfs 恢复你的 Linux 文件系统,当然需要使用的是 btrfs 文件系统,还需要没有使用 Ext 文件系统的单独 /boot 分区,不然就没法玩了。

安装Btrfs包

条件满足之后,就使用如下命令安装 apt-btrfs-snapshot 包:

apt-get install apt-btrfs-snapshot

安装完成之后使用如下 apt-btrfs-snapshot 命令检查是否支持 btrfs 快照的创建:

apt-btrfs-snapshot supported

90a5d95111d7dcf967cbd0df3b6a78d8.png

如果满足 btrfs 文件系统的先决条件,会输出 Supported,否则会输出:

Sorry, your system lacks support for the snapshot feature

你可以使用如下命令检查 Ubuntu 上的 btrfs 子卷的默认布局:

btrfs subvolume list

使用ATP操作创建快照

为了测试回滚操作,我们先在当前系统中执行一些 apt 操作,例如 apt-get。

apt-get update && apt-get upgrade

10eee01157126a5fb578ff164baf6b1b.png

按 Y 继续执行系统升级,你会看到 apt-btrfs-snapshot 已经自动为升级之前的系统状态创建了快照。

24f6a9be579ab6faa588de4173b62c69.png

你也可以使用如下命令查看当前系统中的快照列表:

btrfs subvolume list /

apt-btrfs-snapshot list

9a03eb7621c93a6f952cadd47689824e.png

还原Btrfs快照

例如在系统升级过程中遇到了问题,我们需要恢复升级之前的系统状态,可以将 btrfs 文件系统 mount 到一个单独的位置,例如 /mnt 下进行操作。

mount /dev/sda1 /mnt

查看 /mnt 目录会输出子卷:

ls -l /mnt/

其中的 @apt-snapshot-xxx 是之前 apt 操作时的 root 文件系统快照。将当前子卷重命名为 @ 开头,再将 @apt-snapshot-xxx 重命名为为当前子卷后重启系统,即对快照进行了恢复操作。

34155a07c154fd0117cce688a4eee737.png

删除Btrfs快照

当快照恢复后,或需要腾出部分磁盘空间时,可以使用如下命令来删除快照:

mount /dev/sda1 /mnt/

btrfs subvolume delete /mnt/@_latest-root/

umount /mnt

说得直白一点,Btrfs 快照实际上就是与其它子卷进行数据共享的子卷,其使用 Btrfs 的 copy-on-write 能力共享数据和对快照进行修改,原始子卷并不可见。一旦快照创建完成,它就被视为原始文件系统的可替换版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值