准备本地产物¶
多数 hypervisor 无法直接启动 .qcow2,需要先转换磁盘格式。与 hypervisor 无关的
prepare 命令会选择已下载镜像,用 qemu-img 转换成客户机磁盘,再用
genisoimage、xorriso、mkisofs 中首个可用的工具把 NoCloud seed 打包成卷标为
CIDATA 的 ISO:按 [cloudinit] 配置生成的 user-data/meta-data,以及一份
DHCP network-config(Debian cloud image 不会自动生成网络配置,缺了它网卡不会被
配置)。两个产物与源镜像同目录存放,仅后缀不同:
# debian-13.qcow2 -> debian-13.vdi + debian-13.iso
qm-template prepare debian-13
# 其他 hypervisor:vmdk(VMware/VirtualBox)、raw 或 vhdx(Hyper-V)
qm-template prepare --format vmdk debian-13
# 覆盖 seed 中记录的主机名
qm-template prepare --vm-name debian-13-vbox debian-13
# 仅预览所有命令,不执行、不写入
qm-template prepare --dry-run debian-13
支持的格式为 vdi(默认)、vmdk、qcow2、raw 和 vhdx,后缀随格式变化。
源镜像是 .qcow2 时选择 qcow2 会被拒绝,因为会覆盖源镜像。VirtualBox 中把
.vdi 挂为 SATA 硬盘、把 seed ISO 挂为 CD-ROM 即可。请使用
generic/genericcloud 变体:Debian 的 nocloud 变体不运行 Cloud-Init。
与 create 相同,prepare 也要求至少一种登录方式:一个 SSH 公钥或密码。只配置
密码时 seed 启用密码登录。已存在的客户机磁盘会保留,只重建 seed ISO
(转换开销大、而 seed 由 [cloudinit] 配置决定);需要重新
转换时传入 --force/-f。