客户机镜像
本页说明客户机镜像包含什么、如何复用已构建的内核与磁盘,以及在需要时如何
重建和校验。第一次使用通常只需要 just build-disk。
镜像内容
内容 |
说明 |
|---|---|
操作系统 |
Ubuntu 24.04.2 LTS,x86_64 |
内核 |
Linux 6.8.0-124-generic,与导出的磁盘成对使用 |
GPU 软件栈 |
ROCm 7.0、amdgpu DKMS 模块;PyTorch 来自 rocm6.0 wheel 源 |
GPU 数据 |
MI300X VBIOS ROM 与 IP discovery 固件 |
初始化 |
|
登录 |
root 串口自动登录,供脚本与交互使用 |
配套 vHost |
|
镜像配方与 Ansible playbook 由本仓库维护在
resources/images/recipes/ubuntu/24.04/x86_64/rocm/7.0/;
recipe.toml 记录 Ubuntu 版本、内核版本、Packer 模板与导出产物。
复用预构建镜像
just build-disk # 构建内核与磁盘,并安装本地副本
just build-disk 在 build/rocm-local 生成 raw 格式产物,并把标准示例
使用的副本安装到以下位置:
产物 |
路径 |
约大小 |
|---|---|---|
磁盘镜像 |
|
55 GB |
内核 |
|
64 MB |
resources/vhosts/qemu.yaml 直接引用这两个路径,并用
modprobe.blacklist=amdgpu 让初始化服务按正确顺序加载驱动。
重新构建镜像
镜像由 Packer 启动真实 QEMU/KVM 虚拟机,再由 Ansible 安装软件包并配置 ROCm,最后导出磁盘与配套内核。重建需要:
Linux x86_64 主机与可访问的
/dev/kvm;构建与压缩至少 60 GiB 可用磁盘,以及容纳 8 GiB 构建虚拟机的内存;
QEMU、
qemu-img、Ansible、python3-tomli、curl、unzip、Perl 的shasum与 binutils;访问 Canonical、AMD、HashiCorp 与 PyTorch 软件源。
just build-rocm-assets build/rocm-custom # 生成可复用 bundle
just build-disk # 生成并安装本地标准副本
just test-rocm-assets build/rocm-custom # 校验复用与损坏拒绝
just build-rocm-assets 构建一次可复用的内核/磁盘 bundle;
just build-disk 面向标准示例安装独立副本。配方固定 Packer 与插件版本,
并校验 ISO 与 Packer 下载的摘要。
小技巧
软件包下载较慢时,可以先把构建虚拟机内的 apt 源换成可用镜像再重新执行; 输入相同的已完成产物会经过校验后被复用,不需要从头重跑。
产物清单
bundle 目录包含以下文件,供会话与校验使用:
文件 |
用途 |
|---|---|
|
直接内核启动与根磁盘,必须成对使用 |
|
源码与输入标识、构建时间、安装版本和 SHA-256 |
|
实际内核版本与系统版本 |
|
已安装软件包清单 |
|
驱动模块与 HIP 编译器版本 |
构建日志 |
Packer 与 Ansible 完整日志 |
校验与复用
清单记录输入标识与实际安装版本;输入相同的已完成产物在验证后可以复用。
镜像完整性使用
qemu-img check,raw 产物校验配对文件摘要与镜像信息。回归程序为每个用例创建独立的磁盘 overlay,避免互相污染。
校验配方:
just check-rocm-image使用真实 Packer 插件校验完整配置,just check-rocm-syntax只校验模板与 playbook,不构建镜像。CI 中的镜像构建、缓存与复用流程见 CI 与回归。
警告
随附镜像只面向 x86_64;AArch64 机器没有可引导的客户机镜像。每台机器都在
vhost 中独立选择镜像。