942 字
5 分钟
Debian 13 Cloud 镜像模板制作指南

本文介绍如何在 PVE 环境中使用 Debian 13 官方 Generic Cloud 镜像制作虚拟机模板。采用 q35 机型、UEFI 引导、串口无头显示、VirtIO RNG 硬件随机数生成器,并通过 Cloud-Init 实现自动化初始配置。

阶段一:在 PVE 宿主机解压镜像#

从官方下载镜像 https://cloud.debian.org/images/cloud/

将官方 debian-13-genericcloud-amd64-...tar.xz 上传至 PVE 宿主机(如 /root),执行解压:

Terminal window
cd /root
# 解压归档包
tar -xvf debian-13-genericcloud-amd64-*.tar.xz
# 确认解压出 disk.raw 镜像文件
ls -lh disk.raw

阶段二:命令行构建标准硬件并导入磁盘#

在 PVE Shell 运行以下命令,完成硬件装配与配置(以 VM ID 9000、存储池 local-lvm 为例):

Terminal window
# 1. 创建 VM 基础架构:q35 机型、UEFI 引导、Host CPU、串口显示 (无头)、开启 Agent
qm create 9000 \
--name "debian13-cloud-template" \
--memory 2048 \
--cores 2 \
--cpu host \
--machine q35 \
--bios ovmf \
--vga serial0 \
--serial0 socket \
--net0 virtio,bridge=vmbr0 \
--agent enabled=1
# 2. 选用单盘性能最佳的 VirtIO SCSI Single 控制器
qm set 9000 --scsihw virtio-scsi-single
# 3. 添加 UEFI 所需的 EFI 磁盘(带安全启动密钥兼容)
qm set 9000 --efidisk0 local-lvm:0,efitype=4m,pre-enrolled-keys=1
# 4. 添加硬件随机数生成器(VirtIO RNG,解决开机熵池阻塞)
qm set 9000 --rng0 source=/dev/urandom
# 5. 导入 disk.raw 到存储池
qm importdisk 9000 disk.raw local-lvm
# 6. 挂载为系统盘 scsi0,开启 IOThread 与 Discard
qm set 9000 --scsi0 local-lvm:vm-9000-disk-0,discard=on,iothread=1
# 7. 添加 Cloud-Init 驱动器
qm set 9000 --ide2 local-lvm:cloudinit
# 8. 锁定第一引导项为 scsi0
qm set 9000 --boot order=scsi0
# 9. 按需扩容系统盘(如增加 20G,总容量约 23G)
qm disk resize 9000 scsi0 +20G

阶段三:Web 控制台配置 Cloud-Init 初始化#

进入 PVE 网页控制台 → 点击 9000 (debian13-cloud-template) → 选择 Cloud-Init:

  1. User:输入你常用的管理用户名(如 debian 或 ksqeib)
  2. Password:输入用户登录密码(用于 sudo 提权)
  3. SSH Public Key:粘贴你的客户端 SSH 公钥
  4. IP Config (net0):按网络规划选择 DHCP 或配置静态 IP
  5. 点击上方 Regenerate Image 保存

阶段四:启动系统并补装 Guest Agent#

1. 启动虚拟机#

Terminal window
qm start 9000

2. 登录系统#

在 PVE 网页端打开控制台 (Console)(通过串口终端 xterm.js 直接显示登录界面),或者直接通过局域网使用前面设置的用户进行 SSH 登录:

Terminal window
ssh <你设置的用户名>@<虚拟机IP>

3. 安装 qemu-guest-agent 并清理缓存#

在 Debian 13 中,该服务由 udev 规则自动管理,只需安装,无需(也不能)执行 systemctl enable:

Terminal window
# 更新源并安装 agent
sudo apt update && sudo apt install -y qemu-guest-agent
# 确保当前会话已启动
sudo systemctl start qemu-guest-agent
# 清理 APT 缓存,减少模板占用空间
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*

此时回到 PVE 网页控制台的”概要”页面,等待几秒即可看到虚拟机的内网 IP 正常抓取。

阶段五:固化为模板#

在虚拟机内执行优雅关机:

Terminal window
sudo poweroff

在 PVE 宿主机执行模板化(或在 PVE Web 界面右键虚拟机选择”转换为模板”):

Terminal window
qm template 9000

日常克隆与使用#

后续需要建立新机器时:

  1. 右键该模板 → 克隆 (Clone) → 模式选 链接克隆 (Linked Clone)
  2. 进入新虚拟机的 Cloud-Init 页面,仅需按需改动 IP Config 或 主机名
  3. 点击启动,几秒内即可自动扩盘并上线运行

总结#

通过使用 Debian 官方的 Generic Cloud 镜像配合 Cloud-Init,可以快速构建标准化的虚拟机模板。相比传统的完整安装流程,这种方案具有以下优势:

  • 镜像小巧精简,启动迅速
  • Cloud-Init 自动化配置,无需手动初始化
  • 支持链接克隆,节省存储空间
  • VirtIO RNG 解决熵池阻塞,提升启动性能
  • 串口控制台支持,适合无头服务器环境
Debian 13 Cloud 镜像模板制作指南
https://iiii.fun/posts/linux/debian13-cloud-template-guide/
作者
庆灵
发布于
2026-10-03
许可协议
CC BY-NC-SA 4.0