使用 Libvirt 创建虚拟机时遇到 '内部错误:缺少域类型属性' 错误的解决方法

在使用 libvirt.org/go/libvirt 中的 DomainCreateXML(marshal, libvirt.DOMAIN_NONE) 方法创建虚拟机时,你可能会遇到以下错误信息:

virError(Code=1, Domain=20, Message='内部错误:缺少域类型属性')

问题原因

该错误提示表明在你的虚拟机配置文件中缺少 type 属性,该属性用于指定虚拟机的类型。

解决方法

如错误信息所示,你需要在 <domain> 标签中添加 type 属性,并指定虚拟机的类型。

修改后的代码:

<domain type='kvm'>
  <name>hulian</name>
  <memory unit='MB'>4096</memory>
  <vcpu>2</vcpu>
  <os>
    <loader type='bios'></loader>
  </os>
  <features>
    <hyperv>
      <relaxed state='off'></relaxed>
      <vapic state='off'></vapic>
      <spinlocks state='off'></spinlocks>
      <vpindex state='off'></vpindex>
      <runtime state='off'></runtime>
      <synic state='off'></synic>
      <stimer state='off'></stimer>
      <reset state='off'></reset>
      <vendor_id state='off'></vendor_id>
      <frequencies state='off'></frequencies>
      <reenlightenment state='off'></reenlightenment>
      <tlbflush state='off'></tlbflush>
      <ipi state='off'></ipi>
      <evmcs state='off'></evmcs>
      <avic state='off'></avic>
    </hyperv>
  </features>
  <devices>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'></driver>
      <source file='/home/wufan/testKvm/hulian/sata.qcow2'></source>
      <target bus='sata'></target>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'></driver>
      <source file='/home/wufan/testKvm/hulian/ide.qcow2'></source>
      <target bus='ide'></target>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'></driver>
      <source file='/home/wufan/CentOS-8.5.2111-x86_64-boot.iso'></source>
    </disk>
    <controller type='usb' model='ich9-ehci1'></controller>
    <filesystem type='mount'>
      <source dir='/home/wufan/testKvm/shared'></source>
      <target dir='/etc'></target>
    </filesystem>
    <interface type='network'>
      <source network='default'></source>
      <model type='e1000'></model>
    </interface>
    <graphics type='vnc' keymap='en-US'></graphics>
    <video>
      <model type='vga'></model>
    </video>
  </devices>
</domain>

注意:

  • type 属性的值替换为实际使用的虚拟机类型,例如 kvmqemu 等。
  • 确保配置文件中的其他部分设置正确。

添加 type 属性并保存配置文件后,再次调用 DomainCreateXML 方法即可成功创建虚拟机。

使用 Libvirt 创建虚拟机时出现 '内部错误:缺少域类型属性' 错误的解决方法

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

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