CentOS下如何备份VirtualBox虚拟机
导读:CentOS 宿主机上备份 VirtualBox 虚拟机的实用方案 一、方法总览与选择建议 快照(Snapshot):适合短期回滚(如补丁、升级前),操作最快,但依赖原磁盘链,长期保留和跨主机迁移不友好。 导出为 OVF/OVA:适合迁...
CentOS 宿主机上备份 VirtualBox 虚拟机的实用方案
一、方法总览与选择建议
- 快照(Snapshot):适合短期回滚(如补丁、升级前),操作最快,但依赖原磁盘链,长期保留和跨主机迁移不友好。
- 导出为 OVF/OVA:适合迁移与长期归档,一份文件(或一组文件)即可在任意主机导入恢复,推荐作为主备手段。
- 手动复制虚拟机目录:灵活、可配合 rsync/ tar 做增量与异地备份,适合有自定义存储布局与自动化需求的场景。
二、方法一 快照 快速回滚(适合临时保护)
- 操作路径
- 图形界面:选中虚拟机 → 点击顶部或侧边的快照 → 拍摄快照(填写名称与描述)。
- 命令行:VBoxManage snapshot “< VM 名称> ” take “< 快照名> ” --description “< 描述> ”
- 恢复
- 图形界面:快照列表中选择目标快照 → 恢复。
- 命令行:VBoxManage snapshot “< VM 名称> ” restore “< 快照名> ”
- 说明
- 快照保存的是“差异链”,便于快速回滚;但长期保留多个快照会影响性能与占用空间。
- 迁移到其他主机时,通常不携带快照链,建议用导出方式迁移。
三、方法二 导出为 OVF/OVA 迁移与归档(推荐)
- 导出步骤
- 图形界面:管理 → 导出虚拟电脑 → 选择虚拟机 → 选择保存位置与格式(OVF/OVA)→ 导出。
- 命令行:VBoxManage export “< VM 名称> ” -o “< 导出路径/xxx.ova> ”
- 导入步骤
- 图形界面:管理 → 导入虚拟电脑 → 选择 .ovf/.ova → 导入。
- 命令行:VBoxManage import “< xxx.ova> ”
- 迁移与校验要点
- 若导出时勾选了包含 ISO 光盘镜像,迁移后需确保 .ovf 中引用的 ISO 路径正确,或在导入前把 ISO 放到指定目录并更新引用。
- 导入后如网络不可用,检查管理 → 工具 → 网络管理器中的虚拟网卡配置(如 Host-Only/NAT)。
四、方法三 手动复制虚拟机目录 配合 rsync 或 tar 做增量备份
- 定位虚拟机目录
- 图形界面:选中虚拟机 → 设置 → 常规 → 高级 → 查看/复制虚拟机文件夹路径。
- 命令行:VBoxManage showvminfo “< VM 名称> ” | grep -i “Config file” 得到 .vbox 配置路径,其所在目录即为虚拟机目录。
- 备份与恢复
- 全量打包:tar czf vm_backup_$(date +%F).tar.gz -C “< 虚拟机目录> ” .
- 增量同步:rsync -aAX --delete “< 虚拟机目录> /” “< 备份目标目录> /”
- 注意事项
- VDI 虚拟磁盘有唯一 UUID,直接复制后可能无法在新环境中注册。可用命令行克隆生成新 UUID:
- VBoxManage clonehd “< 原VDI> ” “< 新VDI> ”
- 若虚拟机使用快照,建议先“删除/合并快照”为单一磁盘再备份,避免依赖链复杂化迁移。
- VDI 虚拟磁盘有唯一 UUID,直接复制后可能无法在新环境中注册。可用命令行克隆生成新 UUID:
五、自动化与异地备份示例脚本
- 快照 + 导出 OVA 的自动化
- 示例脚本(按需修改 VM 名称与路径):
- #!/usr/bin/env bash
set -e
VM=“centos7-test”
TS=$(date +%F_%H%M%S)
BACKUP_DIR=“/backup/vm/${
VM}
”
mkdir -p “$BACKUP_DIR”
1) 快照
VBoxManage snapshot “$VM” take “backup_${ TS} ” --description “Auto backup ${ TS} ”2) 导出 OVA
VBoxManage export “$VM” -o “${ BACKUP_DIR} /${ VM} _${ TS} .ova”3) 可选:清理 7 天前的快照(谨慎,确保业务允许)
VBoxManage snapshot “$VM” list | awk ‘/^Name: backup_/ { split($2,a,“_”); if (a[2] < "’$(date -d ‘7 days ago’ +%F)‘") print $2} ’ | xargs -r -I{ } VBoxManage snapshot “$VM” delete “{ } ”
- #!/usr/bin/env bash
set -e
VM=“centos7-test”
TS=$(date +%F_%H%M%S)
BACKUP_DIR=“/backup/vm/${
VM}
”
mkdir -p “$BACKUP_DIR”
- 定时任务(每天 2 点):
- 0 2 * * * /usr/local/bin/vm_backup.sh > > /var/log/vm_backup.log 2> & 1
- 示例脚本(按需修改 VM 名称与路径):
- 异地/离线拷贝
- 若备份介质为 U 盘/移动硬盘,注意文件系统:FAT32 不支持单个大于 4GB文件,建议用 exFAT/NTFS。
- 拷贝完成后做大小与数量校验,并在目标主机做一次导入验证。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS下如何备份VirtualBox虚拟机
本文地址: https://pptw.com/jishu/769770.html
