开源软件企业

pve重装 备份+恢复

2026/2/11 11:14:08

备份核心配置文件 这个命令可以作为 pve 日常安全备份脚本定期执行
# 备份PVE集群配置与虚拟机配置 
 加 -P 参数保留绝对路径,-v 显示备份进度(可选) 

tar -czPf pve_config_$(date +%Y%m%d).tar.gz /etc/pve/ /etc/network/interfaces /etc/hosts /etc/resolv.conf
挂载点 需要查询一下



记录关键信息


    存储类型(LVM/ZFS/EXT4)、卷组名 / 池名、挂载点
    网络配置(IP、网关、DNS)、硬件直通设置
    虚拟机 ID、名称、硬件配置

挂载原有数据盘

    识别数据盘:fdisk -l或lsblk
    挂载 EXT4/XFS:


mkdir /mnt/sda1   # 假设数据盘为sda1
mount -t ext4 /dev/sda1  /mnt/sda1




    激活 LVM 卷组:


vgscan # 扫描卷组 


vgchange -ay old_vg # 激活卷组(old_vg为原卷组名)   这里的 pve 就是你的原卷组名,而不是示例里的old_vg。

lvscan # 查看逻辑卷 

mount /dev/old_vg/vm-100-disk-0 /mnt/old-vm # 挂载虚拟机磁盘
    

导入 ZFS 存储池:


zpoolimport# 列出可导入的池zpoolimport-f-mdata# 导入名为data的池(-f强制,-m挂载)
恢复虚拟机配置与数据

复制原配置文件:

运行
cp/mnt/old-data/etc/pve/qemu-server/100.conf /etc/pve/qemu-server/

    重新添加存储:Web UI→数据中心→存储→添加→选择对应存储类型(LVM/ZFS/ 目录),指向挂载点
    刷新虚拟机:

bash
运行
qm disk rescan# 扫描磁盘,虚拟机应自动显示

    若未显示:创建相同 VM ID 的空虚拟机,然后重新扫描或手动添加磁盘


通过备份文件恢复 PVE 容器(数据存于独立数据盘)完整指南

你的场景是:容器数据存放在独立数据盘,重装 PVE 后,通过备份文件恢复容器配置与数据。核心思路是:先恢复 PVE 系统配置 → 激活并挂载原有数据盘存储 → 恢复容器配置 → 验证容器可用性

一、重装 PVE 系统(关键前提)

  1. 安装介质:使用与原系统版本一致或兼容的 PVE ISO。
  2. 磁盘选择仅选择系统盘进行安装,绝对不要格式化独立数据盘
  3. 网络配置:重装时设置与原系统相同的 IP、网关、主机名,避免后续网络与集群问题。
  4. 完成安装:重启后,确保 PVE 能正常启动,Web UI 可访问。

二、恢复 PVE 核心配置

1. 上传备份文件

将之前备份的配置文件(如pve_config_20260211.tar.gz)和容器 / 虚拟机备份文件(.tar.zst或.vma.zst)上传到新 PVE 服务器,例如:




# 上传配置备份到 /root 目录 
scp pve_config_20260211.tar.gz root@新PVE_IP:/root/ 
# 上传容器备份到默认备份目录 这个我没有
scp vzdump-lxc-200-2026_02_11.tar.zst root@新PVE_IP:/var/lib/vz/dump/




2. 恢复系统配置




# 解压配置备份到根目录,还原 /etc/pve 等关键配置 
tar -xzvf /root/pve_config_20260211.tar.gz -C / 
# 重启集群服务使配置生效 
systemctl restart pve-cluster pvedaemon pveproxy
 验证:执行ls /etc/pve/lxc/,应能看到原容器的.conf配置文件(如200.conf)。





三、激活并挂载独立数据盘存储

根据你的数据盘存储类型(LVM/ZFS/ 目录),执行对应操作:


情况 :数据盘为普通目录(EXT4/XFS)

  1. 挂载数据盘

    # 查看数据盘设备名(如 /dev/sdb1) lsblk 
    # 创建挂载点 mkdir -p /mnt/pve-data # 挂载 mount /dev/sdb1 /mnt/pve-data # 写入 fstab 确保开机自动挂载 echo '/dev/sdb1 /mnt/pve-data ext4 defaults 0 0' >> /etc/fstab
  2. 在 PVE 中添加目录存储
    • Web UI:数据中心 → 存储 → 添加 → 目录 → 路径填写/mnt/pve-data,ID 与原存储名一致。

      这个ID 可以在 conf中查到

    • 
      					

关键:存储 ID 必须与原系统一致,否则容器配置文件中的磁盘路径会失效。




四、恢复容器
    将旧 PVE 8.1 的/etc/pve/qemu-server/下的.conf文件(如100.conf、101.conf)复制到新 PVE 9.1 的对应目录
   位置:
    pve_config_20260211new\etc\pve\nodes\pve\qemu-server


需要检查 / 修改的核心参数:
表格
不兼容参数(8.1) 适配为(9.1) 说明
cpu: host cpu: x86-64-v2-AES或保留host PVE9.1 对 CPU 类型校验更严格,host需确保宿主机 CPU 支持,否则改为通用类型
machine: pc-i440fx-7.1 machine: pc-i440fx-8.0或q35-8.0 QEMU 版本升级,机器类型需匹配 9.1 的 QEMU 版本
net0: virtio=XX:XX:XX,bridge=vmbr0 保留,但检查bridge=vmbr0是否存在 PVE9.1 的网桥名称若变化需同步修改
bios: seabios 保留(兼容),若需 UEFI 需重新配置 OVMF 无强制修改,但 UEFI 虚拟机需确保 OVMF 文件存在


四:扫描磁盘并启动虚拟机

# 1. 扫描存储中的虚拟机磁盘 qm disk rescan


五、恢复后验证与优化

  1. 容器内部验证
    bash
    运行
    # 进入容器 pct enter 200 # 检查数据完整性 ls /data # 查看业务数据目录 # 测试服务 systemctl status nginx # 示例:检查 Web 服务 
  2. 网络与权限检查
    • 确认容器 IP、端口映射与原系统一致。
    • 检查挂载点权限(如/data目录的属主 / 权限)。
  3. 优化设置
    • 重新配置定时备份任务(计划任务 → 添加任务 → 备份容器)。
    • 验证硬件直通(如 GPU、PCI 设备)是否正常。

六、常见问题排查

  1. 容器启动失败
    • 检查/etc/pve/lxc/200.conf中的磁盘路径是否与存储名匹配。
    • 执行pct start 200 --debug查看详细错误日志。
  2. 存储未识别
    • 确认卷组 / 池已激活(vgs/zpool list)。
    • 检查 PVE 存储配置(/etc/pve/storage.cfg)是否正确。
  3. 数据丢失
    • 若从备份恢复,确认备份文件未损坏(tar -tzf 备份文件查看内容)。
    • 若直接挂载数据盘,检查磁盘是否有坏道(smartctl -H /dev/sdb)。