Files
calculet-npu-research-archive/reports/Calculet-NPU-远端恢复原状计划-20260801.md

6.8 KiB
Raw Permalink Blame History

Calculet NPU 远端恢复原状计划

制定时间:2026-08-01

状态:已于 2026-08-02 00:54 执行完成并通过独立验收。本文件保留为清理前计划和基线;实际结果见 Calculet-NPU-远端与本机清理完成记录-20260802.md

恢复目标

  1. 删除本次在样机生成的全部归档、分片、清单和分析源码。
  2. 删除本次环境盘点写入的 Shell 历史,同时保留对方原有历史和后续新增历史。
  3. 确认没有遗留下载、模型服务、测试程序、端口监听或 NPU 设备占用。
  4. 不修改对方原有容器、镜像、驱动、系统服务和用户配置。
  5. 回收约 90 GiB 磁盘空间,并给出清理前后审计记录。

当前恢复基线

  • 远端归档目录:/home/user2/calculet-analysis-export
  • 精确占用:96,590,271,861 字节,共 4,883 个文件
  • 根文件系统:总计 982,240,026,624 字节,已用 246,533,816,320 字节,可用 685,735,694,336 字节
  • Shell 历史:/home/user2/.bash_history
  • Shell 历史当前状态:69 行、权限 600、所有者 user2:user2
  • 本次新增历史范围:第 53-69 行
  • 第 53-69 行 SHA-256a5cc09c89ea56d8c79a1be6da9f402d13d9d74ecace8f25918f19601cac4eb36
  • 对方原有历史范围:第 1-52 行
  • 历史文件 mtime2026-08-01 16:26:26 +0800
  • 当前没有 NPU 设备占用、8031 监听或模型服务进程
  • 原有命名容器 calculet-llama-v0.4.8_Qwen 仍为 created 状态

清理前置条件

以下条件必须全部满足:

  1. 项目负责人明确确认可以开始删除远端暂存资料并处理 shell 历史;全部资料已取回不等于自动授权删除。
  2. 已批准范围内的所有归档都存在本地完成标志,并通过分片、整包和必要的逐文件 SHA-256 校验。
  3. 当前已批准的优先第 1-4 步完成标志存在:remote-export/PRIORITY-1-4-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt
  4. 当前四个优先归档已按 LOCAL-PRIORITY-1-4-ARCHIVES.sha256 复核通过。
  5. llama.cpp 已通过 git fsck --fullHEAD 为 fd9bd632f346085920d523dd307a3e4c11cc0a05
  6. 容器 /home 完成标志 remote-export/STEP-5-CONTAINER-HOME-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt 存在,整包校验通过。
  7. OCI 完成标志 remote-export/STEP-6-CONTAINER-OCI-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt 存在,整包、25 个 blob 和所有描述符引用通过。
  8. 完整模型完成标志 remote-export/STEP-8-COMPLETE-MODEL-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt 存在,68 个文件已按 MODEL-FILES.sha256 自动和独立复核两次。
  9. 本地输出目录已有至少一份额外备份,或者项目负责人明确接受单副本风险。
  10. 已通知后续测试同事清理时间窗,避免清理时仍有人使用相同账号。

任一条件不满足时,不删除远端归档。

执行阶段

阶段 1:停止传输并固定状态

  • 暂停并结束本地 detached screen 下载任务。
  • 确认远端不存在指向 calculet-analysis-export 的 rsync sender。
  • 保存清理前 df、进程、端口、Podman、驱动参数和 NPU 设备占用快照。
  • 再次记录待删除路径的大小、所有者、权限和文件数。

阶段 2:安全处理 Shell 历史

不能直接截断 .bash_history,因为后续同事可能已经追加新命令。应执行以下保护逻辑:

  1. 重新计算当前第 53-69 行 SHA-256。
  2. 只有指纹仍为 a5cc09c89ea56d8c79a1be6da9f402d13d9d74ecace8f25918f19601cac4eb36 时才自动处理。
  3. 原样保留第 1-52 行。
  4. 删除第 53-69 行。
  5. 原样保留第 70 行及之后由其他同事新增的历史。
  6. 通过同目录临时文件和原子重命名更新,恢复 600user2:user2
  7. 如果行号或指纹不匹配,立即中止并人工比对,不做猜测性修改。

阶段 3:删除本次远端持久文件

精确清理范围:

  • /home/user2/calculet-analysis-export
  • /home/user2/llama.cpp-src-fd9bd632.tar.gz
  • /home/user2/calrt-focused-src-fd9bd632.tar.gz
  • /home/user2/calbin_inspect.cpp

不得使用 /home/user2/home 或包含通配符的宽范围删除命令。删除前必须逐项 stat 并确认所有者为 user2

阶段 4:远端恢复验证

  • 上述四个目标均不存在。
  • 归档相关 rsync、tar、zstd、split 和 sha256sum 进程为 0。
  • llama-servercalrt_smokecalbin_inspect 进程为 0。
  • 8031 端口未监听。
  • /dev/calculet0 无进程占用。
  • 原有命名容器仍为 created,镜像 ID 未变化。
  • 驱动参数保持:poll_mode=0dma_timeout_ms=30000strict_validation=Ycalculet_log_level=6max_boards=16
  • 用户 crontab 仍为空,系统包数据库未因清理发生变化。
  • 对比清理前后磁盘空间,预期回收约 90 GiB。

阶段 5:测试方本地凭据与网络清理

远端验收完成后,再处理测试方 Mac

  • 正常停止 OpenVPN,确认 utun 路由消失。
  • 删除临时 VPN 配置、认证文件和日志。
  • 删除包含 SSH 明文密码的本地 Expect 包装器。
  • 删除样机 SSH known_hosts 记录前先确认后续不再需要连接。
  • 仅在确认 OpenVPN 是本次专用安装且没有其他项目依赖时,才卸载本地 OpenVPN。
  • 保留已验证的本地分析包、报告和校验记录。

清理完成记录模板

执行时应补充:

  • 执行人和时间
  • 本地归档验证标志及 SHA-256 结果
  • Shell 历史处理前后行数和指纹
  • 删除的四个精确路径
  • 清理前后磁盘使用量
  • 远端进程、端口、NPU、容器、镜像和驱动参数复核结果
  • VPN 和本地凭据清理结果
  • 对方环境负责人确认结果

当前下载快照

快照时间:2026-08-02 00:35。第 1-8 步已全部完成,8 个本地归档合计 21,078,519,107 字节。

优先步骤 本地结果
关键上下文 8,942,525 B,整包及 115 个文件通过
基线分析归档 436,398,080 B53/53 分片及整包通过
无权重模型运行时 11,253,912 B,整包及 66 个文件通过,权重计数为 0
完整 llama.cpp 264,921,801 B32/32 分片、整包、HEAD 和 git fsck --full 通过
容器完整 /home 740,994,223 B89/89 分片、整包、gzip/tar 结构和解包通过
完整 OCI 镜像 1,646,166,016 B197/197 分片、整包、25 个 blob 和描述符引用通过
完整 /home/user2 1,684,911,580 B201/201 分片、整包、结构和查看副本通过
完整模型归档 16,284,930,970 B1,942/1,942 分片、整包及 68 个模型文件两轮通过

最终总标志 remote-export/ALL-REQUESTED-DATA-ASSEMBLY-AND-VERIFICATION-COMPLETE.txt 已生成,8 个归档统一清单 LOCAL-ALL-DOWNLOADED-ARCHIVES.sha256 全部匹配。当前远端没有 rsync sender 或运行容器,VPN、远端暂存目录和本地凭据继续保留,尚未进入清理阶段。