This repository has been archived on 2026-08-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
pve_toss_notes/04.PVE创建模板虚拟机.md
T
2025-12-27 18:55:24 +08:00

302 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 0.前期准备
将虚拟机制作成模板,可在后续新建虚拟机时快速从模板中创建,减少系统安装配置时间。
该虚拟机模板主要用作内网 DNS 服务器,由 `Adguard Home``SmartDNS` 提供 DNS 解析服务。
本文将使用 Debian 的云镜像 `debian-13-generic-amd64.qcow2` 作为模板虚拟机的镜像。
访问 [Debian Official Cloud Images](https://cloud.debian.org/images/cloud/) 官方网站,下载最新版 `Trixie` 云镜像以及对应的校验文件。
![下载镜像](img/p04/download_generic_image_qcow2.jpeg)
## 1.创建虚拟机
登录 PVE 管理后台,点击页面右上角 `创建虚拟机` ,进入虚拟机创建流程。
### 1.1.常规
勾选底部 `高级` 选项,显示完整的配置参数,节点即 “本机” ,`VM ID``名称` 可自定义。
![虚拟机名称](img/p04/vm_id.jpeg)
### 1.2.操作系统
无需使用任何安装介质,客户机操作系统类别选择 `Linux` 版本选择 `6.x - 2.6 Kernel` 即可。
![虚拟机操作系统](img/p04/vm_os.jpeg)
### 1.3.系统
SCSI 控制器保持默认 `VirtIO SCSI single` ,机型可选 `q35` ,并勾选 `Qemu代理` 选项。
固件可选 `OVMF (UEFI)` ,并勾选 `添加 TPM` 选项,存储路径需根据实际情况进行调整,演示为 `local-lvm`
`预注册密钥` 可启用,启用后将预装特定于发行版和 Microsoft 标准的安全启动密钥。
![虚拟机系统](img/p04/vm_system.jpeg)
### 1.4.磁盘
因使用 Debian 云镜像制作虚拟机模板,此处需删除所有 `磁盘`
![虚拟机磁盘](img/p04/vm_hd.jpeg)
### 1.5.CPU
CPU `类别` 选择 `host` `插槽``核心` 数根据物理 CPU 核心数进行酌情设置。
若 PVE 服务器内有多颗物理 CPU ,则推荐勾选 `启用NUMA` 选项。
![虚拟机CPU](img/p04/vm_cpu.jpeg)
### 1.6.内存
内存一般 `2G` 足够使用,取消勾选 `Ballooning设备`
对于 `Kernel Samepage Merging (KSM)` 内核同页合并功能,建议保留勾选状态。
![虚拟机内存](img/p04/vm_mem.jpeg)
### 1.7.网络
通常情况下,模板虚拟机的 `桥接` 参数设为 PVE 管理口所在虚拟网桥即可。
因在 [02.PVE初始化配置](./02.PVE初始化配置.md) 中曾创建未桥接物理网口的内部网桥,故可根据实际需求选择是否使用纯内部网桥作为该参数值。
![虚拟机网口](img/p04/vm_network_port.jpeg)
多数情况下,无需使用 PVE 内建防火墙,因此 **取消勾选** 网络设备的 `防火墙` 选项。
推荐在 `Multiqueue` 处根据前面设置的 CPU 核心数进行网卡多队列设置,设置比例为 1:1 。
即有 n 个 CPU 核心,此处多队列也设置为 n 。
![虚拟机网卡多队列](img/p04/vm_network_queue.jpeg)
### 1.8.确认
接下来查看设置总览,确认无误后即可点击 `完成`
![虚拟机确认](img/p04/vm_confirm.jpeg)
## 2.调整硬件参数
### 2.1.删除光驱
查看虚拟机详情页,在虚拟机 `硬件` 配置页面,移除其 `CD/DVD驱动器`
![虚拟机删除光驱](img/p04/vm_delete_cd.jpeg)
### 2.2.导入镜像文件
使用终端工具登录 PVE 服务器,并进入 `/tmp` 目录,执行以下命令创建一个目录。
```bash
## 创建存放 Debian 云镜像的临时目录
$ mkdir -p /tmp/Debian
## 进入目录
$ cd /tmp/Debian
```
将 Debian 云镜像传输到该目录,并检查 `hash`
```bash
## 下载云镜像校验文件
$ curl -LR -O https://cloud.debian.org/images/cloud/trixie/latest/SHA512SUMS
## 下载云镜像
$ curl -LR -O https://cloud.debian.org/images/cloud/trixie/latest/debian-13-generic-amd64.qcow2
## 检查文件是否存在
$ ls -lah
## 显示校验文件内容
$ cat SHA512SUMS
## 计算文件 hash
$ sha512sum debian-13-generic-amd64.qcow2
```
确认无误后,将镜像文件导入刚才创建的虚拟机,命令中的 `VM ID` 需要根据实际情况替换,演示为 `1001`
```bash
## 将 qcow2 镜像导入虚拟机中
$ qm importdisk 1001 debian-13-generic-amd64.qcow2 local-lvm
#### 镜像导入示例输出
unused0: successfully imported disk 'local-lvm:vm-1001-disk-2'
```
磁盘导入成功后,虚拟机硬件列表中将显示一块未使用的磁盘设备,可鼠标 **双击** 该设备进行配置调整。
![虚拟机新磁盘](img/p04/vm_unused_hd.jpeg)
当宿主机使用 SSD 作为物理存储设备,并且虚拟磁盘采用 Thin Provisioning (精简置备)模式时,可考虑开启以下选项:
- `Discard` `丢弃` 选项,有助于存储空间回收。
- `SSD Emulation` `SSD 仿真` ) 选项,让虚拟机将虚拟磁盘视为 SSD 存储设备。
在弹出的对话框中,确认 `IO thread` 选项为 **勾选** 状态,并点击 `添加`
![虚拟机使用该磁盘](img/p04/vm_enable_hd.jpeg)
导入的镜像只有 `3G` 磁盘空间,为了后续方便使用,需要对磁盘进行扩容。
鼠标 **单击** 选中该磁盘,选择页面顶部 `磁盘操作` 菜单的子菜单 `调整大小`
![虚拟机磁盘扩容](img/p04/vm_hd_resize.jpeg)
在弹出的对话框中,给该磁盘增加 `21G` 磁盘空间。
![虚拟机磁盘增加18G](img/p04/vm_hd_scale_up.jpeg)
或使用 `qm` 命令直接将该磁盘设置为所需的目标容量。
```bash
## 将镜像容量设置为 24G
$ qm disk resize 1001 scsi0 24G
#### 镜像扩容示例输出
Size of logical volume pve/vm-1001-disk-2 changed from 3.00 GiB (768 extents) to 24.00 GiB (6144 extents).
Logical volume pve/vm-1001-disk-2 successfully resized.
```
### 2.3.添加 CloudInit
为确保 Cloud-Init 能正常初始化系统,需为模板虚拟机添加 `CloudInit 设备`
点击顶部 `添加` 菜单,选择 `CloudInit 设备`
![虚拟机添加ci](img/p04/vm_cloudinit.jpeg)
`总线/设备` 选择 `SCSI` ,编号为 `1` ,存储路径需根据实际情况进行调整,演示为 `local-lvm`
![虚拟机ci参数](img/p04/vm_ci_details.jpeg)
### 2.4.添加 VirtIO RNG
为确保系统拥有充足的可用熵,需为模板虚拟机添加 `VirtIO RNG` 熵源。
点击顶部 `添加` 菜单,选择 `VirtIO RNG`
![虚拟机添加RNG](img/p04/vm_rng.jpeg)
`熵源` 选择 `/dev/urandom` ,其余参数保持默认即可。
![虚拟机RNG参数](img/p04/vm_rng_details.jpeg)
虚拟机硬件设备修改完成后,如下图所示。
![虚拟机全部硬件](img/p04/vm_hardware_all.jpeg)
## 3.调整配置参数
进入左侧虚拟机 `选项` 页面,可以看到当前虚拟机的配置参数。
通常情况下,模板虚拟机的配置参数需要修改以下内容:
1. 开机自启动(模板无需修改,克隆的虚拟机需要修改)
2. 启动/关机顺序(模板无需修改,克隆的虚拟机需要修改)
3. 引导顺序(仅模板需要修改)
4. 使用平板指针(仅模板需要修改)
### 3.1.修改引导顺序
鼠标 **双击** `引导顺序` 选项,进入编辑界面。
`scsi0` 设备处勾选 “已启用” 复选框,并通过排序功能将其拖拽至首位,点击 `OK` 即可。
![虚拟机引导顺序](img/p04/vm_boot.jpeg)
### 3.2.设置平板指针
关闭 `使用平板指针` 选项,可以一定程度上降低虚拟机的 CPU 使用率。
![虚拟机平板指针](img/p04/vm_tablet.jpeg)
## 4.设置 Cloud-Init
进入左侧虚拟机 `Cloud-Init` 页面,可以看到当前虚拟机的初始化参数。
### 4.1.自动配置 IPv6
根据之前的网络规划,内网的 IP 地址段为 `172.16.1.0/24` ,因此模板虚拟机的参数如下。
|参数|值|说明|
|--|--|--|
|用户|`fox`|新系统的管理员账户|
|密码|`********`|使用强密码|
|DNS 域|`fox.internal`|内网域名(可选)|
|DNS 服务器|`172.16.1.1`|本机 DNS 服务器|
|SSH 公钥|`无`|使用秘钥登录服务器,暂不使用|
|升级程序包|`是`|启动时更新软件包,保持默认即可|
|IP 配置 (net0)|`ip=172.16.1.250/24,gw=172.16.1.1,ip6=auto`|模板的 IP 设置|
**额外说明:**
1. 修改 `Cloud-Init` 参数时,需要在虚拟机关机情况下修改才会生效。
2. `DNS服务器` 参数支持输入多个 IPv4 / IPv6 地址,使用空格隔开。
3. 当前 `DNS服务器` 参数为主路由 LAN 口 IPv4 地址,确保虚拟机能正常联网。
![CI网络配置](img/p04/vm_ci_dns.jpeg)
`Cloud-Init``IP 配置` IPv4 使用 `静态` 地址,IPv6 使用 `SLAAC` 自动配置,如下图所示。
![CI网络配置](img/p04/vm_ci_network_slaac.jpeg)
### 4.2.手动配置 IPv6
当主路由配置了 IPv6 ULA 网段,且希望指定内网 DNS 服务器的 IPv6 ULA 地址时,需要调整 `Cloud-Init` 参数。
本文 IPv6 ULA 演示地址段为 `fdac::/64` `DNS 服务器``IP 配置` 参数调整如下。
|参数|值|说明|
|--|--|--|
|DNS域|`fox.internal`|内网域名(可选)|
|DNS服务器|`172.16.1.1 fdac::1`|本机 DNS 服务器|
|IP配置(net0)|`ip=172.16.1.250/24,gw=172.16.1.1,ip6=fdac::fa/64`|模板的 IP 设置|
`DNS 服务器` 参数中需要加入主路由 LAN 口 IPv6 ULA 地址。
![CI网络配置](img/p04/vm_ci_dns_ula.jpeg)
`IP 配置` 参数,IPv4 使用 `静态` 地址,IPv6 同样使用 `静态` 地址,如下图所示。
IPv6 使用 `静态` 地址后,并不影响虚拟机通过主路由获取 IPv6 GUA 公网地址。
![CI网络配置](img/p04/vm_ci_network_static.jpeg)
## 5.设置备注信息
进入左侧虚拟机 `概要` 页面,修改虚拟机的备注信息。
```bash
### 服务器信息
- 系统: Debian 13
- 用途: 内网 DNS 服务器 ( 模板 )
- 自启: 否
- 用户: fox
- IPv4 172.16.1.250/24
- IPv6 SLAAC
```
![虚拟机备注](img/p04/vm_notes.jpeg)
至此,模板虚拟机创建完成,可将该虚拟机开机。