host
06c3e172fe
fix(chv): restore 路径补 H7 net 校验+登记,seed 暂存文件走 atomic_file
restore_vm 此前既不校验 net 冲突、也不登记 net.json:
已登记 VM 的 tap/mac/ip 会被恢复出的 VM 静默复用,且
恢复出的 VM 自身不登记、后来的 wake 也看不到它,两边
都漏判。现与 wake 同款:_validate_restore 在起 VMM 前
校验冲突(net_tap_conflict + vm_failed 审计),
_restore_boot 在 restore 成功后登记 net.json,登记失败
审计 net_registry_write_failed + 拒绝恢复(P2-19 语义,
stop_vm 清半恢复 VM)。
hostkeys.write_seed/_apply_seed_extras 的 meta-data、
user-data、network-config 改走 atomic_file(mkstemp 0600
→ 写 → fsync → rename):user-data 含 host 私钥明文,
直接写 + 事后 chmod 会在 chmod 前以 umask 权限短暂可读;
半截文件本身到不了 ISO(唯一消费者 genisoimage 只在
write_seed 返回后跑),原子写同时堵住权限窗口与半截残留。
回归测试 6 个:restore 冲突拒起/恢复后登记/登记失败
拒起/无 net_json 不登记;seed 走原子写(0600、无 tmp
残留)/写失败不留半截文件。CHV 全套件 395 测试通过。
2026-11-06 19:32:41 +00:00
..
2026-10-26 16:27:42 +08:00
2026-10-26 16:47:55 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-10-30 00:49:03 +08:00
2026-10-28 12:12:10 +08:00
2026-10-30 01:55:59 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-10-29 00:19:30 +08:00
2026-10-27 16:27:50 +00:00
2026-10-27 15:53:50 +08:00
2026-10-29 07:01:57 +08:00
2026-10-30 06:00:31 +00:00
2026-10-29 05:27:22 +08:00
2026-11-06 17:59:53 +00:00
2026-10-31 06:55:26 +00:00
2026-10-31 06:55:26 +00:00
2026-11-06 19:32:41 +00:00
2026-11-06 17:43:54 +00:00
2026-11-06 17:59:53 +00:00
2026-11-06 19:32:41 +00:00
2026-11-06 16:58:27 +00:00
2026-10-31 06:55:26 +00:00
2026-11-06 18:41:50 +00:00
2026-11-06 15:34:06 +08:00
2026-11-06 15:13:23 +08:00
2026-10-27 16:27:50 +00:00
2026-11-06 17:59:53 +00:00
2026-10-29 06:32:38 +08:00
2026-10-30 01:32:35 +08:00
2026-10-28 08:57:05 +00:00
2026-10-29 02:42:52 +08:00
2026-10-30 05:11:06 +08:00
2026-10-26 03:23:06 +08:00
2026-10-26 01:32:57 +08:00
2026-10-26 10:26:21 +08:00
2026-10-30 04:17:09 +08:00
2026-10-26 06:19:01 +08:00
2026-10-30 02:53:46 +08:00
2026-10-27 16:27:50 +00:00
2026-10-29 06:32:38 +08:00
2026-10-29 16:45:07 +08:00
2026-10-27 10:56:08 +08:00
2026-10-29 16:32:58 +08:00
2026-10-29 14:21:18 +08:00
2026-10-26 08:39:57 +08:00
2026-10-28 03:43:02 +08:00
2026-10-30 02:53:30 +08:00
2026-10-30 04:05:00 +08:00
2026-10-30 01:32:35 +08:00
2026-10-30 15:39:55 +08:00
2026-10-30 07:15:05 +08:00
2026-10-28 10:13:40 +00:00
2026-10-29 04:40:47 +08:00
2026-10-30 14:46:11 +08:00
2026-10-27 19:10:49 +00:00
2026-10-26 01:23:21 +08:00
2026-10-30 12:58:41 +08:00
2026-10-27 15:35:23 +00:00
2026-10-29 16:45:07 +08:00
2026-10-26 16:27:42 +08:00
2026-10-26 16:27:42 +08:00
2026-10-26 01:32:57 +08:00
2026-10-26 23:51:54 +08:00
2026-10-26 07:42:14 +08:00
2026-10-27 15:35:23 +00:00
2026-10-29 15:31:07 +08:00
2026-10-27 16:27:50 +00:00
2026-10-29 12:42:19 +08:00
2026-10-29 06:32:38 +08:00
2026-10-27 16:37:28 +00:00
2026-10-27 14:12:28 +08:00
2026-10-27 14:12:28 +08:00
2026-10-30 13:36:24 +08:00
2026-10-30 14:27:04 +08:00
2026-10-28 22:49:06 +08:00
2026-10-26 03:23:06 +08:00
2026-10-26 16:47:55 +08:00
2026-10-26 15:20:02 +08:00
2026-10-28 11:14:10 +08:00
2026-10-27 19:10:49 +00:00
2026-10-26 17:01:47 +08:00
2026-10-29 17:46:12 +08:00
2026-10-30 04:15:54 +08:00
2026-10-28 10:12:57 +00:00
2026-10-27 03:05:15 +08:00
2026-10-30 04:18:09 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 05:11:06 +08:00
2026-10-27 19:10:49 +00:00
2026-10-28 11:09:29 +08:00
2026-10-30 02:46:37 +08:00
2026-10-27 05:40:30 +08:00
2026-10-27 01:44:53 +08:00
2026-10-27 15:53:50 +08:00
2026-10-27 15:53:50 +08:00
2026-10-29 05:41:35 +08:00
2026-10-30 15:14:37 +08:00
2026-10-26 23:17:25 +08:00
2026-10-27 16:27:50 +00:00
2026-10-26 02:46:10 +08:00
2026-10-27 15:35:23 +00:00
2026-10-26 16:47:55 +08:00
2026-10-26 06:46:20 +08:00
2026-10-29 23:16:01 +08:00
2026-10-30 14:46:11 +08:00
2026-10-27 15:35:23 +00:00
2026-10-30 07:15:05 +08:00
2026-10-30 07:08:51 +00:00
2026-10-30 06:00:31 +00:00
2026-10-27 16:37:28 +00:00
2026-10-30 06:33:25 +00:00
2026-10-27 23:09:22 +08:00
2026-10-27 04:30:43 +08:00
2026-10-27 04:40:11 +08:00
2026-10-29 06:32:38 +08:00
2026-10-27 03:17:51 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 02:25:48 +08:00
2026-10-30 00:39:13 +08:00
2026-10-28 11:14:10 +08:00
2026-10-28 11:25:17 +08:00
2026-10-27 12:58:24 +08:00
2026-10-29 06:32:38 +08:00
2026-10-26 07:24:54 +08:00
2026-10-28 04:56:22 +08:00
2026-10-27 16:37:28 +00:00
2026-10-28 05:36:18 +08:00
2026-10-28 06:10:02 +08:00
2026-10-28 04:33:20 +08:00
2026-10-30 05:11:06 +08:00
2026-10-30 14:46:11 +08:00
2026-10-26 01:23:21 +08:00
2026-10-30 01:16:49 +08:00
2026-10-28 17:14:22 +08:00
2026-10-30 01:16:49 +08:00
2026-10-28 22:17:19 +08:00
2026-10-26 06:46:20 +08:00
2026-10-27 14:12:28 +08:00
2026-10-28 11:25:17 +08:00
2026-10-30 14:46:11 +08:00
2026-10-30 01:38:01 +08:00