跳转到内容

在 Debian 13 上安装 Proxmox VE ​

官方的 ISO 安装器(见安装过程逐屏讲解)适合绝大多数人。这篇讲的是另一条路:在一台**已经装好的 Debian 13(Trixie)**上叠加安装 Proxmox VE 的软件包。

什么时候需要这样做

官方文档明确说这种方式面向进阶用户,只在你需要 ISO 安装器给不了的东西时才有必要,例如:自定义分区(LVM on LUKS 加密、特定的 RAID 层级)、把一台已经在用的 Debian 服务器转成 PVE、或者你的自动化流程本来就是先装 Debian 再收敛配置。只是想要一台能用的 PVE,请直接用 ISO 安装器。

开始之前 ​

  • 已装好最小化的 Debian 13(Trixie)amd64,安装时软件包选择只勾 standard system utilities 和 SSH server,不要装桌面环境——PVE 会带自己的 QEMU/LXC 软件栈。
  • 用 Debian 安装器的 expert 模式(Advanced options)能在安装阶段就设好静态 IP,省得装完再改。规划方法见规划你的第一台宿主机。
  • 确认这台机器 BIOS 里已开启虚拟化(VT-x/AMD-V),做法见制作安装介质并校验镜像里的 BIOS 部分。

这篇文章涉及两类不可逆操作

影响范围:安装 Debian 13 本身会清空所选磁盘;后面移除 Debian 自带内核、跑 update-grub 属于引导层面的改动,操作失误可能导致机器进不去系统(需要救援介质才能修)。

前置条件:先确认目标磁盘上没有你还要的数据;操作全程建议有物理键盘/显示器或 IPMI/iKVM 访问权限,别只靠 SSH——一旦网络或引导出问题,SSH 也用不了。

怎么回退:装系统之前的数据无法回退,只能重装。引导层面的改动如果搞砸,用同一份安装介质(或 U 盘 rescue 模式)重新进系统修复 /boot 和 GRUB/systemd-boot 配置。不确定的话,先在一台闲置机器或虚拟机里完整走一遍流程。

操作步骤 ​

1. 编辑 /etc/hosts ​

PVE 要求主机名能解析到一个真实可达的 IP,而不是回环地址。假设主机名是 pve1,IP 是 192.168.1.10:

text
127.0.0.1       localhost
192.168.1.10    pve1.home.lan pve1
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

如果默认的 /etc/hosts 里有一行 127.0.1.1 pve1,把主机名从那一行删掉,避免和上面的条目冲突。

在宿主机 shell验证:

sh
hostname --ip-address

输出应该至少包含一个非回环地址。

2. 添加 PVE 软件源(deb822 格式) ​

sh
cat > /etc/apt/sources.list.d/pve-install-repo.sources << EOL
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOL

3. 导入签名密钥并校验 ​

sh
wget https://enterprise.proxmox.com/debian/proxmox-archive-keyring-trixie.gpg \
  -O /usr/share/keyrings/proxmox-archive-keyring.gpg

用官方公布的校验值核对(以官方页面当前公布的值为准,不要只信任这里抄录的旧值):

sh
sha256sum /usr/share/keyrings/proxmox-archive-keyring.gpg

校验和写文档时会过期

密钥文件的哈希值可能随密钥轮换更新。请打开官方 Debian 13 安装指南核对当前值,而不是死记某一个哈希。

4. 更新并安装 PVE 内核 ​

sh
apt update && apt full-upgrade
apt install proxmox-default-kernel
systemctl reboot

先装内核再重启是必须的一步:部分 PVE 软件包依赖这个内核的编译选项(比如 AppArmor 相关特性),跳过这步直接装 proxmox-ve 容易出问题。

5. 安装 Proxmox VE 软件包 ​

重启回到系统后:

sh
apt install proxmox-ve postfix open-iscsi chrony
  • Postfix 弹出配置向导时:内网有邮件服务器就选 Satellite system 并填中继地址;没有就选 Local only。
  • 用 chrony 而不是 systemd-timesyncd 作为时间同步服务,PVE 官方不建议在服务器上用后者。见时区、NTP、主机名与 /etc/hosts。

6. 移除 Debian 自带内核 ​

sh
apt remove linux-image-amd64 'linux-image-6.12*'
update-grub

保留 Debian 自己的内核容易在后续系统升级时引发冲突。用的是 systemd-boot 时可以跳过 update-grub。

7. 移除 os-prober(非双系统机器) ​

sh
apt remove os-prober

os-prober 会扫描磁盘上其他系统并加入引导菜单,容易把虚拟机磁盘里的分区也扫进来,制造混乱的引导项。这台机器不做双系统的话可以直接移除。

8. 登录 Web UI 完成网络配置 ​

打开 https://<这台机器的 IP>:8006,用 root 账户、Linux PAM 领域登录,然后创建一个名为 vmbr0 的 Linux 网桥并绑定你的网卡——ISO 安装器会自动做这一步,这条路径需要手动补上。见安装过程逐屏讲解的网络部分理解网桥的作用。

如果之后买了订阅,上传密钥后可以删掉本文用的临时安装源:

sh
rm /etc/apt/sources.list.d/pve-install-repo.sources

PVE 8.x 的差异

PVE 8 基于 Debian 12(bookworm),用传统的 .list 格式而不是 deb822,内核安装包名也不同。如果你要在 Debian 12 上装 PVE 8,请对照官方对应版本的《Install Proxmox VE on Debian》页面操作,不要直接套用本文的文件名和内核包名。

检查结果 ​

  1. 浏览器能打开 https://<IP>:8006 并用 root 登录。
  2. pveversion -v 输出完整的组件列表,没有报错。
  3. uname -r 显示的是 -pve 结尾的内核版本,说明系统已经在用 PVE 内核而不是 Debian 内核。
  4. dpkg -l | grep linux-image 里已经看不到 linux-image-amd64 这种通用元包。
  5. Web UI 里能看到 vmbr0 网桥,且状态正常。

常见问题 ​

报错 error: bad shim signature.。 目标机器开着 Secure Boot,去 BIOS/UEFI 关掉。

装完之后 DNS 解析不稳定。 检查是不是装了 resolvconf 或 rdnssd——它们会和 PVE 自己管理 DNS 的方式冲突,卸载掉。

Web UI 报 ipcc_send_rec[1] failed: Connection refused。 回头检查第 1 步的 /etc/hosts,这个错误几乎总是主机名解析不对导致的。

参考资料 ​

Proxmox VE 非官方中文使用指南,与 Proxmox Server Solutions GmbH 无隶属关系。