转自: PVE 9.0 定制 Debian 13 镜像 支持 Cloud-Init 快速部署虚拟机【模板篇】,本文实操记录, 不做详细分析

安装依赖并下载原版镜像

apt install libguestfs-tools
wget -c https://cdimage.debian.org/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2

设置系统内置参数

virt-customize -a debian-13-generic-amd64.qcow2 \
  --smp 2 --verbose \
  --timezone "Asia/Shanghai" \
  --append-line "/etc/default/grub:# disables OS prober to avoid loopback detection which breaks booting" \
  --append-line "/etc/default/grub:GRUB_DISABLE_OS_PROBER=true" \
  --run-command "update-grub" \
  --run-command "sed -i 's|Types: deb deb-src|Types: deb|g' /etc/apt/sources.list.d/debian.sources" \
  --run-command "sed -i 's|generate_mirrorlists: true|generate_mirrorlists: false|g' /etc/cloud/cloud.cfg.d/01_debian_cloud.cfg" \
  --update --install "wget,curl,nano,vim,sudo,unzip,mtr-tiny,iputils-ping,bind9-host,dnsutils,net-tools,lsb-release,ca-certificates,bash-completion,fail2ban,dialog,netbase,iproute2,whois,ssh,dbus,systemd,systemd-sysv,locales,apt-utils,gnupg2,apt-transport-https,rsyslog,logrotate,less,rsync,qemu-guest-agent,haveged,systemd-timesyncd" \
  --run-command "apt-get -y autoremove --purge && apt-get -y clean" \
  --run-command "sed -i 's/^#\?\s*PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config && sed -i 's/^#\?\s*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config" \
  --append-line "/etc/systemd/timesyncd.conf:NTP=ntp.aliyun.com" \
  --delete "/var/log/*.log" \
  --delete "/var/lib/apt/lists/*" \
  --delete "/var/cache/apt/*" \
  --truncate "/etc/apt/mirrors/debian.list" \
  --append-line "/etc/apt/mirrors/debian.list:https://mirrors.tuna.tsinghua.edu.cn/debian" \
  --truncate "/etc/apt/mirrors/debian-security.list" \
  --append-line "/etc/apt/mirrors/debian-security.list:https://mirrors.tuna.tsinghua.edu.cn/debian-security" \
  --truncate "/etc/machine-id"

开始制作模版

virt-sparsify --compress debian-13-generic-amd64.qcow2 debian-13-generic-amd64-zc.qcow2

回到PVE控制台创建虚拟机, VMID建议使用比较大的值

操作系统选择不需要任何介质

系统配置选项卡中,机型选择q35, BIOS选择OVMF(UEFI),并勾选Qemu代理 ,并取消勾预注册密钥

磁盘选项把现在的删除

CPU类别建议选择 host ,如果PVE宿主机只是单路CPU, 可以不必勾启用NUMA

直接往下走

完成创建,进入下一步

导入镜像至模版

先在PVE宿主机中执pvesm status 命令来查看PVE的存储ID, 这里我的是local

刚刚创建的模版机器的VMID是20000, 那么导入命令如下

qm importdisk 20000 debian-13-generic-amd64-zc.qcow2 local --format=qcow2

完成后回到网页控制台, 在创建的模版中硬件选项卡中, 把未使用的磁盘添加进来

添加Cloud-Init设备

添加一个串行端口

接下来在选项-引导顺序中将刚刚添加的硬盘勾选并拉到第一个

转换为模版

以上操作完成后, 可以将其转换为模版

创建虚拟机

使用模版创建第一台虚拟机,右键单击刚刚创建好的模版,进行克隆,选择完整克隆

硬件选项卡中配置好分配的资源后, 在cloud-init选项卡中配置网络信息和用户密码

选项中设置开机自启即可随PVE宿主机自启动

至此, 模版制作以及虚拟机创建已经完成