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