Proxmox VE 單節點 重建系統&還原


  • 2025-04-17 彭俊源分享

  • 系統
    原系統: PVE 8.3.0
    新系統: PVE 8.4.0

  • 硬體:
    PVE系統碟: 100GB
    PVE datastore : 200GB (ZFS)

  • 虛擬機
    VM 100: rocky1 > PVE datastore
    VM 101: rocky9-minimal > PVE datastore

  • 流程說明:

  1. 將PVE 8.3.0 配置設定檔案 /etc/pve 打包備份至 /datastore
  2. pve8-3_config.tar.bz2 放置在 /datastore 備存。
  3. 將PVE 8.3.0 系統碟使用 PVE8.4 ISO重新安裝。
  4. 掛上ZFS datastore。
  5. 還原PVE 8.3配置檔案至 /etc/pve/

備份系統配置檔

  1. 點選pve8-3節點,執行 “命令列”

  2. 執行備份指令

1
root@pve8-3:~# tar jcvf /datastore/pve8-3_config.tar.bz2 /etc/pve

  1. 檢視備份檔案是否完成
1
root@pve8-3:~# ls -al /datastore/

![[Pasted image 20250417064147.png]]

  1. 將VM 100 VM101 進行關機
1
root@pve8-3:~# qm list

1
2
root@pve8-3:~# qm stop 100
root@pve8-3:~# qm stop 101

重新安裝Proxmox 8.4

  1. 安裝/dev/sda 100GB PVE統碟 <安裝過程 略>

  2. 已重新安裝完成 新系統 PVE 8.4

匯入ZFS Pool

  1. 先查看磁碟分配,確認datastore硬碟代號
1
root@pve:~# lsblk

  1. 查看/dev/sdb1 ZFS pool
1
root@pve:~# zpool import  -d /dev/sdb1

  1. 匯入zfs pool
1
root@pve:~# zpool import  -f datastore

  1. 重新加入ZFS datastore

  2. 新增 ZFS

  1. 這時確認Datacenter已加入datastore
1
root@pve:~# pvesm status

還原PVE Config

  1. 移動至/datastore 確認pve config 備份檔
1
root@pve:~# cd /datastore/
1
root@pve:~# cd /datastore/

  1. 解壓縮備份檔
1
root@pve:/datastore# tar jxvf pve8-3_config.tar.bz2

==因停用服務,Web GUI將暫停離線,這時可使用putty或其他ssh軟體連入PVE==

  1. 先行停用系統服務 pvedaemon 、pveproxy
1
root@pve:/datastore/etc/pve# systemctl stop pvedaemon.service  pveproxy.service

  1. 移動至/datastore/etc/pve 目錄 及確認當前目錄 pwd
1
2
3
4
root@pve:~# cd /datastore/etc/pve/

root@pve:/datastore/etc/pve# pwd

  1. 依實際需求還原以下檔案 (此例將演示還原橘色字部分config)
路徑 說明
/etc/pve/qemu-server/ KVM 虛擬機(VM)的設定檔(每台 VM 一個 .conf 檔)
/etc/pve/lxc/ LXC 容器的設定檔(每個 container 一個 .conf檔)
/etc/pve/storage.cfg 儲存空間(Storage)的設定檔
/etc/pve/datacenter.cfg 整個資料中心的全域設定
/etc/pve/user.cfg 使用者、群組、角色與權限設定
/etc/pve/priv/ 包含 SSH 金鑰與加密的私人設定資料(例如:憑證、使用者私鑰等)
/etc/pve/nodes/nodename/ 節點相關設定(如網路設定備份等)
/etc/pve/firewall/ 防火牆規則設定(如果有啟用 Proxmox 防火牆)
/etc/pve/ha/ 高可用性(HA)設定(如果有使用)
6. 還原設定檔
1
2
3
4
5
root@pve:/datastore/etc/pve# cp -r qemu-server/*  /etc/pve/
root@pve:/datastore/etc/pve# cp -r storage.cfg /etc/pve/
root@pve:/datastore/etc/pve# cp -r datacenter.cfg /etc/pve/
root@pve:/datastore/etc/pve# cp -r user.cfg /etc/pve/
root@pve:/datastore/etc/pve# cp -r nodes/pve8-3/* /etc/pve/nodes/pve/

  1. 啟用系統服務 pvedaemon 、pveproxy
1
2
root@pve:/datastore/etc/pve# systemctl start pvedaemon.service pveproxy.service

啟動虛擬機 100(rocky)、101(rocky-minimal)

  1. 回到Web GUI介面,可看到虛擬機config已恢復

  2. 因先前我們/etc/pve備份檔是放在 /datastore上,所以當時必須要手動先掛上ZFS讀取資料

但因還原/etc/pve/storage.cfg時,Datacenter下的datastore會消失,需要在手動掛上一次

  1. 左方Datacentor沒有datastore,需要重新Remove再次加入一次

  2. 點選 datasotre 後 按下 Remove > yes

  3. 重新點選Add > 加入ZFS

  4. 輸入ID後按下Add

  5. 此時左方datastore 已恢復

  6. 啟動虛擬機100(rocky)

1
root@pve:~# qm start 100

==這時會發現虛擬機無法開機,因當時未正確移除iso安裝檔==

  1. 修改 /etc/pve/qemu-server/100.conf 及 /etc/pve/qemu-server/101.conf
1
root@pve:/etc/pve/qemu-server# nano /etc/pve/qemu-server/100.conf
1
root@pve:/etc/pve/qemu-server# nano /etc/pve/qemu-server/100.conf
  1. 游標移至此行,將其刪除

  2. 刪除後 按下 ctrl +O 寫入存檔

  3. ctrl+X > Y > Enter 離開編輯

==虛擬機101也請依照上方步驟修正==

  1. 啟動虛擬機100(rocky)、101(rocky-minimal)
1
2
3
root@pve:~# qm start 100

root@pve:~# qm start 100

  1. 虛擬機已正常啟動運作

#proxmox

作者

Sam Peng

發表於

2025-05-09

更新於

2025-05-13

許可協議