镜像管理
cargo xtask image 是 TGOSKits 统一的镜像管理命令,负责 rootfs 镜像、initramfs 和 Guest 镜像包的发现、拉取、校验、解压和扩容。它不是单独的下载脚本,而是 ArceOS、StarryOS、Axvisor 的 QEMU 运行和测试流程共同依赖的镜像基础设施:需要镜像时,axbuild 先从本地或远端注册表取得镜像元数据,将归档下载到本地 image storage 并校验 SHA-256,按需解压后把实际 .img 路径注入 QEMU 配置。
架构概览
镜像管理的数据流贯穿远端注册表、本地缓存和 QEMU 运行时三个层面。理解这条数据流有助于定位下载失败、缓存失效或路径不匹配等问题。
这些阶段各自有缓存或有效性判断,避免重复网络请求和解压:
| 阶段 | 输入 | 输出 | 缓存判断 |
|---|---|---|---|
| 注册表同步 | default.toml + includes | 本地 images.toml | .last_sync 时间戳是否超期 |
| 归档下载 | Release URL | *.tar.xz 归档文件 | 归档是否存在且 SHA-256 匹配 |
| 解压缓存 | *.tar.xz 归档 | <name>/ 解压目录 | .archive.sha256 标记是否与注册表一致 |
| 路径交付 | 解压目录 | <name>/<name>.img | 在解压目录中递归查找同名 rootfs 文件 |
源码分布: