使用 virt-install 创建来宾后如何删除它

Eri*_*und 25 installation libvirt kvm-virtualization

我从命令行创建了一个 KVM 来宾,virt-install其中使用了命令行选项--disk pool=vg0,size=20--name virt1.example.com.

如何从命令行删除此 KVM 来宾?我不再需要它了。

只是为了记录整个命令行是

virt-install --debug --hvm --vnc --name virt1.example.com --os-type=linux --os-variant=rhel6 --pxe --network network=default,model=e1000,mac=02:54:00:13:be:e4 --disk pool=vg0,size=20 --ram 1024 --vcpus=1 
Run Code Online (Sandbox Code Playgroud)

这是一些额外的信息

[root@server ~]# virsh vol-list vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh list
 Id Name                 State
----------------------------------
  3 virt1.example.com running
Run Code Online (Sandbox Code Playgroud)

更新

运行这三个命令似乎删除了已安装的 KVM

virsh destroy virt1.example.com
virsh undefine virt1.example.com
virsh vol-delete --pool vg0 virt1.example.com.img
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅终端会话:

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
 3 virt1.example.com running

[root@server ~]# virsh undefine virt1.example.com
error: Failed to undefine domain virt1.example.com
error: Requested operation is not valid: cannot delete active domain

[root@server ~]# virsh destroy virt1.example.com
Domain virt1.example.com destroyed

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------
  - virt1.example.com shut off

[root@server ~]# virsh undefine virt1.example.com
Domain virt1.example.com has been undefined

[root@server ~]# virsh list --all
 Id Name                 State
----------------------------------

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        
virt1.example.com.img /dev/vg0/virt1.example.com.img  

[root@server ~]# virsh vol-delete --pool vg0 virt1.example.com.img
Vol virt1.example.com.img deleted

[root@server ~]# virsh vol-list --pool vg0
Name                 Path                                    
-----------------------------------------
lv0                  /dev/vg0/lv0                            
lv_swap              /dev/vg0/lv_swap                        

[root@server ~]# cat /etc/issue
CentOS Linux release 6.0 (Final)
Kernel \r on an \m

[root@server ~]# virsh --version
0.8.1
Run Code Online (Sandbox Code Playgroud)

mai*_*ilq 29

根据 virsh 的手册,这是:

virsh destroy _domain-id_
virsh undefine _domain-id_
virsh vol-delete --pool vg0 _domain-id_.img
Run Code Online (Sandbox Code Playgroud)

它进一步说:“取消定义(销毁)非活动域的配置。由于域未运行,因此必须使用域名或 UUID 作为域 ID。”

  • 对于那些好奇的人,这就是这些命令的作用:`virsh destroy` 强制关闭虚拟机,`virsh undefine` 从 KVM 中删除配置,而 `virsh vol-delete` 删除实际的磁盘映像。如果您需要获取 `_domain-id_`,请键入 `virsh list --all` 以获取您的 VM 列表。 (5认同)
  • 该配方已在 [virt-utils](https://github.com/larsk /virt-utils),其中还有一些其他有用的脚本。 (3认同)