使用libvirt.org/go/libvirt中的DomainCreateXML(marshal, libvirt.DOMAIN_NONE)方法创建虚拟机报错'virError(Code=27, Domain=20, Message='XML 错误:an os must be specified')',这是因为XML中缺少操作系统的类型,需要在标签中添加标签来指定操作系统类型。

例如,对于CentOS 8操作系统,可以添加以下代码:

<os>
  <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
  <loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
  <nvram>/var/lib/libvirt/qemu/nvram/myvm_VARS.fd</nvram>
  <boot dev='hd'/>
</os>

其中,标签中的arch属性指定了操作系统的架构,machine属性指定了使用的虚拟机类型,hvm表示完全虚拟化。标签指定了UEFI的启动文件,标签指定了UEFI的NVRAM文件,标签指定了启动设备。

对于不同的操作系统类型和版本,需要根据实际情况进行配置。同时,需要确保使用的虚拟机类型和UEFI启动文件的路径正确。

系统类型为Linux和为Windows时,应该如何配置内容

Linux系统

对于大多数Linux发行版,可以使用以下配置:

<os>
  <type arch='x86_64' machine='pc-i440fx-2.9'>hvm</type>
  <loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
  <nvram>/var/lib/libvirt/qemu/nvram/myvm_VARS.fd</nvram>
  <boot dev='hd'/>
</os>

Windows系统

对于Windows系统,需要使用以下配置:

<os>
  <type arch='x86_64' machine='pc-i440fx-2.9'>windows</type>
  <loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
  <nvram>/var/lib/libvirt/qemu/nvram/myvm_VARS.fd</nvram>
  <boot dev='hd'/>
</os>

注意:

  • 以上配置仅供参考,实际配置可能根据具体情况有所不同。
  • 需要确保UEFI启动文件和NVRAM文件的路径正确。
  • 可以参考libvirt官方文档获取更多配置信息:https://libvirt.org/go/libvirt/
使用libvirt创建虚拟机报错'XML 错误:an os <type> must be specified'的解决方法

原文地址: https://www.cveoy.top/t/topic/f2Pq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录