答案:Linux通过LVM和Btrfs实现快照。LVM需使用lvcreate创建快照,通过lvconvert --merge恢复;Btrfs使用btrfs subvolume snapshot创建,恢复需在救援模式下替换子卷并调整挂载配置。

在Linux系统中,"快照"并不是像Windows那样由系统原生直接提供的一种功能。但通过一些底层技术,比如LVM(逻辑卷管理)或文件系统如Btrfs、ZFS,你可以实现快照的创建与恢复。下面重点介绍使用LVM和Btrfs两种常见方式来创建和恢复快照。
使用LVM创建和恢复快照
LVM是Linux中最常用的快照实现方式之一,适用于ext4、xfs等主流文件系统。
前提条件:- 系统分区使用LVM管理
- 有足够空间的卷组(VG)用于存储快照
1. 创建LVM快照
假设你的逻辑卷为/dev/vg01/root,要为其创建一个名为root-snap的快照:
lvcreate -L 1G -s -n root-snap /dev/vg01/root
- -L 1G:分配1GB空间给快照(根据原始卷写入量合理设置)
- -s:表示创建快照
- -n:指定快照名称
快照创建后,可以像普通逻辑卷一样挂载查看:
mount /dev/vg01/root-snap /mnt/snapshot
2. 恢复快照
LVM不支持直接“恢复”到快照状态,需要先卸载原始卷,再用快照覆盖:
umount /dev/vg01/root lvconvert --merge /dev/vg01/root-snap
合并操作会在下次系统重启时生效,原始卷将恢复到快照创建时的状态。
使用Btrfs文件系统创建快照
Btrfs原生支持快照功能,适合部署在/home、/ 或容器环境中。
1. 创建Btrfs子卷(可选)
若尚未使用子卷,可先创建:
btrfs subvolume create /btrfs/subvolumes/root-current
2. 创建快照
基于现有子卷创建只读或可写快照:
btrfs subvolume snapshot /btrfs/subvolumes/root-current /btrfs/subvolumes/root-backup-20250405
这会创建一个名为root-backup-20250405的可写快照。
3. 恢复系统
要恢复到某个快照状态,需从Live CD或rescue模式操作:
- 挂载Btrfs根分区
- 删除当前子卷,复制快照为新的活动子卷
btrfs subvolume delete /btrfs/subvolumes/root-current btrfs subvolume snapshot /btrfs/subvolumes/root-backup-20250405 /btrfs/subvolumes/root-current
修改/etc/fstab或引导配置确保正确挂载新子卷。
快照使用的注意事项
- LVM快照是写时复制(CoW),空间不足会导致快照失效
- Btrfs快照共享数据块,节省空间,但大量修改会影响性能
- 快照不是备份!它依赖原始数据存在,磁盘损坏会导致全部丢失
- 定期清理无用快照,避免占用过多空间
基本上就这些。选择LVM还是Btrfs取决于你的存储架构。LVM兼容性好,适合传统系统;Btrfs功能更强,适合需要频繁快照的场景。操作前务必备份关键数据,避免误操作导致系统无法启动。










