在物理机上(例如 Arch Linux)创建快照并能够回溯到某个状态,通常需要使用文件系统级别的快照功能。Btrfs 和 LVM(Logical Volume Manager) 是两种常用的支持快照功能的工具。
1. 使用 Btrfs 文件系统创建快照
Btrfs 是 Linux 的高级文件系统,支持创建和管理快照。你可以通过 Btrfs 文件系统快速创建快照,在系统出现问题时回滚到之前的状态。以下是使用 Btrfs 快照的基本步骤:
设置 Btrfs 文件系统
- 检查是否使用 Btrfs: 如果你已经在使用 Btrfs 文件系统,可以通过以下命令检查:
df -T如果某个分区的文件系统类型是
btrfs,则你可以直接使用快照功能。 - 如果没有使用 Btrfs,转换为 Btrfs:
- 若要在现有系统上使用 Btrfs,可能需要重装系统或者将现有分区格式化为 Btrfs。安装时选择 Btrfs 作为根文件系统类型。
- 你也可以在数据分区上使用 Btrfs,不一定必须重装整个系统。
创建 Btrfs 快照
-
创建快照: Btrfs 的子卷(subvolume)是其基本的管理单元,快照是针对子卷的。如果你已经有一个 Btrfs 子卷,可以用如下命令创建快照:
sudo btrfs subvolume snapshot /mnt/@ /mnt/@snapshot其中
/mnt/@是你当前的 Btrfs 子卷(通常是根分区),/mnt/@snapshot是快照所在的位置。 -
列出快照: 使用以下命令可以列出所有的子卷,包括快照:
sudo btrfs subvolume list /
恢复快照
- 恢复到快照: 假设你想从一个快照中恢复,可以挂载 Btrfs 子卷并删除当前的系统状态,再将快照恢复:
sudo mv /mnt/@ /mnt/@broken sudo mv /mnt/@snapshot /mnt/@这样,系统将会从快照恢复。
- 删除快照: 删除不再需要的快照以节省空间:
sudo btrfs subvolume delete /mnt/@snapshot
使用工具管理快照
你可以使用一些工具来更方便地管理 Btrfs 快照,比如 snapper 或 timeshift:
- Timeshift:是一个常用的快照管理工具,专为桌面用户设计,支持自动快照和恢复。
- Snapper:是另一个功能强大的快照管理工具,常用于服务器环境。
sudo pacman -S timeshift
使用 timeshift 可以自动定期创建和管理快照,出问题时通过 GUI 恢复系统非常方便。
2. 使用 LVM 快照
如果你的系统使用了 LVM(Logical Volume Manager),你可以通过 LVM 快照来实现类似功能。LVM 允许你对逻辑卷创建快照并在需要时回滚到某个时间点。
创建 LVM 快照
- 检查系统是否使用 LVM: 你可以用以下命令查看是否使用 LVM:
lsblk如果分区类型显示为
LVM,那么你可以使用 LVM 的快照功能。 - 创建 LVM 快照: 首先,查找你要对其创建快照的卷:
sudo lvdisplay假设卷组名是
vg0,逻辑卷名是root,可以使用以下命令创建快照:sudo lvcreate --size 10G --snapshot --name root_snapshot /dev/vg0/root
[!NOTE] LVM 快照的大小 仅存储从创建快照开始,到删除快照期间,原始逻辑卷的变化数据。
这个命令创建了一个名为 root_snapshot 的 10 GB 快照。
- 恢复快照: 要从快照恢复,可以使用以下命令:
sudo lvconvert --merge /dev/vg0/root_snapshot这个命令会将快照合并回原始卷,下次重启时系统会恢复到快照状态。
- 删除快照: 如果快照不再需要,可以删除:
sudo lvremove /dev/vg0/root_snapshot
Btrfs 与 LVM 的比较
| 功能 | Btrfs | LVM |
|---|---|---|
| 快照类型 | 文件系统级快照,针对子卷 | 卷级快照,针对整个逻辑卷 |
| 快照创建速度 | 快速创建和恢复 | 快照创建速度快,但恢复过程需要重启 |
| 存储空间管理 | Btrfs 支持动态调整子卷大小,具有更灵活的存储管理 | 需要手动管理逻辑卷大小 |
| 使用场景 | 更适合桌面用户和文件系统级管理 | 通常用于服务器环境,卷级快照适合大规模系统 |
| 常见工具 | Snapper, Timeshift | LVM 自带工具,配合其他管理工具如 lvcreate |