如何为KVM guest虚拟机启用Virsh控制台访问

时间:2020-03-21 11:44:20  来源:igfitidea点击:

创建KVM guest虚拟机后,我可以通过SSH,VNC客户端,Virt-viewer,Virt-manager和Cockpit Web控制台等访问它们。

但是我无法使用“ virsh console”命令访问它们。
对于那些想知道的人,“ virsh console”命令用于从主机系统连接到客户机的控制台。
查看KVM文档之后,我发现我们应该在KVM guest虚拟机系统中启用串行控制台,以便为KVM guest虚拟机启用virsh控制台访问。

我的Ubuntu 20.04系统中运行的是CentOS 8虚拟机。

$virsh list
 Id   Name      State
------------------------
 1    centos8   running

我尝试使用以下命令访问CentOS 8 VM的控制台:

$virsh console centos8

我得到这个输出:

Connected to domain centos8
Escape character is ^]

它说我已连接到centos8 VM,但没有看到VM的控制台。
我无法越过这个屏幕。
它一直显示该空白屏幕,直到我按CTRL +]键手动退出为止。
如果我们曾经遇到过这种情况,请按照以下说明启用串行控制台服务。

为KVM guest虚拟机启用Virsh控制台访问

就像我已经提到的那样,我们必须在来宾计算机中添加一个串行控制台,以便从主机系统访问其virsh控制台。

为此,请通过SSH或者Virt-manager或者Cockpit登录到来宾计算机,然后运行以下命令来启用和启动串行控制台:

# systemctl enable Hyman@theitroad
# systemctl start Hyman@theitroad

请注意,以上命令应在KVM来宾系统(虚拟机)中运行,而不是在KVM主机中运行。

我们已在来宾中启用了串行控制台界面。

我们可以通过查看VM的配置XML文件来验证它:

$virsh edit centos8

如果启用了串行控制台,我们将看到以下几行:

<serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'
    </console>

关闭XML文件,然后从客户机退出。

现在,使用以下命令从主机启动来宾系统的virsh控制台:

$virsh console centos8

我们将收到以下消息:

Connected to domain centos8
Escape character is ^]

再次按Enter,然后输入用户名和密码以连接到访客计算机:

我们现在位于来宾计算机的控制台中。
开始使用它。
我们可以随时通过按“ CTRL +]”键切换回主机控制台。