创建 KVM 来宾后,我可以通过 SSH、VNC 客户端、Virt-viewer 访问它们, 虚拟管理器 和 座舱 网络控制台等,但我无法使用 virsh console
命令。 对于那些想知道的人来说, virsh console
命令用于从主机系统连接到客户机的控制台。 查看 KVM 文档后,我发现我们应该在 KVM 来宾系统中启用串行控制台,以便为 KVM 来宾启用 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 虚拟机,但我没有看到虚拟机的控制台。 我无法通过这个屏幕。 它一直显示这个空白屏幕,直到我按手动退出它 CTRL+]
钥匙。 如果您曾经遇到过这种情况,只需按如下所述启用串行控制台服务。
为 KVM 来宾启用 Virsh 控制台访问
就像我已经提到的,您必须在您的客户机中添加一个串行控制台才能从主机系统访问其 virsh 控制台。
为此,请通过 SSH 或 Virt-manager 或 Cockpit 登录到您的客户机,然后运行以下命令来启用和启动串行控制台:
# systemctl enable [email protected]
# systemctl start [email protected]
请注意 以上命令应在 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+]” 键。