開始前先了解
本篇適用於已運作的 Proxmox VE 9 節點, 示範介面為 9.2.21, 底層 Debian 13 代號為 trixie. 這不是從 Proxmox VE 8 升級到 9 的程序, 不要將其他版本的來源直接改名套用.
請使用有節點管理權限的帳號, 並準備節點的遠端主控台或現場支援. 下方命令全部在 Proxmox VE 節點的命令列 執行, 不是在 Ubuntu 虛擬機內執行.
本次實測已修正來源並成功刷新, 模擬結果為沒有待更新套件. 沒有實際安裝更新, 沒有重新開機, 也沒有驗證新核心開機. 有待更新套件的主機, 仍需完成維護與復原準備後再安裝.
本系列使用 Proxmox VE 9 繁體中文介面的真實截圖. 節點, 儲存名稱與示範數值請換成自己的環境; 作業系統安裝程式可能維持其原有語言.
01確認節點版本, 並先安排備份與維護時段
選擇左側節點, 開啟 概觀, 記錄 管理器版本, 核心版本 與 開機模式. 本例為 Proxmox VE 9.2.21, 執行中的核心是 7.0.14-23-pve, 使用 Legacy BIOS.
先列出節點上正在運作的 VM 與 CT, 確認哪些服務不能中斷. 單一節點重新開機會影響其上的客體; 有叢集也要先確認其他節點容量, 儲存可達性與叢集狀態, 才能安排遷移.
- 將重要 VM 與 CT 備份到節點外的儲存位置, 並確認備份可讀及還原程序可用. 只把備份放在同一顆實體硬碟, 無法處理該硬碟損壞.
- 另行保存節點設定, 包含 /etc/pve, 網路與儲存配置, 開機與磁碟配置紀錄. 設定內可能含憑證或金鑰, 應存放在受控位置, 不貼到公開討論區.
- 確認遠端主控台, 維護聯絡方式與可用的救援媒體. 主機若無法開機, 單靠 SSH 無法修復.
VM 快照只涵蓋該客體的特定狀態, 不能代替節點作業系統與設定備份, 也不能防止同一儲存設備故障. 請先完成 虛擬機備份 與復原準備.
放大圖片
02查看套件庫, 區分訂閱來源與非訂閱來源
在同一節點開啟 更新 下的 套件庫. 逐列檢查 網址, 套件 與 組件, 不要只看狀態圖示. 本例原本同時啟用 Enterprise 與第三方鏡站, 但節點沒有有效訂閱.
Proxmox VE 9 應搭配 Debian trixie. Debian 基礎來源, trixie-security 與 trixie-updates 都要保留; 只有 Proxmox 套件庫並不足夠. 本例 Debian 來源已正確, 因此沒有重寫它們.
| 來源 | 使用條件與選擇 |
|---|---|
| Enterprise / pve-enterprise | 需要有效訂閱. 正式環境優先採用官方建議的 Enterprise 來源與相應支援. |
| No-Subscription / pve-no-subscription | 不需要訂閱, 適合測試與非正式環境. 官方不建議用於正式環境, 其套件未經與 Enterprise 相同程度的測試及驗證. |
| Test / pve-test | 用於測試新功能或修正. 不應為了消除更新錯誤而改用此來源. |
本篇示範主機選擇 No-Subscription. 這個選擇不會產生企業訂閱或支援權益, 也不代表取得與 Enterprise 相同的穩定驗證承諾. 有有效訂閱的正式主機, 請保留正確 Enterprise 來源, 不必照本例停用.
放大圖片
03備份來源設定, 再停用不適用與重複來源
開啟節點 命令列, 先將現有來源設定備份到只有管理員能存取的目錄. 下列命令會建立含時間的目錄, 保留原有檔案與權限:
apt_sources_backup="/root/apt-sources-backup-$(date +%Y%m%d-%H%M%S)"
install -d -m 700 "$apt_sources_backup"
cp -a /etc/apt/sources.list.d "$apt_sources_backup/"
if [ -f /etc/apt/sources.list ]; then
cp -a /etc/apt/sources.list "$apt_sources_backup/"
fi
若主機全部使用 deb822, 不一定有 /etc/apt/sources.list. 上述命令只在該檔存在時複製, 來源目錄則一併保存. 確認建立目錄與複製命令沒有錯誤, 並核對備份內容, 才繼續停用來源; 不要為了符合範例建立多餘來源.
回到 套件庫, 選取不適用的 Enterprise 來源, 按 停用; 再選取本例原有的第三方鏡站並停用. 保留原紀錄, 不刪除來源檔. Debian 三類來源則維持啟用.
此時暫時顯示沒有啟用 Proxmox VE 套件庫, 是尚未補上新來源的中間狀態, 不代表已完成. 本例沒有 Ceph 來源; 若您的主機使用 Ceph, 需另外依實際部署版本與訂閱條件核對, 不要一起任意停用.
放大圖片
04建立官方 No-Subscription deb822 來源
一般可在套件庫按 增加, 選擇 No-Subscription. 但本例已存在相同組件的第三方鏡站, 實際按增加後, 介面重新啟用了那筆舊來源. 選到 No-Subscription 不等於網址一定已改成官方.
本例再次停用舊鏡站, 改由節點命令列建立獨立官方來源. 先確認目標檔案尚不存在, 且 /usr/share/keyrings/proxmox-archive-keyring.gpg 可讀. 如果已有同名檔案, 先檢查內容與備份, 不要直接覆蓋.
cat > /etc/apt/sources.list.d/pve-no-subscription.sources <<'EOF'
Types: deb
URIs: http://download.proxmox.com/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
核對輸出與上述內容一致. 檔名可以不同, 但副檔名必須是 .sources, 而網址, suite, component 與簽章 keyring 要正確. 官方文件範例使用 proxmox.sources; 本例用獨立檔名方便辨識此次新增的來源.
保留 Signed-By 簽章驗證, 不加入 trusted=yes 或略過簽章檢查. 若 keyring 不存在或出現簽章錯誤, 先依官方安裝方式核對金鑰, 不要透過關閉驗證來繼續.
放大圖片
05回介面核對最終網址, 版本與啟用狀態
回到 套件庫, 按 重新載入. 確認新增的一列啟用, 網址為 http://download.proxmox.com/debian/pve, 套件欄為 trixie, 組件為 pve-no-subscription.
再次確認原 Enterprise 與第三方鏡站都停用, Debian 基礎, security 與 updates 仍啟用. 不要同時混用 bookworm, trixie 或 Test 來源, 也不要為了讓清單變綠而刪掉 Debian 安全來源.
本例仍顯示 不建議將 無技術支援合約 套件庫用在正式環境 的警告. 這是所選來源的使用提醒, 不表示這筆官方來源設定失敗, 也不應隱藏提醒來假裝已取得訂閱.
放大圖片
06刷新索引, 確認完整作業成功
開啟節點 更新, 按 重新整理. 若顯示沒有技術支援合約提醒, 確認目前選擇的是適用的非訂閱來源後按 確定, 等候 更新套件資料庫 作業結束.
閱讀作業輸出, 確認取得 Debian 與官方 Proxmox 索引, 沒有繼續連到已停用的 Enterprise 或舊鏡站. 看到最後的 TASK OK 才表示此次索引刷新完成.
本例刷新後清單顯示 沒有可用的更新. 這是當下已設定來源與時間點的結果, 不是永久不需要更新, 也不能在來源刷新失敗時僅憑空白清單作此判斷.
命令列的對應操作是 apt update, 它只刷新可用套件索引, 不會把所有套件安裝成新版. 若出現 401, 404, DNS 或簽章錯誤, 先修正相應的訂閱, 來源版本, 連線或金鑰問題, 不要直接進行升級.
放大圖片
07查看待更新套件, 先模擬再決定是否安裝
若更新頁列出套件, 先核對目前與最新版本, 選取套件並查看 變更記錄. 核心, 網路, 儲存與虛擬化元件的更新, 應納入完整維護計畫.
在節點命令列執行以下查詢與模擬. 請完整保留 --simulate, 這組命令不安裝套件:
apt list --upgradable
apt full-upgrade --simulate
printf 'simulation_exit_code=%s\n' "$?"
閱讀 Upgrading, Installing, Removing 與 Not Upgrading, 也核對每筆預計變更. full-upgrade 可能為處理相依性而移除套件. 若計畫移除 proxmox-ve, 重要儲存或開機元件, 或出現無法處理的相依性, 先不要安裝, 並調查原因. 不要加強制參數或先移除核心套件.
本例模擬結束代碼為 0, 四項數量皆為 0, 因此沒有執行實際更新. 模擬只反映當下索引與套件狀態, 不驗證更新後服務或硬體相容性; 正式安裝前應再次核對, 且避免與其他套件管理作業同時執行.
有更新時, 應在備份, 維護窗口與復原方式都確認後, 才使用更新頁的升級功能執行實際安裝. 這會改動節點套件, 不能當作預覽按鈕. 本篇實測沒有點選升級或省略 --simulate.
放大圖片
08核對核心與開機空間, 保留可復原的路徑
在節點命令列核對執行中版本, 已安裝核心與開機空間. 下列都是查詢, 不會重新開機或刪除核心:
pveversion
uname -r
df -h / /boot
ls -lh /boot/vmlinuz-*
apt-mark showhold
dpkg --audit
本例只有一個已安裝核心, 與目前執行中的 7.0.14-23-pve 相同, /boot 可用約 305 MiB; 沒有因本次操作安裝新核心. apt-mark 與 dpkg 查詢沒有輸出, 分別表示本例沒有被 hold 的套件與待回報的套件稽核問題, 不代表所有服務已通過測試.
- 若正式更新安裝了新核心, 需安排節點重新開機才會使用它. 先確認客體正常關機或遷移安排, 不要看到安裝完成就立刻重新開機.
- 在新核心開機與業務驗證完成前保留可用的舊核心. 先確認 /boot 與實際開機分割區容量, 不要盲目執行 autoremove 或刪除目前核心.
- 重開後確認 uname -r, 管理介面, 實體網路, 儲存與 VM/CT 啓動, 再測試客體內的網站或應用程式. 登入管理頁成功只是其中一項.
- 新核心無法開機時, 可從遠端主控台評估選取已保留的舊核心. 這不會自動回復所有套件與設定; 必要時仍需修復或重裝節點, 再還原設定與客體備份.
開機方式依安裝配置不同. 不要因某個 proxmox-boot-tool 查詢不適用, 就直接執行 format 或 init. 本篇只完成來源修正, 索引刷新與唯讀檢查, 沒有重新開機或驗證核心切換.
放大圖片
完成後如何確認
示範節點已停用並保留原 Enterprise 與第三方鏡站紀錄, 新增官方 trixie 非訂閱來源, 保留原 Debian 基礎, 安全與更新來源及簽章驗證.
真實索引刷新作業為 TASK OK. full-upgrade --simulate 結束代碼為 0, 升級, 安裝, 移除與未升級數量皆為 0. 本次沒有實際安裝套件, 重新開機或進行新核心相容性測試.
有待更新套件的主機, 請依自己的維護時段與復原計畫完成正式安裝及驗證. 來源備份只保護來源設定, 不能代替節點或客體備份.
常見問題
沒有訂閱, 可以直接停用 Enterprise 嗎?
先確認沒有有效訂閱, 備份來源並選擇適用的替代來源, 才停用不適用項目. 不可只停用而沒有保留 Debian 與可用的 Proxmox 來源. 正式環境應評估 Enterprise 訂閱, 非訂閱來源仍有官方不建議用於正式環境的提醒.
刷新成功是否代表已安裝安全更新?
不是. 重新整理只取得索引; 模擬也只列出預計變更. 有待更新套件時, 仍需在維護時段執行正式安裝, 再驗證服務. 本例沒有待更新套件, 因此沒有安裝示範.
更新失敗, 還原虛擬機快照就夠了嗎?
VM 快照不會還原節點作業系統, 套件與開機配置. 請準備節點設定, 外部客體備份與主控台救援方式. 舊核心也只處理部分核心相容性問題, 不能當成整台節點的完整回復.