Proxmox VE创建Linux虚拟机

前期准备

将虚拟机制作成模板,可在后续新建虚拟机时快速从模板中创建,减少系统安装配置时间。

该虚拟机模板主要用作内网 DNS 服务器,由 Adguard HomeSmartDNS 提供 DNS 解析服务。

本文将使用 Debian 的云镜像 debian-13-generic-amd64.qcow2 作为模板虚拟机的镜像。

访问 Debian Official Cloud Images 官方网站,下载最新版 Trixie 云镜像以及对应的校验文件。

下载镜像

创建虚拟机

登录 PVE 管理后台,点击页面右上角 创建虚拟机 ,进入虚拟机创建流程。

常规

勾选底部 高级 选项,显示完整的配置参数,节点即 “本机” ,VM ID名称 可自定义。

操作系统

无需使用任何安装介质,客户机操作系统类别选择 Linux , 版本选择 6.x - 2.6 Kernel 即可。

虚拟机操作系统

系统

SCSI 控制器保持默认 VirtIO SCSI single ,机型可选 q35 ,并勾选 Qemu代理 选项。

固件可选 OVMF (UEFI) ,并勾选 添加 TPM 选项,存储路径需根据实际情况进行调整,演示为 local-lvm

预注册密钥 可启用,启用后将预装特定于发行版和 Microsoft 标准的安全启动密钥。

虚拟机系统

磁盘

因使用 Debian 云镜像制作虚拟机模板,此处需删除所有 磁盘

虚拟机磁盘

CPU

CPU 类别 选择 host插槽核心 数根据物理 CPU 核心数进行酌情设置。

若 PVE 服务器内有多颗物理 CPU ,则推荐勾选 启用NUMA 选项。

虚拟机CPU

1.6.内存

内存一般 2G 足够使用,取消勾选 Ballooning设备

对于 Kernel Samepage Merging (KSM) 内核同页合并功能,建议保留勾选状态。

虚拟机内存

网络

通常情况下,模板虚拟机的 桥接 参数设为 PVE 管理口所在虚拟网桥即可。

因在 02.PVE初始化配置 中曾创建未桥接物理网口的内部网桥,故可根据实际需求选择是否使用纯内部网桥作为该参数值。

虚拟机网口

多数情况下,无需使用 PVE 内建防火墙,因此 取消勾选 网络设备的 防火墙 选项。

推荐在 Multiqueue 处根据前面设置的 CPU 核心数进行网卡多队列设置,设置比例为 1:1 。

即有 n 个 CPU 核心,此处多队列也设置为 n 。

虚拟机网卡多队列

确认

接下来查看设置总览,确认无误后即可点击 完成

虚拟机确认

调整硬件参数

删除光驱

查看虚拟机详情页,在虚拟机 硬件 配置页面,移除其 CD/DVD驱动器

虚拟机删除光驱

导入镜像文件

使用终端工具登录 PVE 服务器,并进入 /tmp 目录,执行以下命令创建一个目录。

1
2
3
4
5
## 创建存放 Debian 云镜像的临时目录
$ mkdir -p /tmp/Debian

## 进入目录
$ cd /tmp/Debian

将 Debian 云镜像传输到该目录,并检查 hash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 下载云镜像校验文件
$ curl -LR -O https://cloud.debian.org/images/cloud/trixie/latest/SHA512SUMS

## 下载云镜像(generic版本无需额外配置cloud-init)
$ 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

1
2
3
4
5
## 将 qcow2 镜像导入虚拟机中
$ qm importdisk 1001 debian-13-generic-amd64.qcow2 local-lvm

#### 镜像导入示例输出
unused0: successfully imported disk 'local-lvm:vm-1001-disk-2'

磁盘导入成功后,虚拟机硬件列表中将显示一块未使用的磁盘设备,可鼠标 双击 该设备进行配置调整。

虚拟机新磁盘

当宿主机使用 SSD 作为物理存储设备,并且虚拟磁盘采用 Thin Provisioning (精简置备)模式时,可考虑开启以下选项:

  • Discard丢弃 ) 选项,有助于存储空间回收。

  • SSD EmulationSSD 仿真 ) 选项,让虚拟机将虚拟磁盘视为 SSD 存储设备。

在弹出的对话框中,确认 IO thread 选项为 勾选 状态,并点击 添加

虚拟机使用该磁盘

导入的镜像只有 3G 磁盘空间,为了后续方便使用,需要对磁盘进行扩容。

鼠标 单击 选中该磁盘,选择页面顶部 磁盘操作 菜单的子菜单 调整大小

虚拟机磁盘扩容

在弹出的对话框中,给该磁盘增加 21G 磁盘空间。

虚拟机磁盘增加18G

添加 CloudInit

为确保 Cloud-Init 能正常初始化系统,需为模板虚拟机添加 CloudInit 设备

点击顶部 添加 菜单,选择 CloudInit 设备

虚拟机添加ci

总线/设备 选择 SCSI ,编号为 1 ,存储路径需根据实际情况进行调整,演示为 local-lvm

添加 VirtIO RNG

为确保系统拥有充足的可用熵,需为模板虚拟机添加 VirtIO RNG 熵源。

点击顶部 添加 菜单,选择 VirtIO RNG

虚拟机添加RNG

熵源 选择 /dev/urandom ,其余参数保持默认即可。

虚拟机RNG参数

虚拟机硬件设备修改完成后,如下图所示。

虚拟机全部硬件

调整配置参数

进入左侧虚拟机 选项 页面,可以看到当前虚拟机的配置参数。

通常情况下,模板虚拟机的配置参数需要修改以下内容:

  1. 开机自启动(模板无需修改,克隆的虚拟机需要修改)

  2. 启动/关机顺序(模板无需修改,克隆的虚拟机需要修改)

  3. 引导顺序(仅模板需要修改)

  4. 使用平板指针(仅模板需要修改)

修改引导顺序

鼠标 双击 引导顺序 选项,进入编辑界面。

scsi0 设备处勾选 “已启用” 复选框,并通过排序功能将其拖拽至首位,点击 OK 即可。

虚拟机引导顺序

设置平板指针

关闭 使用平板指针 选项,可以一定程度上降低虚拟机的 CPU 使用率。

设置 Cloud-Init

进入左侧虚拟机 Cloud-Init 页面,可以看到当前虚拟机的初始化参数。

自动配置 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网络配置

Cloud-InitIP 配置 ,IPv4 使用 静态 地址,IPv6 使用 SLAAC 自动配置,如下图所示。

CI网络配置

手动配置 IPv6

当主路由配置了 IPv6 ULA 网段,且希望指定内网 DNS 服务器的 IPv6 ULA 地址时,需要调整 Cloud-Init 参数。

本文 IPv6 ULA 演示地址段为 fdac::/64DNS 服务器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网络配置

IP 配置 参数,IPv4 使用 静态 地址,IPv6 同样使用 静态 地址,如下图所示。

IPv6 使用 静态 地址后,并不影响虚拟机通过主路由获取 IPv6 GUA 公网地址。

CI网络配置

设置备注信息

进入左侧虚拟机 概要 页面,修改虚拟机的备注信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
### 服务器信息

- 系统: Debian 13

- 用途: 内网 DNS 服务器 ( 模板 )

- 自启: 否

- 用户: fox

- IPv4: 172.16.1.250/24

- IPv6: SLAAC

虚拟机备注

至此,模板虚拟机创建完成,可将该虚拟机开机。