有时候需要对KVM进行统一重命名。

环境

  • ubuntu 16.04 LTS
  • KVM虚拟机
  • virsh管理工具

效果

将已有的名为 pc_vm94 的虚拟机重命名为 vm94

步骤

1. 使用  virsh list --all 命令查看所有的虚拟机

 $ virsh list --all                                                         
 Id    Name                           State                
----------------------------------------------------  
 2     pc_vm94                        running   

2. 导出原有虚拟机的配置文件

在导出配置之前使用 virsh shutdown pc_vm94 命令将虚拟机关闭。

 $ virsh shutdown pc_vm94 

virsh dumpxml命令将原来的虚拟机配置导出成xml文件

$ virsh dumpxml pc_vm94 > vm94.xml

(注意>前面并没有.xml ,这是因为它是需要重命名的虚拟机的名称。此步骤是将配置保存另到一个文件vm94.xml中 )

此指令执行之后就会发现当前目录下多了一个 vm94.xml 文件,这就是我们导出的xml文件。

3. 修改虚拟机的新的配置文件

$ vim vm94.xml #或者gedit vm94.xml
将\
 <domain type='kvm'>
    <name>pc_vm94</name>
...

更改为 
<domain type='kvm'>
    <name>vm94</name>

至于虚拟机所对应的磁盘文件。可以不做任何修改;

(强迫症的话也可以使用系统的mv指令将其改成与名称一致。如果虚拟机的磁盘文件修改的话,必须也要在xml文件中做对应的修改。备注:VM磁盘文件所在目录可在xml中查看,如我的是/var/lib/libvirt/images/)

4. 重新定义虚拟机

使用 virsh undefine 命令将之前的虚拟机删除

$ virsh undefine pc_vm94
Domain pc_vm94 has been undefined 

使用virsh define 命令将重新定义新的虚拟机

$ virsh define vm94.xml         
Domain vm94 defined from vm94.xml

 

5. 重命名成功

$ virsh list --all                                                 
 Id    Name                           State                 
----------------------------------------------------  
 -     vm94                           shut off 

end,大功告成

备注:

VM对应的xml文件在 /etc/libvirt/qemu 目录下,在virsh命令行下使用edit dom_name命令编辑的就是这个文件。

undefine命令删除某个VM之后, /etc/libvirt/qemu 目录下对应的该VM的xml文件也会被删除。

同理,define命令创建某个VM之后, /etc/libvirt/qemu 目录下就会生成该VM的xml文件。

 

参考博客:

https://blog.csdn.net/haiqinma/article/details/53332690?utm_source=copy