当我尝试列出 VM 时,VM 上出现 libvirt-bin 错误

当我尝试列出 VM 时,VM 上出现 libvirt-bin 错误

我在 Arch Linux 主机上使用 Virtualbox 4.3.18,在 Ubuntu Server Cloud 访客计算机上使用 libvirt-bin 1.2.9。每当我尝试跟随本教程当我运行 virsh 时收到以下错误:

命令:

virsh -c vbox+ssh://[email protected]/system list --all

错误:

error: failed to connect to the hypervisor
error: internal error: unable to initialize VirtualBox driver API

有人知道如何解决这个问题吗?

答案1

您安装的 libvirtd 需要配置为处理 vbox+ssh 连接类型。此处介绍了如何执行此操作的详细信息,标题为:VirtualBox 虚拟机管理程序驱动程序

您需要将一个示例域 XML 配置加载到 libvirtd 中,以便它知道如何与 VirtualBox VM 通信。

摘录 - 示例配置
<domain type='vbox'>
  <name>vbox</name>
  <uuid>4dab22b31d52d8f32516782e98ab3fa0</uuid>

  <os>
    <type>hvm</type>
    <boot dev='cdrom'/>
    <boot dev='hd'/>
    <boot dev='fd'/>
    <boot dev='network'/>
  </os>

  <memory>654321</memory>
  <vcpu>1</vcpu>

  <features>
    <pae/>
    <acpi/>
    <apic/>
  </features>

  <devices>
    <disk type='file' device='cdrom'>
      <source file='/home/user/Downloads/slax-6.0.9.iso'/>
      <target dev='hdc'/>
      <readonly/>
    </disk>

    <disk type='file' device='disk'>
      <source file='/home/user/tmp/vbox.vdi'/>
      <target dev='hdd'/>
    </disk>

    <disk type='file' device='floppy'>
      <source file='/home/user/tmp/WIN98C.IMG'/>
      <target dev='fda'/>
    </disk>

    <filesystem type='mount'>
      <source dir='/home/user/stuff'/>
      <target dir='my-shared-folder'/>
    </filesystem>

    <!--BRIDGE-->
    <interface type='bridge'>
      <source bridge='eth0'/>
      <mac address='00:16:3e:5d:c7:9e'/>
      <model type='am79c973'/>
    </interface>

    <!--NAT-->
    <interface type='user'>
      <mac address='56:16:3e:5d:c7:9e'/>
      <model type='82540eM'/>
    </interface>

    <sound model='sb16'/>

    <parallel type='dev'>
      <source path='/dev/pts/1'/>
      <target port='0'/>
    </parallel>

    <parallel type='dev'>
      <source path='/dev/pts/2'/>
      <target port='1'/>
    </parallel>

    <serial type="dev">
      <source path="/dev/ttyS0"/>
      <target port="0"/>
    </serial>

    <serial type="pipe">
      <source path="/tmp/serial.txt"/>
      <target port="1"/>
    </serial>

    <hostdev mode='subsystem' type='usb'>
      <source>
        <vendor id='0x1234'/>
        <product id='0xbeef'/>
      </source>
    </hostdev>

    <hostdev mode='subsystem' type='usb'>
      <source>
        <vendor id='0x4321'/>
        <product id='0xfeeb'/>
      </source>
    </hostdev>
  </devices>
</domain>

将其保存到系统上的文件中,例如my.xml,然后用于virsh导入它。

$ virsh create my.xml

笔记:您还需要安装 libvirt 守护程序驱动程序。在 Fedora 20 上,它位于一个名为:的包中libvirt-daemon-driver-vbox。您将需要libvirt-daemon连同界面,libvirt-daemon-driver-interface.我假设 ArchLinux 上有类似的软件包提供这些功能。

参考

KVM/Virsh - Ubuntu 文档

相关内容