✅ Linux | Debain 12 | PVE 8 (安装篇)


安装 curl & wget

apt update && apt install -y curl wget gnupg

安装前准备(必须做)

1️⃣ 确认系统是 Debian 12

cat /etc/os-release

你应该看到类似:

PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"

2️⃣ 设置正确主机名(很关键)

PVE 强烈要求 主机名能被解析,否则会出各种奇怪问题。

设置一个主机名(示例:pve)

hostnamectl set-hostname pve

3️⃣ 编辑 hosts 文件

nano /etc/hosts

4️⃣ 改成这样(照抄,IP 用你自己的):

127.0.0.1       localhost
103.254.63.80   pve.example.com pve

::1             localhost ip6-localhost ip6-loopback

这一条非常重要,90% 出问题都在这里

保存退出:Ctrl + O → 回车 → Ctrl + X


1️⃣ 先把 Debian 升级到最新

apt update && apt full-upgrade -y
reboot

重启后重新 SSH 登录。

2️⃣ 添加 Proxmox VE 仓库

echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list

pve-no-subscription 可用于无订阅安装,但官方说明它更适合测试/非生产环境。

3️⃣ 添加 Proxmox GPG 密钥

wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
chmod +r /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg

4️⃣ 更新软件索引

apt update

如果这里没有明显报错,说明仓库基本正常。


先安装 Proxmox 内核

apt install -y proxmox-default-kernel
reboot

确认当前已启动 PVE 内核

uname -r
  • 正常应看到类似
6.x.x-x-pve

只要后缀里有 -pve 就对了。Proxmox VE 使用自带内核,并带有虚拟化、容器、ZFS 等所需特性

如果还不是 -pve 内核,需要再执行
apt remove -y linux-image-amd64
update-grub
reboot

安装 Proxmox VE 主体

apt install -y proxmox-ve postfix open-iscsi chrony ifupdown2
  • 安装时注意

postfix 选择:Local only

  • 1️⃣ 清理 Debian 默认内核(建议)

确认系统已经从 -pve 内核启动后,再执行:

apt remove -y linux-image-amd64
apt autoremove -y
update-grub
  • 2️⃣ 检查安装结果
pveversion -v

如果能正常输出一串 PVE 包版本,说明主体安装完成。官方也建议用这个命令检查安装是否完整。


注意:如果有 enterprise 仓库报错,就禁用它

有些环境下安装后会带上 enterprise 仓库;如果你没有订阅,可以禁用:

sed -i 's/^deb/# deb/g' /etc/apt/sources.list.d/pve-enterprise.list 2>/dev/null || true
apt update

官方说明:enterprise 仓库需要订阅;无订阅场景可以使用 no-subscription 仓库。

重启相关服务

systemctl restart pve-cluster pvedaemon pvestatd pveproxy

访问 Web 管理界面

用浏览器打开:

https://你的服务器IP:8006


可选:如果你要组建集群,再执行下面这些

单机不用执行,先看状态:

pvecm status

如果你是首次创建一个新集群:

pvecm create pve
pvecm updatecerts --force
systemctl restart pveproxy pvedaemon pvestatd