PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】
前言

最近,Proxmox VE 推出了基于 Debian 13 的 9.0 版本。正巧我手头有一台闲置的老电脑,与其闲置,不如装上 PVE,让它化身 All in One,继续发挥它的余热。配置如下:
Processor : Intel(R) Pentium(R) CPU G4560 @ 3.50GHz
CPU cores : 4 @ 3500.158 MHz
AES-NI : ✔ Enabled
VM-x/AMD-V : ✔ Enabled
RAM : 15.5 GiB
Swap : 0.0 KiB
Disk : 83.9 GiB
Distro : Debian GNU/Linux 13 (trixie)
Kernel : 6.14.8-2-pve
G4560 算是一颗 NAS 神 U,十几元的售价就能有双核四线程,比起什么 J1900 不知道强到哪里去了,尽管定位上是奔腾处理器,但性能甚至能和同代的酷睿 i3-7100 掰掰手腕,并且它还自带 HD 610 的核显,对于解码的支持也还不错。
即便是手头没有闲置的硬件,直接买一颗 G4560 搭配上 HP 800 G3 这类品牌机准系统,个人认为性价也同样很高。
警告
G4560 与 i3-7100 相比,尽管性能上相差不大,但 G4560 缺少了 AVX 等指令集,实测下来还是有一些影响的,别被当年那些测评里说的“缺少指令集无伤大雅”给骗了。
比如 MongoDB 5.0 版本开始要求 AVX 指令集,而 G4560 就只能安装 4.4 版本。
有这方面需求建议淘一颗带核显的 E3 配上 HP Z240 这类原生支持至强的工作站,无论是性能、指令集都更加的符合要求。
BIOS 设置
提示
不同品牌、不同型号的主板 BIOS
设置各不相同,下面以我的华硕 Prime B250M-A 为例
虚拟化
PVE 作为虚拟化系统,必须在 BIOS 中开启虚拟化相关设置(VT-x、VT-d 等)
- 高级 -> CPU 设置 -> Intel Virtualization Technology

- 高级 -> 北桥 -> VT-d

其他设置
除了必备的虚拟化设置以外,如果想要使用 vGPU 和 Wake on LAN 等功能,还需要进行更多设置
- vGPU: 高级 -> 北桥 -> Above 4G Decoding (大于 4G 地址空间解码)

- Wake on LAN: 高级 -> 高级电源管理(APM) -> 由 PCI-E 设备唤醒

安装 PVE
前往官网下载 PVE 官网下载 PVE 9.0 的 ISO 镜像,网络不好的可以从 夸克网盘 / UC 网盘 下载,整体的安装步骤和之前版本基本一致
推荐直接用 Ventoy 引导,比较的方便(Ventoy 需要更新到最新版,否则可能会引导失败)

选择系统盘,选中的硬盘会被格式化,如果盘里有文件的注意提前备份

设置 PVE 的密码,密码用于登录 Web UI 和连接 SSH

最重要的一步,设置 IP 地址,默认会通过 DHCP 获取到一个地址,后续访问 Web UI 或者连接 SSH 需要用到
安装完成后,这个地址会被设置成静态地址,修改起来比较麻烦,建议提前修改为想要的 IP 地址

最后耐心等到安装完成,会自动重启到 PVE 系统

