![KVM 尝试从备份中恢复并获取错误意外数据](https://linux22.com/image/764104/KVM%20%E5%B0%9D%E8%AF%95%E4%BB%8E%E5%A4%87%E4%BB%BD%E4%B8%AD%E6%81%A2%E5%A4%8D%E5%B9%B6%E8%8E%B7%E5%8F%96%E9%94%99%E8%AF%AF%E6%84%8F%E5%A4%96%E6%95%B0%E6%8D%AE.png)
您好,我按照以下步骤备份了 VM 客户机:
1. virsh dumpxml --migratable test > /backup/test.xml
2. virsh snapshot-create-as --domain test \
--name backup.qcow2 \
--no-metadata \
--atomic \
--quiesce \
--disk-only \
--diskspec vda,snapshot=external
3. cp /var/lib/libvirt/images/test.qcow2 /backup/
4. virsh blockcommit test vda --active --pivot
5. rm -f /var/lib/libvirt/images/test.backup.qcow2
备份后,我尝试测试是否可以从中恢复。
- 我正在关闭访客“测试”
- 不屈不挠的客人“测试”
- 从主图像文件夹中删除 qcow2 图像
- 然后将 qcow2 复制到主图像文件夹
- 尝试通过此命令定义:
virsh define -file /backup/test.xml
我收到了错误:error: unexpected data 'test.xml'
我做错了什么?我该如何解决这个问题?
答案1
当您收到提示语法问题的错误时,您应该始终先检查手册页。
virsh define
只需要一个参数,即应该从中加载 XML 定义的文件名。您已传递二参数。因此,它会认为您正在尝试加载一个名为的文件-file
,并且不知道您使用第二个参数表示什么意思test.xml
。
正确的语法是virsh define filename
。
答案2
你的 virsh 定义的问题是,正如 Hampton 所说,你应该删除选项 -file,或者如果你想保留它,它应该是双连字符,而不是单连字符。所以,它应该是 --file。
答案3
它的工作原理是双向的:
virsh define --file /backup/test.xml
或者
virsh define /backup/test.xml