【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

相关推荐
FLGB8 分钟前
Docker网段和服务器内部网段172.17 网段冲突导致网络不通
服务器·网络·docker
LaoWaiHang28 分钟前
Linux基础知识13:用户、用户组管理
linux
星夜落月1 小时前
Web-Check部署全攻略:打造个人网站监控与分析中心
运维·前端·网络
每次学一点1 小时前
【ZeroTier自研之路】planet的组成
服务器·网络·数据库
Turboex邮件分享1 小时前
邮件投递全流程故障排查手册
运维·人工智能
hwj运维之路1 小时前
超详细ubuntu22.04部署k8s1.28高可用(二)【结合ingress实现业务高可用】
运维·云原生·容器·kubernetes
Coder个人博客1 小时前
Linux6.19-ARM64 mm init子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
济6172 小时前
ARM Linux 驱动开发篇----Linux驱动开发与裸机开发的区别---- Ubuntu20.04
linux·arm开发·驱动开发
慎思知行2 小时前
Discord中创建机器人的流程
linux·服务器·机器人
enbug2 小时前
编译安卓内核:以坚果R1、魔趣MK100(Android 10)系统为例
android·linux