由于从 v1.2.0 版本开始,fnOS 存储空间引入了 Windows ACL 权限机制,系统需要对硬盘内的所有文件进行全量遍历以完成权限升级。但在实际执行中,我遇到了由于历史快照过多导致转换几乎卡死的问题,建议后续版本对此进行优化。
📊 我的设备与数据情况:
- 硬件配置: 2 块 16T 希捷银河(Seagate Exos),组 RAID 1
- 快照策略: 每 3 小时保留一份,共保留 256 份历史快照
- 实际文件量: 约 590 万个文件
❌ 遇到的严重痛点:
- 扫描极慢: 光是前期的扫描阶段就花费了整整 2 天时间。最终扫描出的文件总数高达 1,511,381,356(约 15 亿)。
- 转换卡死/预计时间极长: 进入转换阶段后,又跑了 2 天,依旧在40%的位置,连 50% 都没完成。期间速度掉得非常厉害,系统显示的预计剩余时间甚至飙升到了几千天至上万天。

💡 原因分析与优化建议: 虽然快照在物理数据上是增量的,但其目录树和指针结构(元数据)是全量的。当前的权限转换工具显然没有针对快照路径(如 .snapshots)做特殊处理,而是老老实实地把 256 个快照文件夹全部递归遍历了一遍。这直接导致 590 万的文件量被放大了 256 倍,变成了 15 亿个节点,给机械硬盘的随机 I/O 带来了灾难性的压力。
建议官方后续版本: 针对权限转换/底层升级工具进行优化。在遍历文件时,应当自动识别并跳过只读历史快照目录,或者对快照的元数据权限更新采用更高效的批量合并/挂载处理方式,避免让多快照用户陷入无法完成升级的窘境。
补充说明:
由于系统提示“转换期间请勿重启”,截止目前,我的 NAS 已经连续开机转换了一个星期,但进度一直死死卡在 40% 左右的位置,I/O 速度慢如蜗牛。并且今天发现了一个更严重的新问题:NAS 在内网已经无法 ping 通,似乎彻底失联了。
⚠️ 友情提醒: 其它如果也保留了大量历史快照的飞牛用户,在官方修复此 Bug 前,请千万不要尝试权限转换! 否则极大概率会和我一样陷入进退两难、甚至设备失联的死局。