目 录CONTENT

文章目录

PVE主机整机备份还原

过客
2025-11-21 / 0 评论 / 2 点赞 / 14 阅读 / 0 字

准备装已使用的pve8升9了,但是,升级前做一个整机备份,以防万一。

✅当前环境

  • PVE 系统盘​:/dev/sda(包含 //boot 等系统分区)
  • 虚拟机磁盘​:整个 /dev/sdb,挂载在 /mnt/lvm(​不备份​)
  • 数据存储​:由 sdc~sdg 组成的 mdadm RAID5,挂载在 /mnt/data(​也不备份内容​)
  • 目标​:仅备份 ​PVE 主机系统本身​(即 /dev/sda 上的内容),并将备份存放到 /mnt/data/pve-system-backup/

🔧备份

1. 先停掉所有虚拟机、LXC,以及停掉 pvedaemon, corosync 等。

# 停掉所有虚拟机
qm list
# 停掉running状态虚拟机id
qm stop <vmid>

# 停掉所有LXC
pct list 

# 停掉running状态LXC id
pct stop <vmid>

# 停掉pvedaemon、corosync等
systemctl stop pvedaemon
systemctl stop corosync

2. 创建备份目录

mkdir -p /mnt/data/pve-system-backup
  • 执行 rsync 备份命令
rsync -aAXHv --numeric-ids \
  --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/lost+found"} \
  --exclude="/mnt/*" \
  --exclude="/swapfile" \
  --exclude="/var/lib/vz/*" \
  / /mnt/data/pve-system-backup/

3. 关键说明:

  • --exclude="/mnt/*":不备份外挂目录
  • --exclude="/swapfile":不备份交换文件
  • --exclude="/var/lib/vz/*":不备份默认镜像、磁盘文件目录。这些文件比较大可以独立cp备份,还原时再cp回去。文件太大了使用rsync时有可能因权限、大小或磁盘布局不同导致问题。
  • 如果还有其他目录可以用--exclude排除
  • --numeric-ids:保留原始 UID/GID,避免恢复时权限错乱
  • 结尾的 / 很重要:/ 表示“根目录内容”,目标目录会接收这些内容
  • 等待长时间备份,备份结果结构示例

🔁还原

假设系统盘 sda 损坏 或 系统无法进入。

1. 安装相同版本的 Proxmox VE 到新 sda

  • 使用官方 ISO 安装 完全相同的 PVE 版本
  • 分区方案尽量一致(至少要有 //boot

2. 挂载 RAID5 并进入系统

# 启动新系统后,RAID5 应自动组装并挂载到 /mnt/data
# 若未自动挂载:
mdadm --assemble --scan
mount /dev/mdX /mnt/data  # 替换为你的 md 设备名

3. 停止服务并还原系统

systemctl stop pve-cluster corosync pvedaemon

# 清空当前根目录(谨慎!确保是新装系统)
# 更安全做法:只覆盖关键目录,或直接格式化 /

# 还原(假设备份在 /mnt/data/pve-system-backup-20251121)
rsync -aAXHv --numeric-ids \
  --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/lost+found"} \
  /mnt/data/pve-system-backup/ /

4. 重建 swapfile

# 删除可能残留的旧 swapfile(如果还原时不小心包含了)
sudo swapoff /swapfile
sudo rm -f /swapfile

# 创建新的(例如 8GB)
sudo fallocate -l 8G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

# 永久生效:确保 /etc/fstab 中有这一行
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

5. 修复引导

mount --bind /dev /dev
mount --bind /proc /proc
mount --bind /sys /sys
chroot / <<EOF
grub-install /dev/sda
update-grub
update-initramfs -u -k all
exit
EOF

6. 重启

reboot

重启后,PVE 配置、网络、存储定义都会恢复。
由于 VM 磁盘仍在 /dev/sdb(挂载到 /mnt/lvm),只要 storage.cfg 正确,PVE 会自动识别它们!

2
Pve
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区