1. 下载镜像
在 https://cloud.debian.org/images/cloud/ 下载 .qcow2 ,如 https://cloud.debian.org/images/cloud/trixie/20260518-2482/debian-13-genericcloud-amd64-20260518-2482.qcow2
mkdir -p /var/lib/vz/template/qcow2
cd /var/lib/vz/template/qcow2
wget https://cloud.debian.org/images/cloud/trixie/20260518-2482/debian-13-genericcloud-amd64-20260518-2482.qcow2
sha512sum debian-13-genericcloud-amd64-20260518-2482.qcow2
2. 创建模板
2.1 新建虚拟机
- 操作系统:选择 “不使用任何介质”(Do not use any media)
- SCSI 控制器选
VirtIO SCSI single - 删除默认硬盘
- 网络选
VirtIO - CPU可选host
导入qcow2
qm importdisk 9000 /var/lib/vz/template/qcow2/debian-13-genericcloud-amd64-20260518-2482.qcow2 local-lvm
2.2 挂载硬盘
回到网页端,选中刚才的虚拟机 9000,点击 硬件 (Hardware):
点击上方的 添加 (Add) 按钮 -> 选择 CloudInit 设备 (CloudInit Drive),存储同样选择你的虚拟机存储(如 local-lvm),点击添加。
你会看到底部多了一个 “未使用的磁盘 0”(Unused Disk 0)。双击它,总线选择 SCSI,然后点击 添加 (Add)。
可选优化:
- Cache: Write Back
- 勾选 SSD Emulation
- 勾选 Discard
- 保持勾选 IO thread 和 Backup
2.3 调整启动顺序
在虚拟机 9000 的 选项 (Options) 菜单中:
- 双击 引导顺序 (Boot Order)。
- 勾选刚刚添加的
scsi0硬盘,并把它拖动到第一位(最顶上)。 - 点击确定。
编辑 QEMU Guest Agent ,设置为 Enabled
2.4 初始化脚本
点击虚拟机的 Cloud-Init 菜单,配置 IP Config 为 DHCP,未配置ipv6即禁用,点击 Regenerate Image
(若无法编辑,查看是否已经在Hardware添加了一个CloudInit Drive,Bus/Device 默认 IDE 0,Storage选择虚拟机存储卷如 local-lvm)
创建一个自定义初始化脚本
mkdir -p /var/lib/vz/snippets/
nano /var/lib/vz/snippets/vm_config.yaml
设置了时区,sshkey等。公网部署考虑额外收紧安全配置。
#cloud-config
timezone: Asia/Hong_Kong
package_upgrade: true # 可选,用于首次启动时自动升级软件包
# 定义多个用户
users:
- name: sysadmin # 第一个用户名
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL'] # 赋予完整的、免密的 root 权限
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...替换为公钥...
- name: devops
groups: sudo
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh_authorized_keys:
- ssh-ed25519 AAAAC3NzaC1...
# 强制允许 SSH 密码登录(覆盖官方镜像的默认安全策略)
ssh_pwauth: true
# 设置初始登录密码(选填,提高一点可能的维护便利性)
chpasswd:
list: |
sysadmin:第一个用户的密码
expire: False
挂载自定义配置
qm set 9000 --cicustom "user=local:snippets/vm_config.yaml"
qm cloudinit regenerate 9000
2.5 创建模板
将vm9000右键转换为模板Convert to template
3. 创建虚拟机
3.1 从模板新建虚拟机
克隆vm9000,选择 完整克隆 (Full Clone)
可选提前编辑主机名,需要创建单独的初始化脚本:
# 1. 复制一份专门给 9001 使用的配置文件
cp /var/lib/vz/snippets/vm_config.yaml /var/lib/vz/snippets/vm_9001.yaml
# 2. 向这个新文件追加一行主机名设置(注意:冒号后面有一个空格)
echo "hostname: Debian13-9001" >> /var/lib/vz/snippets/vm_9001.yaml
# 3. 将新虚拟机的 Cloud-Init 脚本指向这个专属于它的文件
qm set 9001 --cicustom "user=local:snippets/vm_9001.yaml"
# 4. 刷新 9001 的 Cloud-Init 图像
qm cloudinit regenerate 9001
或者开机后再修改
sudo hostnamectl set-timezone Asia/Hong_Kong && sudo hostnamectl set-hostname Debian13-9001
3.2 调整硬盘大小
开机前可调整vm_9001的硬盘大小。默认3GB。
这个步骤可以在虚拟机开机状态下在线进行(热扩容),但为了保险起见,建议在关键操作前先关闭虚拟机。
- 登录 PVE 管理后台,找到该虚拟机。
- 点击 硬件 (Hardware) -> 选择你需要扩容的 硬盘 (Hard Disk)。
- 点击上方的 磁盘操作 (Disk Action) -> 选择 调整大小 (Resize)。
- 在弹出的窗口中,输入你想要增加的容量(例如:输入
20表示在原基础上增加 20GB),然后点击“调整大小”。
此时,虚拟机的底层虚拟硬盘已经变大了。Resize不能用于减小硬盘。
boot后通常会自动识别扩容,查看Size是否为扩容后的正确大小:
df -h /







![表情[touxiao]-THsInk](https://www.thsink.com/wp-content/themes/zibll/img/smilies/touxiao.gif)
暂无评论内容