PVE 9.x 保姆级安装教程|搭建 AIO 虚拟化底层框架
系列总前言
随着家用设备增多,单一主机承载路由、插件服务、网络存储的 All In One(AIO) 方案成为主流选择。本文将以 Proxmox VE 9.x 为虚拟化底层,分四期完整搭建一套成熟家用 AIO 平台,依次完成系统部署、主路由、旁路由、NAS 服务搭建,全程步骤详细、适配新手,看完即可上手复刻。
本篇前言
Proxmox VE(简称 PVE)是目前家用 AIO 首选的虚拟化平台,性能稳定、操作简单、资源占用低,也是整套服务的底层地基。本篇从零开始,手把手教大家完成镜像制作、系统安装、基础初始化、国内源替换与安全优化,为后续虚拟机部署打好基础。
一、前期准备(硬件 + 软件镜像)
1.1 硬件清单(家用 AIO 最低配置)
- 主机:x86 架构迷你主机 / 软路由(支持 UEFI 启动、CPU 支持虚拟化)
- 内存:≥8GB(多虚拟机并发建议 16GB)
- 硬盘:≥64GB SSD(装 PVE 系统,建议 NVMe,读写更快)
- U 盘:≥8GB USB3.0(做启动盘,清空数据)
- 外设:键盘、显示器(安装必用,后续可远程)
1.2 软件资源(全免费,无捆绑)
- PVE 9.x 官方镜像:官网下载最新 ISO(当前稳定版 9.2,基于 Debian13)
- 启动盘制作工具:Rufus(推荐)、BalenaEtcher(轻量无广告)
- 远程工具:MobaXterm、FinalShell(后续 SSH 连接用)
二、制作 PVE 9.x 启动 U 盘(5 分钟搞定)
- 插入 U 盘到电脑,备份所有数据(制作会全盘清空)。
- 打开 balenaEtcher,左侧选镜像:proxmox-ve_9.2-1.iso;中间选对应 U 盘;右侧点击现在烧录!即可烧录 PVE 9.x ISO 镜像到U盘。
- 关键设置:
- 这个软件为一个好处就是傻瓜是烧录啥都不用做只要点击几下鼠标就可以了。
4. 点击「开始」,确认警告后等待 5-10 分钟,写入完成后安全弹出 U 盘。
三、主板 BIOS 设置(安装成功关键)
- 插入 PVE 启动 U 盘到主机,连接显示器和键盘,开机按快捷键(常见F12/F11/DEL/ESC)进 BIOS。
- 必改 3 项:(不同的设备界面设置有所不同请自行搜索)
- 关闭Secure Boot(安全启动)(否则拦截 PVE 引导)
- 开启CPU 虚拟化(Intel VT-x/AMD-V)(虚拟机必备)
- 启动模式设为UEFI 优先,USB 启动项设为第一
3. 按 F10 保存设置,主机重启后自动进入 PVE 安装界面。
四、PVE 9.x 系统安装(全程图形化,新手无忧)
4.1 引导与协议
- 重启后进入 PVE 菜单,选择Install Proxmox VE (Graphical)(图形化安装,必选)。
- 同意用户许可协议,点击「Next」。
4.2 磁盘分区(新手默认即可)
- 「Target Harddisk」选择安装 PVE 的本地 SSD(别选 U 盘!)。
- 点击「Options」,文件系统默认EXT4(家用稳定),自动分区(系统区 + 数据区),
新手直接点「Next」。
4.3 区域与账户设置
- 国家选China,时区选Asia/Shanghai,键盘布局默认US English。
- 设置root 密码(大小写 + 数字,牢记!),邮箱随意填(格式正确即可,用于告警通知)。
4.4 网络配置(固定 IP,后续远程用)
- 「Management Interface」选有线网卡(别选无线,PVE 不兼容)。
- 主机名:自定义(如 pve-aio)
- IP 地址:设静态 IP(如 192.168.31.200/24,和路由器同网段)
- 网关:路由器 IP(如 192.168.31.1)
- DNS:填公共 DNS(223.5.5.5 或 114.114.114.114)。
- 下方Pin network interface names 默认勾选
4.5 开始安装(10 分钟左右)
- 核对所有配置,点击「Install」开始安装。
取消 Automatically reboot after successful installation 勾选 为了防止安装完自动重启 - 等待进度条走完(约 10 分钟,期间别断电)。
- 安装完成后,拔出 U 盘,点击「Reboot」重启主机。
注意!!!记住上面的网址https://192.168.31.200:8006后续web端要用
这里不要动,等待进入系统
五、PVE 初始登录与基础优化(必做!)
5.1 网页后台登录
- 重启后显示器显示 PVE 地址:https:// 静态 IP:8006(必须 https,端口 8006)。
- 另一台电脑连同网段网络,浏览器输入地址,回车——点击高级
- 在登录可切换中文界面,然后使用账号:root,密码:为安装时设置的密码,登录。
- OK,登录成功。
5.2 四大核心优化(解决订阅提示 + 更新慢)
📝登录后点击左侧「数据中心」——「pev」——「Shell」,后续使用命令窗口操作
或者使用远程工具:MobaXterm、FinalShell( 直接 SSH 连接)
📝界面显示色彩优化-让界面看起来更舒服一些
# 老规矩修改数据前,先备份 cp ~/.bashrc ~/.bashrc.bak.$(date +%Y%m%d) # !! 问题 !! # 万一改错了,如何恢复备份? # 可以先查找是否有备份文件!! # 执行这条命令,列出root家根目录全部文件(含隐藏备份): ls -la ~/ # 或者,精准筛选只看 bashrc 相关备份 # 只检索带 .bashrc 的备份文件,过滤无关内容: ls -la ~/.bashrc* # 假如备份的文件为:.bashrc.bak.20260621 # 下面是恢复命令,直接执行恢复: cp ~/.bashrc.bak.20260621 ~/.bashrc source ~/.bashrc ###################################################### # 下面开始修改 .bashrc 文件 #输入编辑文件命令 nano ~/.bashrc # 下面是修改后的完整的 .bashrc 内容 照着修改即可, # 或者将下面所有的内容复制后替换原内容。 # ---------------------------------------------------- # ~/.bashrc: executed by bash(1) for non-login shells. # Note: PS1 is set in /etc/profile, and the default umask is defined # in /etc/login.defs. You should not need this unless you want different # defaults for root. # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ ' # umask 022 # You may uncomment the following lines if you want `ls' to be colorized: # 如果您希望 `ls` 命令显示颜色,可以取消注释以下几行。 export LS_OPTIONS='--color=auto' eval "$(dircolors)" alias ls='ls $LS_OPTIONS' alias ll='ls $LS_OPTIONS -l' alias l='ls $LS_OPTIONS -lA' # # Some more alias to avoid making mistakes: # -i 参数作用:删除 / 覆盖文件前弹出确认提示,输入 y 才执行,输入 n 取消。 # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' # 最后增加如下代码 # 兼容256色完整渲染 export TERM=xterm-256color # 彩色提示符(绿色用户名、蓝色路径,和Moba一样) PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' # ---------------------------------------------------------------------- # 记得最后更新一下 source ~/.bashrc如下效果图
优化 1:⚠️解决每次登录弹窗 无有效订阅(无法永久消除,每次升级PVE后还会出现,但主要是命令安全及时有效)
![]()
- 📋备份命令: 两条命令二选一,不需要都是用一遍。
📋 还原命令:(备用)# 备份 proxmoxlib.js 两个命令任选其一 # 直接备份: proxmoxlib.js.bak cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak # 带时间戳的备份: proxmoxlib.js.bak.20260620_111245 cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak.$(date +%Y%m%d_%H%M%S)
根据你之前执行的备份命令,对应还原命令如下:# 1. 查看已有的备份文件 ls -la /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js* # 2. 用最新的备份文件还原(将下面的文件名替换成你看到的实际备份文件) cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak.20260620_111245 /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js # 3. 重启 Web 服务 systemctl restart pveproxy.service - 📋修改数据:
1)使用如下代码查询内容确保后续修改顺利,
可能行号位置有所区别但后面结果一致即可使用后面的命令了:# 1. 查看要修改的文件内容(先执行这个) grep -n "res.data.status.toLowerCase() !== 'active'" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js # 正常情况会有如下输出显示(不带开头#) : # 614: res.data.status.toLowerCase() !== 'active' # 20806: res.data.status.toLowerCase() !== 'active'
2)⛔一键关闭(截止到发帖日 PVE 9 .x 通用)
直接在 PVE shell/SSH 运行命令即可:# 1. 自动查找行号并替换(核心命令) line_num=$(grep -n "res.data.status.toLowerCase() !== 'active'" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js | head -1 | cut -d: -f1) if [ -n "$line_num" ]; then sed -i "${line_num}s/!==/===/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js echo "修改成功,行号: $line_num" else echo "错误:未找到目标代码行,请检查文件版本" fi # 2. 重启 PVE Web 服务 systemctl restart pveproxy - ✅ 在# 2. 重启 PVE Web 服务命令 前一步会出现如下提示即为修改成功,
修改成功,行号: 614 - 🔄 如果需要还原
这个方法不会破坏任何功能,另外如果您日后仍想完全还原到官方原始状态
例子:代码运行结果大概如下# 方法一:用之前备份的文件还原 cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js # 方法二:如果没有备份,重新安装原始包 apt install --reinstall proxmox-widget-toolkit -y # 重启服务 systemctl restart pveproxyroot@pve:~# # 方法一:用之前备份的文件还原 root@pve:~# cp -a /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js root@pve:~# root@pve:~# # 方法二:如果没有备份,重新安装原始包 root@pve:~# apt install --reinstall proxmox-widget-toolkit -y Summary: Upgrading: 0, Installing: 0, Reinstalling: 1, Removing: 0, Not Upgrading: 0 Download size: 0 B / 223 kB Space needed: 0 B / 39.0 GB available (Reading database ... 120440 files and directories currently installed.) Preparing to unpack .../proxmox-widget-toolkit_5.1.9_all.deb ... Progress: [ 0%] [ ] Unpacking proxmox-widget-toolkit (5.1.9) over (5.1.9) ... ] Setting up proxmox-widget-toolkit (5.1.9) ...█████████████████████████▊ ] Progress: [ 60%] [███████████████████████████████████████████████████████████████████████████████▏ ] root@pve:~#📋 补充说明
适用范围:此方法适用于Proxmox Backup Server (PBS)9.x,只需修改对应文件并重启
proxmox-backup-proxy服务即可。升级影响:日后通过
apt upgrade升级proxmox-widget-toolkit包时,修改会被官方文件覆盖,弹窗会恢复。届时重新执行上述“⚠️处理此服务器无有效订阅”命令即可。风险提示:此方法比旧方法更安全,但修改系统核心文件仍有潜在风险。请确保备份命令已成功执行。
- 一键脚本:为了方便自己特意制作了脚本直接放root文件夹下ssh运行即可去除PVE 9.x web登录后 无有效订阅 弹窗 一键脚本
https://anig.lanzout.com/iHX5a40h8mkh
优化 2:替换国内源(清华源,加速更新)
- 查看编辑系统源文件:
# 先查询一下有哪些文件 ls -l /etc/apt/sources.list.d/ # 返回信息列表如下 原版安装之后应该只有如下几个文件: total 12 -rw-r--r-- 1 root root 163 May 21 19:32 ceph.sources -rw-r--r-- 1 root root 365 May 21 19:32 debian.sources -rw-r--r-- 1 root root 160 May 21 19:20 pve-enterprise.sources # 接下来一步进行操作即可 # 1、处理 ceph.sources(家用无需 Ceph) # 备份再删除 cp /etc/apt/sources.list.d/ceph.sources /etc/apt/sources.list.d/ceph.sources.bak rm -f /etc/apt/sources.list.d/ceph.sources # 2、Debian 13软件源 debian.sources 备份后修改 # 备份原文件 cp /etc/apt/sources.list.d/debian.sources /etc/apt/sources.list.d/debian.sources.bak # 修改为国内源,下面列出两镜像源,二选一对应的命令块执行。 # 1). 使用清华大学源 (TUNA) # 写入新的源配置(清华大学源) cat > /etc/apt/sources.list.d/debian.sources << 'EOF' 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 Types: deb URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security Suites: trixie-security Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg EOF # 2). 使用中科大源 (USTC) # 写入新的源配置(中科大源) cat > /etc/apt/sources.list.d/debian.sources << 'EOF' Types: deb URIs: https://mirrors.ustc.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://mirrors.ustc.edu.cn/debian-security Suites: trixie-security Components: main contrib non-free non-free-firmware Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg EOF # 3、处理企业源 备份 pve-enterprise.sources 后修改为国内源,处理禁用它 # 1). 先备份原文件(保险起见) cp /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/pve-enterprise.sources.bak # 2). 修改内容:替换URIs地址和Components名称 sed -i 's|https://enterprise.proxmox.com/debian/pve|https://mirrors.ustc.edu.cn/proxmox/debian/pve|g' /etc/apt/sources.list.d/pve-enterprise.sources sed -i 's/Components: pve-enterprise/Components: pve-no-subscription/g' /etc/apt/sources.list.d/pve-enterprise.sources # 处理(标准禁用方式,不要删除原文件) # 重命名禁用,保留原始企业源配置,方便以后恢复订阅 mv /etc/apt/sources.list.d/pve-enterprise.sources /etc/apt/sources.list.d/pve-enterprise.sources.disabled # 4、新建并写入配置文件 pve-no-subscription.sources 下面列出两镜像源,二选一对应的命令块执行。 # 1). 使用清华大学源 (TUNA) cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF' 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 EOF # 2).使用中科大源 (USTC) cat > /etc/apt/sources.list.d/pve-no-subscription.sources << 'EOF' Types: deb URIs: https://mirrors.ustc.edu.cn/proxmox/debian/pve Suites: trixie Components: pve-no-subscription Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg EOF # 验证配置 # 文件创建后,执行以下命令检查内容是否正确,然后更新软件源: # # 查看创建的文件内容 cat /etc/apt/sources.list.d/pve-no-subscription.sources # 最后更新配置信息并重启PVE主机 update-grub update-initramfs -u -k all reboot # 更新软件源列表 apt update # 如果 apt update 输出中没有报错,说明 PVE 免费源配置成功。 # 你选择哪个镜像都可以,两者在国内都非常快。 ################################################################ # 如果进度一直卡在 0% 那么你应该查看DNS 和网关(gateway), 外网是否通畅 ################################################################ # 4. 更新源并重新开始升级 apt update apt dist-upgrade -y🔧DNS问题解决方案
🚀 第一步:快速临时修复(立即生效,重启后可能失效)# 1. 立即使用国内稳定的公共DNS echo "nameserver 223.5.5.5" > /etc/resolv.conf echo "nameserver 114.114.114.114" >> /etc/resolv.conf # 2. 立即测试域名解析是否恢复 nslookup mirrors.tuna.tsinghua.edu.cn # 3. 如果解析成功,再次执行更新 apt update
🔧 第二步:永久性修复(推荐,确保重启后不再失效)
PVE的系统网络配置主要在/etc/network/interfaces文件中。我们需要将DNS配置固化到你的管理网桥vmbr0上。
# 1、编辑网络配置文件: nano /etc/network/interfaces # 2、修改vmbr0的配置段,在末尾添加dns-nameservers行: auto vmbr0 iface vmbr0 inet static address 10.12.31.200/24 gateway 10.12.31.1 bridge-ports enp1s0 bridge-stp off bridge-fd 0 dns-nameservers 223.5.5.5 114.114.114.114 # 添加这一行 # 3、重启网络服务使配置生效: systemctl restart networking # 4、验证DNS是否已永久配置: cat /etc/resolv.conf # 此时你应该能看到从/etc/network/interfaces动态生成的DNS配置。📋 备用方案:更换镜像源
如果更换DNS后解析依然不稳定,也可以考虑直接更换为其他国内镜像源,例如中科大源,这也能从根本上解决问题。
📋 常见文件说明
文件名 用途 是否需要修改(换国内源) debian.sourcesDebian 系统基础源 ✅ 需要,替换为国内镜像 pve-enterprise.sourcesPVE 企业订阅源(付费) 建议禁用(注释掉 URIs行)或替换为免费源ceph.sourcesCeph 分布式存储源 按需修改(如果用不到 Ceph,可以忽略) proxmox.sources可能不存在 这是免费无订阅源的文件名,如果不存在可以手动创建
优化 3:硬盘合并 local 与 local-lvm
只建议系统盘比较小(<128)的这么操作,系统盘大的的建议保持默认!否怎以后无法实现快照
#删除储存池 Local-lvm 存储空间并合并到 local 中 # 1) 删除 local-lvm 分区:删除逻辑卷 两种写法一样选一个操作 lvremove pve/data # 或完整路径 lvremove /dev/pve/data # 2) 扩展 Loacal ,把删除的 Local-LVM 控件扩展给 Local,两种写法一样选一个操作 lvextend -l +100%FREE -r pve/root # 或完整路径 lvextend -l +100%FREE -r /dev/pve/root # 3) 查看总分区空间大小 df -Th / # 4) 再确认 Free PE / Size 为 0,代表空间全分配完毕,扩容完成。 vgdisplay pve # 5) web界面操作 # 数据中心-存储--> # ●---local-lvm---做 移除 操作 # ●---local-编辑--内容添加里: 磁盘映像、容器 #优化 4:开启嵌套虚拟化(群晖 / 爱快直通必备)
# 1、输入命令: # 写入嵌套虚拟化配置 echo "options kvm-intel nested=1" > /etc/modprobe.d/kvm-intel.conf # 更新启动镜像 update-initramfs -u # 2、重启后生效 reboot # 3、验证命令留存(重启后检查用) cat /sys/module/kvm_intel/parameters/nested # Y=开启 N=关闭优化 5:J4125 小主机 网卡直通(爱快主路由是使用)
# 1、输入命令: nano /etc/default/grub # 出现值的内容中 GRUB_CMDLINE_LINUX_DEFAULT="quiet" # 改为: GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on" # 编辑完文件后按 “Ctrl + X” —— ——“Y” > “回车”,继续输入以下命令。 # 2、输入命令: nano /etc/modules # 在文件下面添加新内容 vfio vfio_iommu_type1 vfio_pci vfio_virqfd # 编辑完文件后按“Ctrl + X” > “Y” > “回车”,继续输入以下命令。 # 3、最后更新配置信息并重启PVE主机 update-grub update-initramfs -u -k all reboot # 4、最后安装对应的镜像是用到的命令 # 注意 .iso 镜像名称 和最后是 local 还是 local-lvm 要看你的实际情况而定 qm importdisk 100 /var/lib/vz/template/iso/iKuai8_x64_3.7.1_Build202304060952.iso local qm importdisk 100 /var/lib/vz/template/iso/iKuai8_x64_3.7.1_Build202304060952.iso local-lvm
优化 6:关闭 PVE 防火墙(避免虚拟机网络被拦截)
- 网页后台→「系统」→「网络」→「防火墙」,取消勾选「启用防火墙」,保存应用。
六、本章总结
至此,PVE 9.x 底层系统已完成安装 + 初始化 + 核心优化,具备虚拟化部署能力,为后续爱快主路由、IStoreOS 旁路由、群晖 NAS 搭建打好地基。下一章将讲解 PVE 虚拟机安装爱快 iKuai,部署 AIO 网络核心。