在Ubuntu的命令行终端里管理KVM虚拟机的教程

2020-02-03 14:27:46王振洲

$ virsh create alice.xml

停止虚拟机并且删除客户机:

复制代码
$ virsh destroy alice

关闭虚拟机(不用删除它):

复制代码
$ virsh shutdown alice

暂停虚拟机:

复制代码
$ virsh suspend alice

恢复虚拟机:

复制代码
$ virsh resume alice

访问正在运行的虚拟机的控制台:

复制代码
$ virsh console alice

设置虚拟机开机启动:

复制代码
$ virsh autostart alice

查看虚拟机的详细信息:

复制代码
$ virsh dominfo alice

编辑虚拟机的配置文件:

复制代码
$ virsh edit alice

上面的这个命令将会使用一个默认的编辑器来调用主机配置文件。该配置文件中的任何改变都将自动被libvirt验证其正确性。

你也可以在一个virsh会话中管理虚拟机。下面的命令会创建并进入到一个virsh会话中:

复制代码
$ virsh

在 virsh 提示中,你可以使用任何 virsh 命令。
201631111029309.jpg (800×472)

问题处理

我在创建虚拟机的时候遇到了一个错误:

error: internal error: no supported architecture for os type 'hvm'

如果你的硬件不支持虚拟化的话你可能就会遇到这个错误。(例如,Intel VT或者AMD-V),这是运行KVM所必需的。如果你遇到了这个错误,而你的cpu支持虚拟化,那么这里可以给你一些可用的解决方案:

首先,检查你的内核模块是否丢失。

复制代码
$ lsmod | grep kvm

如果内核模块没有加载,你必须按照如下方式加载它。

复制代码
$ sudo modprobe kvm_intel (for Intel processor)
$ sudo modprobe kvm_amd (for AMD processor)

第二个解决方案就是添加 --connect qemu:///system 参数到 virsh 命令中,如下所示。当你正在你的硬件平台上使用超过一个虚拟机管理器的时候就需要添加这个参数(例如,VirtualBox,VMware)。

$ virsh --connect qemu:///system create alice.xml
当我试着访问我的虚拟机的登陆控制台的时候遇到了错误:

复制代码
$ virsh console alice

 error: internal error: cannot find character device <null>
这个错误发生的原因是你没有在你的虚拟机配置文件中定义控制台设备。在 xml 文件中加上下面的内部设备部分即可。

  1. <console type='pty'>     <target port='0'/>