從 PVE 8 升級到 PVE 9(基於 Debian 13 Trixie)是一個重大版本更新。要確保「不影響既有 VM」,請嚴格遵循本文提供的流程,按圖操作保證成功(本文經實際操作成功不代表所有環境都可以成功,歡迎討論升級遇到的難點)。
核心準備工作(最重要)
在動手改任何設定前,請務必完成以下動作:
1. 完整備份: 將所有 VM 和 CT(容器)備份到外部存儲(如 NAS 或外部硬碟)。避免升級失敗時客體系統全部跟著犧牲的必要措施,這樣除了斷電或硬體相容性問題仍有風險外,即便失敗也不用擔心VM受到不可回復的傷害。
apt update && apt dist-upgrade
3.檢查磁碟空間: 根目錄(/)建議至少保留 10GB 以上的剩餘空間。
df -h
運行官方檢測工具 pve8to9
Proxmox 內建了一個工具來掃描你的系統是否存在升級風險:
pve8to9 --full

PASS: 沒問題,可以繼續。 WARN: 建議修復,通常不影響升級,但可能影響特定功能。 FAIL: 必須修復,否則升級極大機率失敗。
我們的修正分享1:

apt install intel-microcode
我們的修正分享2:
WARN: systemd-boot package installed on legacy-boot system is not necessary, consider removing it
apt purge systemd-boot
重新檢查:

升級會將系統軟體源從 Debian 12 (Bookworm) 切換到 Debian 13 (Trixie)。
第一步:修改 APT 軟體源
將所有 /etc/apt/sources.list 中的 bookworm 改為 trixie:
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
同時檢查 /etc/apt/sources.list.d/ 底下的所有文件(如 pve-enterprise.list 或 pve-no-subscription.list),確保版本名都已更新。
第二步:更新並執行升級
執行以下指令開始抓取新版本套件並升級:
apt update
apt dist-upgrade

注意: 過程中會彈出許多詢問視窗(關於設定檔覆蓋)。 如果你沒有手動修改過該設定檔,通常選 "Yes (Install the package maintainer's version)"。 sshd_config 建議選 "Yes" 以確保相容性。 grub 建議選 "Keep the local version"(保留本地版本),除非你很確定需要更新。
注意: 過程中會彈出許多詢問視窗(關於設定檔覆蓋)。
如果你沒有手動修改過該設定檔,通常選 "Yes (Install the package maintainer's version)"。
sshd_config 建議選 "Yes" 以確保相容性。
grub 建議選 "Keep the local version"(保留本地版本),除非你很確定需要更新。

第三步:虛擬機的處理建議
- 單機環境: 升級過程本身不會關閉 VM,但升級完成後必須重啟 PVE 主機以加載新內核(Linux Kernel 6.14+)。這意味著 VM 會有短暫的停機時間。
- 叢集(Cluster)環境: 這是實現「零中斷」的最佳方式。
- 將 VM Live Migrate(在線遷移) 到其他 PVE 8 節點。
- 升級該空節點到 PVE 9。
- 重啟該節點。
- 將 VM 遷回已升級的 PVE 9 節點(PVE 支持從舊版本遷往新版本)。
第四步:升級後的檢查
重啟後,請執行以下命令確認版本:
pveversion
再次運行 pve8to9 --full 看看是否有遺留問題。最後,別忘了清理瀏覽器快取,否則 Web UI 可能會出現顯示錯誤。
常見風險提示
1. cgroup v2: PVE 9 完全捨棄了 cgroup v1。如果你有運行極舊的容器(如 CentOS 7),它們可能無法在新系統啟動。
2.網卡名稱變動: 少數情況下,Debian 更新會導致網卡名稱(如 eth0 變 enp1s0)改變,若升級後無法連網,請進主機檢查 /etc/network/interfaces。
當 Web UI 看不到機器,但主機有開機時,通常是因為 Debian 13 (Trixie) 更改了網卡的命名規則,導致原本寫在 /etc/network/interfaces 裡的設定失效(例如系統現在叫 enp2s0,但設定檔還在找 eno1)。
因為目前無法透過網路連線,你必須使用 實體螢幕與鍵盤 或 iDRAC/IPMI/KVM-over-IP 登入該機器的終端機。
以下是修復步驟:
ip link1.尋找狀態為 DOWN 或沒有 IP 的網卡。
記下新的名稱(例如:enp1s0 或 enp2s1)。

像是enpes0f0
2.修改網路設定檔
使用編輯器修改 Debian 的網路配置文件:
nano /etc/network/interfaces
動作: 將所有舊的名稱(如 eno1)替換為你在 ip link 看到的新名稱(如 enpes0f0)。

存檔離開後,強制重啟網路服務並且重新開機檢查pve-cluster 服務。
pvecm status
systemctl status pve-cluster
如果升級時遇到問題:
執行 cat /etc/apt/sources.list,應包含:
deb http://ftp.debian.org/debian trixie main contrib non-free-firmware
deb http://ftp.debian.org/debian trixie-updates main contrib non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free-firmware
檢查 Proxmox 專屬源:
這最常被遺漏。請檢查 /etc/apt/sources.list.d/pve-install-repo.list(或類似名稱的檔案): 如果你沒有購買訂閱,內容應為:
deb http://download.proxmox.com/debian/pve trixie pve-no-subscription

如果你是用企業版,請確保指向 pve-enterprise 且版本是 trixie。
如果你遇到提示要刪除 proxmox-ve,請執行以下指令來查看「是誰」導致了衝突:
apt-get dist-upgrade -o Debug::pkgProblemResolver=yes
或者嘗試手動指定要保留 proxmox-ve:
apt install proxmox-ve
這通常會暴露出具體是哪個套件(如舊版的核心或某個插件)版本卡住了。可以協助你望下解決問題。
請確認您的 /etc/apt/sources.list.d/ 目錄下是否還有殘留 bookworm 字樣的檔案? 您可以執行 grep -r "bookworm" /etc/apt/sources.list* 來快速檢查。所有 bookworm 都必須改成 trixie 才能繼續。
祝大家升級愉快順利!

















