【Linux】PVE系统创建规范的VM模版

基于 Ubuntu Cloud Image 在 Proxmox VE 上创建一个 可用于制作模板的虚拟机
注意!如果未将 local-lvm 和 local 分区合并, --scsi0 参数的值应该是 local-lvm


Proxmox VE Linux 模板创建规范(Ubuntu 22.04 Cloud Image 示例)

1. 下载 Cloud Image

bash 复制代码
wget https://cloud-images.ubuntu.com/releases/jammy/release/ubuntu-22.04-server-cloudimg-amd64.img -P /var/lib/vz/template/iso/
  • 建议保存到 /var/lib/vz/template/iso/,方便统一管理模板。
  • Cloud Image 已经最小化,适合 Cloud-Init 和模板使用。

2. 创建虚拟机(VMID: 9000)

bash 复制代码
qm create 9000 \
  --name ubuntu-22.04-cloud-base-v1.0 \
  --memory 2048 \
  --cores 2 \
  --net0 virtio,bridge=vmbr0
  • VMID:唯一标识 VM(模板一般使用 9000+ 避免和生产 VM 冲突)
  • 内存/CPU:模板可以根据默认需求设置,克隆后可调整
  • 网卡类型 :virtio,桥接到 vmbr0

3. 导入 Cloud Image 磁盘

bash 复制代码
qm importdisk 9000 \
  /var/lib/vz/template/iso/ubuntu-22.04-server-cloudimg-amd64.img \
  local \
  --format qcow2
  • 格式 qcow2:支持快照,节省存储空间
  • 存储 local :可根据实际存储选择 local-lvm 或其他存储池

4. 配置磁盘与启动顺序

bash 复制代码
qm set 9000 \
  --scsihw virtio-scsi-pci \
  --scsi0 local:9000/vm-9000-disk-0.qcow2 \
  --ostype l26 \
  --boot order=scsi0
  • SCSI 控制器 :推荐 virtio-scsi-pci(高性能、支持热迁移和快照)
  • boot order:指定从 SCSI 磁盘启动

5. 添加 Cloud-Init 磁盘

bash 复制代码
qm set 9000 --ide2 local:cloudinit
qm set 9000 --agent enabled=1
  • Cloud-Init 磁盘:用于自动化初始化 VM(hostname、IP、SSH key)
  • QEMU Guest Agent :开启后支持 qm agent 获取信息、优雅关机、文件系统冻结

6. 启动并登录 VM(可选)

bash 复制代码
qm start 9000
qm terminal 9000
  • 进入 VM 后,可以执行以下步骤进一步规范化模板:
bash 复制代码
# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装 QEMU Guest Agent
sudo apt install -y qemu-guest-agent
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent

# 清理 Cloud-Init 信息(保证模板通用)
sudo cloud-init clean

# 清理日志和临时文件
sudo rm -rf /tmp/*
sudo rm -f /var/log/*.log

注:保持最小化系统,去除特定主机信息,提高模板通用性。


7. 关闭虚拟机并制作模板

bash 复制代码
sudo shutdown now
qm template 9000
  • VM 转为模板后,可以通过克隆创建生产 VM
  • 克隆时可以通过 Cloud-Init 自动分配 hostname、IP 和 SSH key

8.调整磁盘大小

shell 复制代码
qm resize 100 scsi0 100G

相关推荐
tritone3 小时前
使用阿贝云免费云服务器学习Vagrant,是一次非常顺畅的体验。作为一名开发者
服务器·学习·vagrant
wangjialelele3 小时前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
SAP工博科技3 小时前
SAP 公有云 ERP 多工厂多生产线数据统一管理技术实现解析
大数据·运维·人工智能
YongCheng_Liang3 小时前
从零开始学虚拟化:桌面虚拟化(VDI)入门指南(架构 + 产品 + 部署)
运维·云计算
杜子不疼.3 小时前
【Linux】库制作与原理(二):动态库的制作与使用
linux·运维·服务器
森焱森3 小时前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化
小白电脑技术3 小时前
飞牛漏洞焦虑?别瞎折腾WAF了!用Lucky五步搞定“防爬墙”
服务器·网络·安全
消失的旧时光-19433 小时前
Nginx 是什么?为什么它不写在代码里?——从 0 认识 Nginx
运维·服务器·nginx
BJ_Bonree3 小时前
4月17日,博睿数据受邀出席GOPS全球运维大会2026 · 深圳站!
大数据·运维·人工智能
RisunJan3 小时前
Linux命令-lpq(查看打印队列状态)
linux·运维·服务器