Step-by-Step Guide: Installing Proxmox VE via Ubuntu Live CD
在折腾 Homelab 时,使用 Ubuntu Live CD 环境作为跳板,通过 debootstrap 编织 Debian 基础系统再转行安装 PVE 是一种极为硬核且高成功率的方案。
本文将基于单机械硬盘 硬件平台,提供一份中国大陆网络环境优化版部署指南。
部署总流程概览
1 | Ubuntu Live 环境引导 |
第一阶段:环境准备
进入 Ubuntu Live 桌面或纯文本环境后,调出终端执行以下操作。
1. 验证网络与配置 DNS
确保网络畅通。由于后续需要大量下载包,建议将 DNS 显式修改为国内公共 DNS:
1 | # 修改 Ubuntu Live 的 DNS 保证解析速度 |
修改或添加以下内容:
1 | nameserver 223.5.5.5 |
测试联网:
1 | ping -c 4 mirrors.tuna.tsinghua.edu.cn |
2. 安装必要工具
更新 Ubuntu Live 的本地索引并安装分区、引导及系统构建工具:
1 | sudo apt update |
3. 确认目标磁盘
由于当前平台为单机械硬盘(假设识别为 /dev/sda),请务必通过以下命令核对名称与容量:
1 | lsblk -o NAME,SIZE,TYPE,MOUNTPOINT |
第二阶段:磁盘分区与格式化
PVE 强依赖于 GPT 分区与合理的挂载布局。我们将针对单盘进行基础三卷划分。
1. 使用 gdisk 进行 GPT 分区
1 | sudo gdisk /dev/sda |
进入交互界面后,依次执行以下规划(输入 n 新建分区):
| 分区编号 | 大小 | 推荐文件系统/用途 | gdisk 类型代码 |
|---|---|---|---|
/dev/sda1 | 512M | EFI 引导分区 | EF00 |
/dev/sda2 | 100G | Debian / PVE 根系统 (/) | 8300 |
/dev/sda3 | 剩余所有 | PVE VM/LXC 本地存储卷 | 8300 |
💡 提示:最后输入
w保存分区表并退出。
2. 格式化分区
1 | sudo mkfs.fat -F32 /dev/sda1 |
3. 挂载目标分区
将新格式化的系统盘挂载到 Ubuntu Live 的 /mnt 目录下:
1 | sudo mount /dev/sda2 /mnt |
第三阶段:Debian 基础系统构建
1. 使用清华源进行 debootstrap 铺路
利用国内镜像源加速下载 Debian 12 (Bookworm) 基础核心包,防止官方源超时失败:
1 | sudo debootstrap bookworm /mnt [https://mirrors.tuna.tsinghua.edu.cn/debian](https://mirrors.tuna.tsinghua.edu.cn/debian) |
2. 挂载虚拟文件系统并 chroot
将当前的硬件设备树与系统状态同步给新系统,并切入其中:
1 | sudo mount --bind /dev /mnt/dev |
⚠️ 注意:接下来的所有操作,均已在新系统的
chroot环境内运行。
第四阶段:新系统配置与内核安装
1. 配置新系统的 APT 镜像源
1 | nano /etc/apt/sources.list |
清除原内容,写入清华大学 Debian 稳定源:
1 | deb [https://mirrors.tuna.tsinghua.edu.cn/debian/](https://mirrors.tuna.tsinghua.edu.cn/debian/) bookworm main contrib non-free-firmware |
2. 安装基础内核与网络管理组件
1 | apt update |
3. 设置主机名与 Hosts 解析
PVE 要求主机名必须能解析到具体的非环回 IP 或标准本地映射。
1 | echo "pve" > /etc/hostname |
修改为如下结构:
1 | 127.0.0.1 localhost |
4. 设置 Root 密码
设置重启后登录系统所需的 root 账户密码:
1 | passwd |
5. 部署 GRUB 引导
将 EFI 引导程序写入硬盘:
1 | grub-install /dev/sda |
第五阶段:安装 Proxmox VE (PVE)
1. 添加 PVE 国内社区源
由于官方源在大陆经常断连,此处采用中科大 (USTC)的 PVE 镜像源:
1 | echo "deb [https://mirrors.ustc.edu.cn/proxmox/debian/pve](https://mirrors.ustc.edu.cn/proxmox/debian/pve) bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list |
2. 导入 Proxmox 官方 GPG 密钥
1 | wget [https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg](https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg) -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg |
3. 稳健安装 PVE 核心卷
执行更新并正式安装 PVE 堆栈:
1 | apt update |
(注:安装过程中如果弹出 Postfix 配置,一般选择 Local only 即可。)
第六阶段:收尾与重启
完成安装后,安全退出 chroot 容器并重启设备:
1 | exit |
拔掉 Ubuntu Live 引导 U 盘,等待 WTR Pro 正常启动。
后续管理与优化
1. 访问管理后台
系统引导成功后,在同局域网的浏览器中输入:
1 | https://<你的PVE主机IP>:8006 |
- 用户名:
root - 密码:在第九阶段设置的密码
2. 单机械硬盘性能调优
由于硬件平台初期使用的是单块机械硬盘,为了在 All in One(OpenWRT + Ubuntu + Win11)场景下避免严重的磁头 I/O 挤兑,建议进行如下优化:
- 避免高频 I/O 容器:尽量不要在机械硬盘上跑高并发的数据库或频繁刷日志的 Docker 容器。
- 合理挂载本地存储:在 PVE 网页端将
/dev/sda3格式化为Directory或配置为LVM,作为 ISO 镜像及轻量虚拟机(如 OpenWRT)的磁盘存放地。 - 预留升级路线:WTR Pro 拥有良好的扩展性。后期加装 NVMe SSD 后,可通过 PVE 内置的
Move Disk功能,无缝将高负载的 Win11 或虚拟系统一键迁移至固态硬盘,实现无痛速度飞跃。
优化核心是:压榨 CPU 与内存性能,极力保护机械硬盘 I/O,并为未来加装 SSD 铺路。
3. 针对 WTR Pro (5825U) + 64G 内存 + 单机械硬盘的极致优化
由于目前系统运行在单块机械硬盘(HDD)上,而机械硬盘的随机 4K 读写性能极弱,在 All in One 场景下(OpenWRT + Ubuntu + Win11 共同运行)极易发生磁头 I/O 挤兑,导致所有虚拟机卡死。但好在拥有 64G 的超大内存 与 5825U 强劲的 CPU,我们可以通过“以内存换 I/O”的策略进行调优。
① 开启 Linux 内存脏数据回写优化(以内存缓冲 I/O)
通过延长内存中脏数据的缓存时间,将原本零碎的随机写入合并为连续的顺序写入,大幅减轻机械硬盘的寻道压力。
在 PVE 宿主机终端执行:
1 | # 修改内核参数 |
② 虚拟机(VM)虚拟磁盘参数推荐
在 PVE Web 界面创建或修改虚拟机(如 Windows 11 / Ubuntu Server)时,磁盘设置请务必遵循以下配置:
总线/设备 (Bus/Device): 选择
SCSI(并确保勾选了Async I/O为io_uring或threads)。缓存 (Cache): 强烈建议选择
Write back(回写)。⚠️ 注意:
Write back依赖宿主机内存做写缓存,能让机械硬盘的写入速度飙升,但若意外断电可能会丢失几秒的数据。鉴于 WTR Pro 平台,建议搭配小型 UPS 或确保供电稳定。丢弃 (Discard): 不要勾选(机械硬盘不支持 TRIM,勾选无意义)。
③ 内存极其富余?开启 tmpfs 内存盘跑轻量 Docker
64G 内存对于目前的轻量应用来说绰绰有余。你可以将 /tmp 或一些不重要的 Docker 容器数据目录直接挂载到内存中,完全绕过机械硬盘。
例如,在 /etc/fstab 中加入以下内容,分出 8G 内存做临时缓存盘:
Plaintext
1 | tmpfs /var/tmp tmpfs defaults,size=8G,mode=1777 0 0 |
4. 核心服务部署策略
在这个性能模型下,虚拟机的部署顺序与类型建议如下:
- 第一批:OpenWRT (软路由)
- 资源分配:1~2 核 CPU + 1G/2G 内存即可。
- 特性:网络 I/O 几乎不占磁盘读写,机械硬盘毫无压力。
- 第二批:Ubuntu Server (Docker 容器轻量载体)
- 避坑指南:可以跑网络代理、Samba/NFS 纯文件共享、轻量 Web 业务。坚决不要在机械硬盘上运行高频写入的 Prometheus 监控、大型数据库(如高并发 MySQL)或青龙面板等频繁刷日志的脚本。
- 第三批:Windows 11 (轻办公/精简版)
- 优化手段:引导进入 Win11 后,务必关闭 Windows Update、SysMain 服务、Windows Search 索引以及内置防病毒的实时扫描。这些服务是机械硬盘的“隐形杀手”。
5. 完美的未来升级与无痛迁移路线
WTR Pro 拥有良好的硬件扩展性。单机械硬盘只是我们的起点,当后续资金到位、加装 NVMe SSD 固态硬盘后,PVE 强大的生态支持你进行零停机/极速一键迁移:
- 加装 SSD 后:直接在 PVE 网页端的
节点 -> 磁盘中,将新 SSD 格式化为LVM-thin或ZFS (Single)。 - 虚拟机一键热迁移:
- 点击Windows 11 或 Ubuntu 虚拟机。
- 选择
硬件 (Hardware)-> 点击虚拟磁盘 -> 点击顶部磁盘操作 (Disk Action)->移动存储 (Move Storage)。 - 目标存储选择新的 SSD,勾选
删除源 (Delete source),点击启动。 PVE 会在虚拟机保持开机运行的状态下,将数据默默迁移到固态硬盘,完成后自动切换。
6. 中国大陆环境的“最后一公里”优化
为了让这台 All in One 更好用,建议在宿主机或 Ubuntu VM 内完成以下换源收尾工作:
① Docker 国内镜像源(在 Ubuntu VM 中配置)
创建或修改 /etc/docker/daemon.json:
1 | { |
② NTP 时间同步(防止时间偏差导致加密协议失效)
PVE 宿主机修改时间服务器为国内大厂镜像:
1 | nano /etc/systemd/timesyncd.conf |
修改内容为
1 | [Time] |
重启服务生效:
1 | systemctl restart systemd-timesyncd |
7. 核心网络架构:打造标准的旁路由(Side-Gateway)网络
在单网口或不希望频繁折腾主网线的 WTR Pro 平台上,将 OpenWRT 部署为旁路由(旁路网关)是最稳健、最不容易导致断网的方案。这样既能享受 OpenWRT 的插件能力,又不会影响家人的正常网络。
① PVE 默认网桥确认 (vmbr0)
在基础安装完成后,PVE 会自动创建一个名为 vmbr0 的 Linux Bridge。它会将你的物理网卡(如 enp3s0 或 eth0)与虚拟机绑定在同一个局域网内。
默认的 /etc/network/interfaces 结构通常如下:
1 | auto lo |
(注:将上面的 IP 修改为本地主路由网段内的固定 IP。)
② OpenWRT 旁路由网络配置
- 创建虚拟机:在 PVE 中为 OpenWRT 虚拟机分配 1 个网卡,并桥接到
vmbr0。 - 修改 OpenWRT 内部 IP:引导进入 OpenWRT 后,将其 LAN 口 IP 修改为与主路由同网段的静态 IP(例如主路由是
192.168.1.1,OpenWRT 可设为192.168.1.2)。 - 关闭 DHCP:务必关闭 OpenWRT 的 DHCP 服务,避免与主路由冲突。
- 设置网关与 DNS:将 OpenWRT 的 IPv4 网关和 DNS 全都指向你的主路由 IP(
192.168.1.1)。
③ 客户端接入旁路由的两种玩法
- 手动流(按需接入):如果你只想让自己的手机或电脑享受 OpenWRT 的特殊插件,只需在设备的网络设置中,将网关和 DNS 手动修改为 OpenWRT 的 IP(
192.168.1.2)即可。 - 自动流(全家全局):如果你希望全家所有设备自动通过旁路由,直接登录你的主路由管理后台,将其 DHCP 服务中的“默认网关”和“DNS 服务器”修改为 OpenWRT 的 IP。
8. 单机械硬盘的“保命”备份方案:配置本地定时备份
在 All in One 环境中,“数据无价”是第一铁律。虽然目前只有一块机械硬盘,但我们可以利用 PVE 极其强大的 VZDump 备份工具,在 /dev/sda3 划分出来的本地目录中建立定时备份机制,防止因误操作、系统崩溃或容器损坏导致的心血白费。
① 在 PVE 中启用本地备份目录
- 登录 PVE Web 管理界面。
- 依次点击
数据中心 (Datacenter)->存储 (Storage)->添加 (Add)->目录 (Directory)。 - ID 填写
local-backup,目录填写你挂载/dev/sda3的本地路径(如/mnt/data/backup)。 - 在 内容 (Content) 下拉菜单中,务必勾载 **
VZDump 备份文件 (VZDump backup file)**,然后点击添加。
② 配置自动化定时备份策略(建议每周执行)
- 在
数据中心 (Datacenter)菜单下,点击备份 (Backup)->添加 (Add)。 - 节点 (Node): 选择你的 PVE 节点。
- 存储 (Storage): 选择刚刚创建的
local-backup。 - 选择选择器 (Selection mode): 建议选择
所有虚拟机 (All guests)。 - 计划 (Schedule): 选择
每周六 02:00(机械硬盘此时负载最低)。 - 压缩 (Compression): 强烈推荐选择 **
ZSTD**。这是目前性能最好的压缩算法,速度极快且对 CPU 消耗低,非常适合 5825U 这种多核处理器。 - 保留策略 (Retention): 在
保留备份 (Keep backups)中设置Keep last = 3(保留最近3次备份),防止机械硬盘空间被撑爆。
9. 进阶:如何彻底关闭不耐烦的 PVE 订阅弹窗
由于我们使用的是官方的免费无订阅版(pve-no-subscription),每次登录 Web 界面时,系统都会弹出一个警告窗口提示“没有有效的订阅(No valid subscription)”。
作为强迫症极客,我们可以通过一行命令将其彻底移除。在 PVE 宿主机终端执行以下单行脚本:
Bash
1 | 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 |
执行完毕后,清除浏览器缓存并刷新 PVE 网页,那个烦人的弹窗就会彻底消失!
