NAS 系统
群晖/飞牛 NAS 快照与误删秒级恢复实战:Btrfs 子卷快照、快照计划与勒索病毒防护
2026年10月21日
NAS 快照让你误删文件秒级找回,并挡住勒索病毒加密。
群晖/飞牛 NAS 快照与误删秒级恢复实战:Btrfs 子卷快照、快照计划与勒索病毒防护
摘要:文件被误删、被覆盖,或者中了勒索病毒整盘被加密,传统备份往往来不及——本文讲透 NAS 快照为什么能在数秒内还原任意历史版本,并用群晖 Snapshot Replication 与飞牛/TrueNAS 的 Btrfs/ZFS 快照给出可落地的配置步骤。
一、为什么备份救不了"刚刚发生"的事故
很多人以为做了 3-2-1 备份就高枕无忧。但备份是周期性的:你早上 3 点做了一次 rsync 镜像,中午 11 点手滑把财务表 2026Q4.xlsx 删了,或者整盘被勒索软件加密,等到晚上那次备份跑起来,覆盖掉的正是好数据。备份解决"长期容灾",快照解决"数秒到数天内的任意时间点回退"。
快照的本质是写时复制(Copy-on-Write,COW)。Btrfs/ZFS 在修改数据块时不会直接覆盖旧块,而是写入新块并更新元数据指针,旧块仍保留。所以一个快照只额外占用"被改动那部分"的空间,建千个快照也几乎不占盘。
二、确认你的存储池是 Btrfs 还是 ZFS
- 群晖:DSM 7 新建存储池默认用 Btrfs(SHR 之上),可在"存储池"里看到文件系统类型;老机型 ext4 不支持快照,需要先重建为 Btrfs。
- 飞牛 fnOS:底层即 Btrfs,原生支持快照。
- TrueNAS/极空间部分机型:用 ZFS,命令是
zfs snapshot,思路一致。
判断命令(飞牛/群晖 SSH 登录后):
# 查看某个共享文件夹所在子卷
btrfs subvolume list /volume1
# 手动创建一个只读快照
btrfs subvolume snapshot -r /volume1/homes /volume1/snapshot_20261021_001
三、群晖:用 Snapshot Replication 图形化配置
- 套件中心安装"Snapshot Replication"。
- 打开后选中共享文件夹(如
homes或document),点"设置"→"启用快照"。 - 快照计划建议:工作时段(9:00-18:00)每 1-2 小时一次,夜间每 4-6 小时;保留策略用"保留最近 24 小时每小时 + 最近 7 天每天 + 最近 4 周每周",避免快照无限膨胀。
- 高级里勾选"锁定快照",把最近快照设为不可删除,防止误操作和恶意删除。
- 还原:右键文件/文件夹→"还原到上一版本",挑选时间点即可,整个过程秒级完成。
四、飞牛/命令行:用 btrfs 定时快照脚本
飞牛目前图形界面快照能力在持续完善,也可用脚本兜底。下面是一段每天凌晨跑、保留 14 天的快照脚本:
#!/bin/bash
SRC=/volume1/document
DST=/volume1/.snapshots/document
DATE=$(date +%Y%m%d)
btrfs subvolume snapshot -r $SRC $DST/snap_$DATE
# 删除 14 天前的快照
find $DST -maxdepth 1 -name 'snap_*' -mtime +14 -exec btrfs subvolume delete {} \;
把它放进 crontab(crontab -e)每天 03:30 执行,就能得到稳定的时间机器。
五、快照挡勒索病毒的三个关键点
勒索软件会遍历所有可写路径加密文件,但它改不了只读快照。要让快照真正救命:
- 快照放在同一存储池的隐藏只读子卷(如
.snapshots),并锁定不可删。 - 不要给日常账号快照目录的写权限,专门用一个管理账户维护。
- 关键数据再做一份异地快照/复制(群晖 Snapshot Replication 可把快照推到第二台 NAS),应对整机被盗或火灾。
注意:快照在同一块硬盘上,磁盘物理损坏它也会一起没,所以"快照 + 异地备份"才是完整方案,二者不可替代。
六、误删恢复实操与小结
恢复时不要直接在原路径写回,建议先恢复到临时目录核对内容,确认无误再覆盖,避免二次污染。对数据库类文件(如 PostgreSQL 的 .sql 导出),快照时间点要和事务一致,最好在业务低峰做。
小结:NAS 快照是"时间机器",成本极低、恢复极快,是备份之外必须补齐的一道防线。配置好计划 + 锁定快照 + 异地复制,误删和勒索都不再是灾难。