Virsh 域中有空间,无法删除

Dev*_*ops 2 libvirt virsh

我在启动或破坏域时遇到问题:

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 1     pxe                            running
 -     Centos_6.5_64                  shut off
 -     Git Server                     shut off
Run Code Online (Sandbox Code Playgroud)

我无法启动域:

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'
Run Code Online (Sandbox Code Playgroud)

因此,我无法破坏域。

如何分配 ID 或以其他方式删除此 VM?

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

我知道他们不应该有空格,但话说回来,最终用户并不总是听他们被告知的内容:P

感谢您提供的任何帮助。

Mic*_*ton 9

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

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

所以这就是我会做的:

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

    service libvirtd stop
    
    Run Code Online (Sandbox Code Playgroud)
  2. 找到有问题的 XML 文件,它应该在/etc/libvirt/qemu.

    # ls /etc/libvirt/qemu
    autostart
    Centos_6.5_64.xml
    Git Server.xml
    networks
    pxe.xml
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重命名有问题的文件。

    # mv /etc/libvirt/qemu/Git\ Server.xml /etc/libvirt/qemu/Git_Server.xml
    
    Run Code Online (Sandbox Code Playgroud)
  4. 编辑有问题的文件中的名称。

    # vi /etc/libvirt/qemu/Git_Server.xml
    
    <domain type='kvm'>
      <name>Git_Server</name>
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  5. 重新启动 libvirtd。

    service libvirtd start
    
    Run Code Online (Sandbox Code Playgroud)