在日常使用 Timeshift 管理 Linux 系统备份的过程中,可能会遇到某次快照因中断或系统异常而未能正常完成,导致该快照在软件界面中无法显示,但在文件系统中依然占据空间。这种情况下,如何安全地手动删除该快照,并确认不会影响其他快照,是很多用户关心的问题。
Timeshift 快照原理简介
Timeshift 的 RSYNC 模式使用硬链接机制来存储多个快照之间相同的文件。这意味着:
- 同一个文件可能被多个快照通过硬链接引用。
- 删除其中一个快照目录时,只会减少 inode 的引用计数。
- 只要其他快照仍在引用这些文件,数据就不会被真正删除。
硬链接的一个核心特点是:没有“原始文件”和“链接文件”的区分,所有链接对等。因此,删除某个快照中的文件,不会影响其他快照中的相同文件。
删除未完成快照的实际操作
通过命令行查看 Timeshift 快照目录:
sudo ls /timeshift/snapshots/
若发现某些目录未出现在 Timeshift GUI 中,如:
2025-08-05_21-11-59
2025-08-05_21-12-45
2025-08-05_21-29-32
可以判断这些为未完成或异常的快照。此时,可以安全地使用以下命令手动删除它们:
sudo rm -rf /timeshift/snapshots/2025-08-05_21-11-59
sudo rm -rf /timeshift/snapshots/2025-08-05_21-12-45
sudo rm -rf /timeshift/snapshots/2025-08-05_21-29-32
虽然其中大部分是硬链接文件,系统仍需处理所有目录项,因此删除过程可能较慢。尤其在文件数量极多(如含 Flatpak 或 Python 包)时,即使数据不大,系统也要逐个清理路径与 inode 引用,导致删除过程可能持续几分钟。
删除过程中断的情况分析
若删除过程中重启了系统,有可能终端未显示删除完成,但重启后快照目录已经消失。这种情况通常有两个可能:
- 删除操作已在后台接近完成,系统在关机时完成了写操作。
- 删除被中断,部分数据已被删除,剩余部分在重启后未被挂载或已被清理。
此时,只需检查 /timeshift/snapshots/ 目录,确认目标目录是否确实已消失。若目录不在,说明已删除干净,无需额外操作。
小结
- 手动使用
rm -rf删除 Timeshift 快照目录,在 RSYNC 模式下是安全的。 - 删除的是目录引用,不会影响其他快照中的共用文件。
- 删除过程可能缓慢,取决于文件数量而非体积。
- 即使中途中断,只要目录最终消失,通常不影响系统与其他快照。
如需进一步优化批量清理或自动化处理,可以编写简单脚本实现更高效的快照管理。