功能定位:为什么要把保险库搬出本机?
SafeW 的「加密保险库」是本地 SQLite + ChaCha20-Poly1305 的复合容器,默认存放在系统级加密分区。当链上资产规模扩大、企业合规要求 3-2-1 备份,或需要将冷启动旧手机彻底离线时,把保险库完整迁移到外置硬盘成为刚需。迁移目标不仅是「复制文件」,还要保证 UID、POSIX 权限、SELinux 标签、SafeW 内部 ACL(地址簿、MPC 分片索引)全部一致,否则下次打开会提示「保险库完整性失败」。
经验性观察:在 1 TB 以上的外置 SSD 上,保险库读写延迟可下降 20% 左右(USB-C 10 Gbps 环境),但前提是硬盘本身支持硬件加密,否则失去系统级 FileVault/Android FBE 的保护,风险反而升高。
前置检查:版本、剩余空间与文件系统
1. 确认 SafeW 版本
截至当前的最新版本为 4.2.0(2026-02-26 发布)。桌面端菜单路径:Settings → About → Build Number;移动端:我的 → 设置 → 关于 → 版本号。若低于 4.1.5,请先升级,否则导出的分片格式在恢复时会提示「格式过期」。
2. 外置硬盘文件系统
SafeW 保险库单文件最大可达 8 GB(含零知识地址簿缓存)。Windows 目标盘请使用 NTFS 或 exFAT,避免 FAT32 单文件 4 GB 限制;macOS 推荐 APFS(加密);Linux 推荐 ext4 并开启 encrypt=AES256。若跨平台使用,exFAT 是唯一折中,但需额外用 SafeW 自带的「外置卷加密」再包一层,否则失去 ACL 扩展属性。
操作路径:三步迁移(桌面端示例)
- 打开 SafeW → 右上角「保险库」→「高级」→「导出可迁移包」。勾选「包含零知识缓存」与「保留 UID/GID」。
- 选择外置硬盘根目录,文件名自动生成:safew-vault-{timestamp}.swpkg。点击「导出」后,系统会计算 BLAKE3 哈希并写入同名的 .sha3 文件。
- 导出完成页面会显示「校验值」与「预计恢复时间」。复制页面底部的「权限回滚脚本」备用,文件名为 restore_ownership.sh(Linux/macOS)或 restore_ownership.ps1(Windows)。
整个流程在 USB-C SSD 上约需 3–5 分钟(经验性观察,具体因文件大小而异)。若硬盘指示灯持续闪烁超过 15 分钟,请强制退出并检查磁盘错误。
移动端差异:Android/iOS 只能「冷启动」导出
由于 Android Scoped Storage 与 iOS FileProvider 限制,移动端无法直接写入外置硬盘。官方推荐路径:先把保险库通过「局域网加密通道」传到桌面端,再由桌面端执行上述三步。具体入口:移动端 → 我的 → 保险库 →「生成一次性传输码」→ 桌面端 SafeW →「接收移动保险库」。传输码有效期 10 分钟,局域网数据使用 Noise_IK 握手,流量本身已二次加密。
权限保留:为什么一定要跑回滚脚本?
SafeW 在 Linux/macOS 端使用 0600 权限(仅拥有者读写),同时把 SELinux 标签设为 app_data_file。若直接复制,外置硬盘可能挂载为 0777,导致下次启动时「安全环境自检」失败。回滚脚本会自动执行:
chmod 600 <vault> chown $USER:$GROUP <vault> restorecon -v <vault>
Windows 版则通过 icacls 恢复「当前用户完全控制,其他账户拒绝访问」。若跳过此步,SafeW 会提示「权限过宽,已拒绝加载」,必须手动修正后才能进入钱包界面。
校验与验收:哈希、大小、时间戳三重比对
- 在外置硬盘执行:blake3 -c safew-vault-xxx.sha3,确认输出与 SafeW 导出页一致。
- 记录文件字节数,与导出页「原始大小」字段比对,差值应为 0。
- 使用 stat 查看最后修改时间,与导出完成时间误差应在 2 分钟内。
若任一环节不匹配,请重新导出,不要尝试强制加载,否则可能触发「保险库篡改计数器」,导致社交恢复难度升级(需额外 1 份好友分片)。
回退方案:如何把保险库迁回原机?
当外置硬盘需要送修或升级时,可执行「逆向导入」。路径:桌面端 SafeW →「新建保险库」→「导入可迁移包」→ 选择 .swpkg。导入前先关闭旧保险库(Settings → 保险库 → 卸载),否则会出现「UID 冲突」。导入完成后,旧文件自动重命名为 .bak,保留 7 天后由用户手动删除。
常见故障:导入时报「分片格式过期」
现象:提示「2 份分片格式过期」。原因:源保险库创建于 v4.0 之前,PBKDF2 迭代次数低于 310000。解决:用桌面端「工具箱」→「升级分片格式」先在本机完成迭代升级,再执行导出。升级过程约 30 秒,切勿强制退出,否则分片可能损坏。
不适用场景:何时别迁外置硬盘?
- 硬盘无硬件加密且需要频繁插拔公共电脑——失去系统级防护,易遭冷启动攻击。
- 团队多人共用同一硬盘——SafeW 保险库设计为单用户,UID 冲突会导致同时只能一个实例运行。
- 需要 7×24 热插拔——保险库加载后默认 30 分钟无操作自动锁定,频繁解锁反而降低体验。
最佳实践清单(可打印)
| 步骤 | 检查点 | 工具/命令 |
|---|---|---|
| 1 | 版本 ≥4.2.0 | Settings → About |
| 2 | 硬盘剩余空间 ≥2×保险库 | df -h / du -sh |
| 3 | 文件系统支持 ≥4 GB 单文件 | diskutil list / fsutil fsinfo |
| 4 | 导出后校验哈希 | blake3 -c *.sha3 |
| 5 | 运行权限回滚脚本 | ./restore_ownership.sh |
FAQ(使用 FAQPage Schema)
外置硬盘格式化成 APFS 加密后,Time Machine 还能共用吗?
可以。APFS 支持多卷分区,把 SafeW 保险库放在独立加密卷,Time Machine 使用另一卷即可,互不影响。
迁移后忘记运行回滚脚本,打不开保险库怎么办?
手动将文件权限改为 600,并用 chown 恢复当前用户为拥有者,再重新启动 SafeW 即可。Windows 用户需用 icacls 移除其他账户权限。
可以把保险库直接放在云盘同步文件夹吗?
官方不建议。云盘会修改文件时间戳,导致哈希校验失败;若必须云备份,请先关闭实时同步,导出完成后再手动上传。
总结与下一步
SafeW 保险库迁移外置硬盘的核心是「加密包 + 哈希校验 + 权限回滚」三位一体。只要版本匹配、硬盘文件系统合规、脚本不跳过,就能在 5 分钟内完成可审计的冷备份。下一步建议:把校验值打印或存入密码管理器,并在外置硬盘贴防拆标签,形成物理+数字双通道的合规闭环。
