Timeshift¶
Timeshift 可帮助定期创建文件系统的增量快照,然后在以后恢复到这些快照,以撤销对系统的所有更改1。
它支持针对所有文件系统的 rsync 快照,也可使用 Btrfs 驱动器的内置快照功能,这需要驱动器根目录和 home 目录分别使用 @ 和 @home 子卷布局配置。
安装与基本配置¶
我的操作系统是 Arch Linux, 使用Btrfs文件系统
基本安装与配置可以参考设置 Timeshift 快照 | archlinux 简明指南
基本使用¶
可通过timeshift-gtk(Timeshift的GUI版本)查看和管理备份快照。
我个人习惯直接通过命令行使用
-
查看当前备份快照
sudo timeshift --list -
检查配置
sudo timeshift --check -
创建一个快照
sudo timeshift --create --comments "[some-infomation-here]" --tags [snapshot-tag]-
这里的
--tag参数是为方便 Timeshift 管理快照而设置的,通常有以下类型的快照类型:-
D - Daily(每日):标记为每日快照
-
W - Weekly(每周):标记为每周快照
-
M - Monthly(每月):标记为每月快照
-
H - Hourly(每小时):标记为每小时快照
-
B - Boot(启动):标记为系统启动时创建的快照
-
O - Ondemand(按需):标记为手动创建的快照(默认值)
-
-
不同的快照有不同的保留策略:
-
每日快照保留7天
-
每周快照保留4周
-
每月快照保留6个月
-
-
-
删除某个快照
sudo timeshift --delete --snapshoot [snapshoot-name]
将快照备份到外部设备¶
archlinux 简明指南的备份策略是将快照备份在本地磁盘,这样的话如果是硬盘不可拆卸的笔记本电脑,想要快速迁移整个系统的配置就需要先将快照导出到外部存储设备;然后在新电脑安装基本系统;最后通过 timeshift --restore 执行“恢复”。
注意用于导出的外部设备需要和快照的文件系统相同。
具体操作¶
导出有两种方式:
-
直接导出
-
挂载外部设备与
timeshift快照所在的分区-
可通过
--check命令查看当前快照所在的分区$ sudo timeshift --check --verbose Using system disk as snapshot device for creating snapshots in BTRFS mode Mounted '/dev/nvme0n1p6' (subvolid=0) at '/run/timeshift/1295525/backup' btrfs: Quotas are not enabled Daily snapshots are enabled Last daily snapshot is 1 hours old Weekly snapshots are enabled Last weekly snapshot is 6 days old ------------------------------------------------------------------------------ -
挂载
sudo mount /dev/nvme0n1p6 /mnt/origin sudo mount /dev/sda1 /mnt/usb -
使用
ls命令应该可以看到快照目录不同设备的快照路径可能有所差异$ sudo ls /mnt/origin/timeshift-btrfs/snapshots/ 2025-09-01_17-00-01 2025-09-08_17-00-00 2025-09-15_18-00-00 2025-09-17_19-00-00 2025-09-18_20-00-00 2025-09-19_20-00-00 2025-09-20_20-00-00 2025-09-21_20-00-01 -
使用
rsync直接复制这会把所有快照都复制过去,如果磁盘空间有限,也可以选择某个或某些快照的目录复制,或者使用下面介绍的压缩sudo rsync -aAXHv --progress /mnt/origin/timeshift-btrfs/snapshots /mnt/usb
-
-
-
压缩导出
挂载的步骤与直接导出无异,只是导出的方式有区别
压缩导出用
tar把快照文件压缩到一个压缩包中,等到要用的时候再解压sudo tar -cvpzf /mnt/usb/arch-backup-250921.tar.gz /mnt/origin/timeshift-btrfs/snapshots/2025-09-21_20-00-01压缩需要一些时间
两种方式的区别与迁移要点¶
两种方法最终的效果基本没有区别。在 Btrfs 文件系统下,快照的本质就是子卷 (subvolume),数据结构和原始目录一模一样。
-
唯一的区别就是
-
原始快照在 Btrfs 内部是写时复制 (COW)的子卷,能节省空间。
-
解压出来后只是一个普通目录,不再有 Btrfs 子卷属性。
-
-
如果目标是 恢复数据(/home、配置文件等) → 压缩和解压完全够用。
-
如果目标是 完整恢复 Timeshift 快照功能 → 解压和压缩则需要在新机器上:
-
创建 Btrfs 分区
-
解压 tar.gz 到 timeshift/snapshots/xxxx
-
再用
timeshift --restore去识别和恢复
这样效果和直接复制 Timeshift 镜像一样。
-