换源
PVE 9.0 基于 Debian 13,除了换 Debian 的软件源以外,还需要编辑企业源、Ceph 源、无订阅源以及 CT 模板源。
Debian 软件源
提示
Debian 13 软件源变更为 DEB822
格式 /etc/apt/sources.list.d/debian.sources
,不再是传统格式 /etc/apt/sources.list
与常规的 Debian 13 一样,将 /etc/apt/sources.list.d/debian.sources
中默认源全部删除,将其替换为清华源
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
Suites: trixie trixie-updates trixie-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
# Types: deb-src
# URIs: https://mirrors.tuna.tsinghua.edu.cn/debian
# Suites: trixie trixie-updates trixie-backports
# Components: main contrib non-free non-free-firmware
# Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# 以下安全更新软件源包含了官方源与镜像站配置,如有需要可自行修改注释切换
Types: deb
URIs: https://security.debian.org/debian-security
Suites: trixie-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
# Types: deb-src
# URIs: https://security.debian.org/debian-security
# Suites: trixie-security
# Components: main contrib non-free non-free-firmware
# Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
企业源
将 PVE 的企业源 /etc/apt/sources.list.d/pve-enterprise.sources
注释掉(也可以直接删除)
# Types: deb
# URIs: https://enterprise.proxmox.com/debian/pve
# Suites: trixie
# Components: pve-enterprise
# Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
Ceph 源
将 PVE 的 Ceph 源 /etc/apt/sources.list.d/ceph.sources
也替换成清华源
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/ceph-squid
Suites: trixie
Components: main
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
无订阅源
在 /etc/apt/sources.list.d
目录下创建 pve-no-subscription.sources
文件,填上以下内容
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
CT 模板源
如果你需要用到 PVE 中的 LXC 容器,那么还需要替换一下 CT 模板源,否则下载模板会非常的慢
将 /usr/share/perl5/PVE/APLInfo.pm
文件中默认的源地址 http://download.proxmox.com
替换为
https://mirrors.tuna.tsinghua.edu.cn/proxmox
可以使用如下命令修改,重启后生效
cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back
sed -i 's|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm
删除订阅弹窗
尽管我们使用的 PVE 是免费版,但如果你没有订阅,每次访问网页时,都会有一个“无有效订阅”的弹窗

弹窗代码在 /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
中,通过 void({...})
可以让弹窗部分代码不执行,实现删除弹窗的效果。
因此,直接执行以下命令即可实现删除订阅弹窗
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service
硬盘
合并 local 与 local-lvm
提示
- 只建议系统盘比较小的这么操作,系统盘大的的建议保持默认!
- 由于我的傲腾系统盘太小,PVE 安装程序跳过了创建
local-lvm
,因此以下内容未进行实操验证,仅供参考

PVE 安装过程中会自动创建 local
和 local-lvm
,如果你的系统盘不够大,可能会出现一个用满了,另一个却比较空的情况,提前将两者合并就可以避免出现这种尴尬的情况。
- 删除
local-lvm
分区
lvremove /dev/pve/data
- 扩容 local
lvextend -l +100%FREE /dev/pve/root
- 扩展文件系统
resize2fs /dev/pve/root
- 在 Web UI 上删除 local-lvm,然后编辑 local 勾选所有内容
删除 Swap 分配给主分区
提示
只建议系统盘特别小的这么操作,系统盘大的的建议保持默认!
PVE 安装后默认会根据硬盘大小分配 Swap,但我的系统盘是 16G 的傲腾,本身就已经寸土寸金了,再加上 G4560 配上 16G 内存也基本够用了。如果把默认分配的 1G Swap 删除,重新分配给系统分区的话,更加宽裕一些。
- 关闭 Swap
swapoff /dev/mapper/pve-swap
- 编辑
/etc/fstab
,注释掉 Swap 挂载行
# /dev/pve/swap none swap sw 0 0
- 删除 swap 的 LVM 卷
lvremove /dev/pve/swap
- 扩展
pve-root
卷到全部剩余空间
lvextend -l +100%FREE /dev/mapper/pve-root
- 扩展文件系统
resize2fs /dev/mapper/pve-root
添加硬盘
如果想给 PVE 添加硬盘,首先需要将硬盘挂载到 PVE 上,然后再在 Web UI 中添加存储。其中挂载到 PVE 的步骤与常规 Debian 挂载硬盘相同,不了解的可以参考《Linux 挂载磁盘的两种方式》
完成挂载后,来到 数据中心 -> 存储 -> 添加 -> 目录
填写上 ID 和挂载的目录,内容勾选所有选项,最后点击添加即可

