Virsh 域名中有空格,无法删除

Virsh 域名中有空格,无法删除

我无法启动或销毁域名:

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 1     pxe                            running
 -     Centos_6.5_64                  shut off
 -     Git Server                     shut off

我无法启动域:

virsh # start Git
error: failed to get domain 'Git'
error: Domain not found: no domain with matching name 'Git'

virsh # start Git Server
error: unexpected data 'Server'

因此我无法销毁该域名。

我怎样才能分配 ID 或者以其他方式删除该虚拟机?

因为它里面有一个空格,所以我无法像管理其他域那样管理它。

我知道它们不应该有空格,但话又说回来,最终用户并不总是听从他们所说的:P

感谢您提供的任何帮助。

答案1

孩子们,不要在家里尝试这个:

Libvirt 应该拒绝创建名称中带有空格的域,所以有人做了一些奇怪的事情来创建该域。要从中恢复过来,需要手动编辑一些通常不应该手动接触的文件。

所以我会这样做:

  1. 停止 libvirtd(您的虚拟机将继续运行)。

    service libvirtd stop
    
  2. 找到有问题的 XML 文件,它应该位于中的某个地方/etc/libvirt/qemu

    # ls /etc/libvirt/qemu
    autostart
    Centos_6.5_64.xml
    Git Server.xml
    networks
    pxe.xml
    
  3. 重命名有问题的文件。

    # mv /etc/libvirt/qemu/Git\ Server.xml /etc/libvirt/qemu/Git_Server.xml
    
  4. 编辑有问题的文件中的名称。

    # vi /etc/libvirt/qemu/Git_Server.xml
    
    <domain type='kvm'>
      <name>Git_Server</name>
    ...
    
  5. 重新启动 libvirtd。

    service libvirtd start
    

答案2

这(如今)实际上很简单:

$ virsh destroy "Git Server"
$ virsh undefine "Git Server"

相关内容