跳到本文

计算与网络

Yaoshi

整盘安装与独立系统接管

Yaoshi 将一块明确授权的整盘安装为可独立启动的 Debian 主机。安装器在 RAM 中运行,先固定目标设备,再写入预制系统并完成离线配置。安装结果与新系统的 SSH 身份分别核验;系统交付后,更新、凭据和日常管理由操作者接管。

在多盘机器上重新安装系统 操作者核对目标磁盘与公钥,只授权本次整盘安装。另一块盘保留为独立数据见证;安装后从新系统检查根卷身份与管理权限。

从一次授权得到一台独立主机

Yaoshi 采用网络启动进入内存安装器。控制端提供启动文件、预制根文件系统和当前设备视图;终端界面负责选择机器、整盘与接管公钥。进入安装器或发现磁盘,本身都不会授权改写设备。

最终交付的是可从本地磁盘启动的 Debian 系统,包含选定软件包与原生初始化策略。安装器、控制端和界面不构成后续管理依赖;系统更新、凭据维护和日常运行由操作者接管。

四个阶段依次为 RAM 运行、整盘授权、离线安装和新系统 SSH 接管,安装结果与接管证据分别保留。
整盘安装与新系统接管,分别确认前面三个阶段在 RAM 安装环境中完成运行、目标授权和离线安装;最后从本地启动的新系统核对 SSH 身份。阶段间距不表示耗时,接管证据也不会补写丢失的安装报告。

把产品制作与目标安装分开

安装材料由两部分组成:在内存中运行的安装器,以及压缩的系统根文件镜像(Rootfs,采用 ext4 文件系统)。软件包从固定且经过认证的 Debian 输入解析;额外软件包只改变根文件镜像,可继续使用兼容的同一套安装器。

目标安装只使用已准备完整的材料,不在写盘过程中访问软件仓库,也不执行目标根目录里的程序。紧凑的根文件镜像按实际展开长度写入,新系统首次启动再由原生机制扩展文件系统。

安装产品与各自的任务
产品包含什么在何时使用
内存安装器安装代理、官方内核与匹配驱动、原生安装工具发现目标并执行本次安装。
根文件镜像(Rootfs)系统包、启动材料与原生初始化策略流式写入目标系统分区。
本次授权本次启动标识、整盘身份与接管公钥限定这次可改写的对象与接管身份。

让安装材料、整盘授权与接管凭据对应

准备安装时,操作者需要已完成的安装器与 Rootfs、当前机器的启动身份、明确的目标整盘,以及规范化的 Ed25519 公钥。公钥决定新系统接纳哪把密钥;私钥留在操作者一侧,供之后独立连接 SSH,不随安装材料下发。

目标不是一个可能变化的设备路径。确认界面中的身份、扇区与容量后,代理仍要以保留的实际设备对象核对当前磁盘。重新插拔、同名替换或占用关系变化,都不能沿用此前对另一块盘的判断。

  1. 检查完整材料

    在授权写盘前确认安装器与根文件镜像已经准备完成,并保留它们对应的内容身份。

  2. 确认本次目标

    将当前机器、整盘、公钥和破坏范围作为同一次决定审阅,再提交明确授权。

  3. 保留接管依据

    记录这次安装的预期根卷 UUID 与原启动身份,后续按该安装身份检查新系统。

在首次写盘前固定目标

界面展示完整磁盘身份、容量、扇区大小与对齐条件、公钥及数据损失范围,操作者输入指定确认文本后才提交。安装代理继续核对内核中保留的实际磁盘对象、占用与分区关系;同名设备或相近容量不能继承原授权。

安装建立 GPT 分区表、一个 EFI 启动分区(512 MiB、FAT32),以及使用剩余对齐空间的 ext4 系统分区。根系统边解压边写入,完整压缩摘要到流结束时才能确认,因此后期校验失败时旧系统可能已经被破坏。分区替换与单独的布局清理都不代表安全擦除。

  1. 预检

    核对本次启动、目标盘、公钥、容量、工具与固件条件。

  2. 写入

    建立分区,接收并核验压缩内容,记录实际写入字节。

  3. 配置

    写入本次身份与启动文件,建立明确的本地启动选择。

  4. 收尾

    完成同步、卸载与原生任务清理,才报告离线完成。

安装完成与接管成功分别确认

控制端接纳授权、安装代理开始安装、离线安装完成以及 SSH 接管,是不同观察。离线成功要求相关写入与清理结束,但还不能证明固件已启动新系统、取得新租约或允许登录。

显式接管检查连接操作者确认的当前地址,使用已授权密钥核对管理员权限(UID 0)、预期根文件系统的唯一标识(UUID),以及区别于安装器的新启动标识。已有匹配身份时,即使最终报告丢失也可以检查;检查结果仍保留离线结果原本的已知或未知状态。

已绑定的安装授权和目标身份分别连接离线安装结果与 SSH 核验,核验要求完整命令结果、UID 0、根 UUID 与新的 boot UUID。
安装结果与接管核验分别保留同一原安装授权与已观察到的目标身份支持两项独立记录:离线安装结果,以及当前 SSH 接管核验。接管核验可以在离线最终报告丢失后进行,却不能据此补写安装成功。
每个结果能够证明什么
结果含义不能据此推断
授权已接纳本次安装机会已分配安装代理已经开始写盘。
离线安装成功系统写入、配置与收尾完成新系统已经启动或可登录。
SSH 接管已验证当前进入预期新系统并取得系统管理员权限丢失的安装报告已补回。

安装报告中断后,先找回原来的事实

提交后没有收到确定答复时,先读取当前代理保留的授权,比较磁盘与公钥是否属于原决定。此时不能通过再次点击安装来“确认”上一次是否发生;每次安装器启动的一次机会,已经可能被原请求使用。

如果原安装已分配预期根卷 UUID,便可在操作者确认的当前地址执行独立接管检查。该检查只读取管理员身份、根卷 UUID 和启动标识,不修改目标系统,也不把离线阶段的失败或未知改写为成功。

  • 可以确认:当前系统与原安装身份一致

    管理员权限、预期根卷 UUID 与新的启动标识同时匹配,才能支持本次独立 SSH 接管的结论。

  • 不能推断:界面关闭即写盘已取消

    已经接纳的安装由代理继续持有。终端或控制连接消失不撤销磁盘任务,也不证明磁盘保持原状。

  • 继续核对:只有离线成功报告

    还需观察实际固件启动和独立 SSH 接管,才能知道新系统是否可以交给操作者管理。

未知结果需要现场证据

安装器每次启动只能接纳一次安装授权,预检拒绝或后续失败也不会自动获得第二次机会。终端退出、报告丢失与控制端停止不取消已经接受的磁盘任务;传输失败后必须停止后续写入并等待实际任务清理。

设计中的验证场景覆盖非目标盘字节保留、不同扇区大小与对齐条件、写入中断、固件启动和控制端停止后的 SSH 接管。它们规定需要取得哪些证据,具体机器是否满足条件仍取决于对应执行记录与实际硬件。