网络
DHCP
如果你的网络环境经常变动,则可以将静态 IP 修改为 DHCP,通过 DHCP 分配 IP,方便网络变动后连接 PVE 设备
编辑 /etc/network/interfaces
,将 static
修改为 dhcp
,然后将地址和网关删除
auto lo
iface lo inet loopback
iface enp4s0 inet manual
auto vmbr0
iface vmbr0 inet dhcp
iface vmbr0 inet static
address 10.0.0.10/24
gateway 10.0.0.1
bridge-ports enp4s0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
SLAAC
之前一直想给 PVE 添加 IPv6 地址,但通过下面这行代码获取的 IPv6 会同时启用 SLAAC 和 DHCPv6,总会遇到一些奇奇怪怪的问题。
iface vmbr0 inet6 auto
后面发现可以直接在 /etc/network/interfaces
中添加下面这行代码,来启用 SLAAC 获取 IPv6 地址,目前使用下来还没遇到过问题。
post-up echo "2" > /proc/sys/net/ipv6/conf/vmbr0/accept_ra
完整配置如下:
auto lo
iface lo inet loopback
iface enp3s0 inet manual
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
post-up echo "2" > /proc/sys/net/ipv6/conf/vmbr0/accept_ra
source /etc/network/interfaces.d/*
接着重启一下网络,过一小会应该就能获取到 IPv6 了
systemctl restart networking
网卡灯不亮(无网络)
常见于移除/更换了 PCI-E 设备,比如显卡、 M.2 硬盘,我是在装完系统后拔下显卡后出现的问题,主要原因是拔下显卡后,网卡的编号发生了改变,而 PVE 的网络配置却不会跟着改变。
查看 /etc/network/interfaces
可以看到,网卡为 enp4s0
,而通过 ip a
查看,此时的网卡已经变为了 enp3s0
,只需要将两处 enp4s0
修改为 enp3s0
auto lo
iface lo inet loopback
iface enp4s0 inet manual
iface enp3s0 inet manual
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports enp4s0
bridge-ports enp3s0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
然后重启一下网络,就可以恢复了
systemctl restart networking
如果你经常新增/减少 PCI-E 设备,可以考虑将网卡命名修改回传统名称,详见下方修改网卡名
参考资料
修改网卡名
要想将网卡修改回 eth0
这样的传统名称,只需要编辑启动参数,在 /etc/default/grub
配置中加上 net.ifnames=0 biosdevname=0
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0 biosdevname=0"
GRUB_CMDLINE_LINUX=""
然后更新 grub 后重启,网卡名就会变成传统的 eth0
、eth1
update-grub
重启前,别忘了把 /etc/network/interfaces
中的网卡名也修改成 eth0
,否则会断网
auto lo
iface lo inet loopback
iface enp4s0 inet manual
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet dhcp
bridge-ports enp4s0
bridge-ports eth0
bridge-stp off
bridge-fd 0
source /etc/network/interfaces.d/*
网络唤醒 WOL
提示
需要在 BIOS 中开启 PCI-E 唤醒
默认情况下,PVE 的网络唤醒是禁用的,需要手动打开才可以网络唤醒。
开启 WOL
- 安装 ethtool 工具
apt install ethtool
查看网卡名称
ip a
查看网卡信息
ethtool eth0
- 观察
Supports Wake-on
与Wake-on
提示
supports wake-on
判断该网卡是否支持 WOL 唤醒,若值为 pumbg 则表示支持 WOL
Wake-on
值为 d 则表示 WOL 禁用状态,g 则为开启,PVE 默认为 d
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Link partner advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes
- 开启 WOL 网络唤醒
ethtool -s eth0 wol g
开机运行
由于每次开机时,Wake-on
的值都会重置为 d,因此需要在开机时自动运行开启 WOL 的命令
- 编辑
/etc/rc.local
文件
#!/bin/bash
ethtool -s eth0 wol g
exit 0
- 赋予运行权限
chmod +x /etc/rc.local
- 重启并按上一步骤查看
Wake-on
是否自动在开机时自动修改为 g 即可
总结
本文为基础篇,主要是 PVE 的安装和配置,接下来我们还要直通硬件、定制虚拟机模板并创建虚拟机,感兴趣的可以持续关注!