如何为Ubuntu Linux VM启用KVM virsh控制台访问

时间:2020-01-09 14:17:05  来源:igfitidea点击:

使用Ubuntu Linux将KVM设置为新的来宾虚拟机。
但是,我无法使用以下命令:virsh console vm。
如何设置和启用控制台访问权限,以便在新创建的Ubuntu Linux 16.04 LTS VM上获得shell程序访问权限?
在Ubuntu Linux 16.04 LTS guest虚拟机中激活串行控制台是登录和解决问题的绝佳方法。

服务器配置

  • KVM主机IP:192.168.2.15
  • KVM来宾操作系统:Ubuntu Linux 16.04 LTS
  • KVM访客IP:192.168.2.45
  • KVM来宾名称:ubuntu-box1
  • KVM来宾用户名:Hyman
  • KVM访客密码:hidden-secrete

如何设置Ubuntu 16.04 KVM Guest的控制台访问权限

首先,您需要使用ssh或VNC客户端登录到Ubuntu来宾。

使用ssh登录

在此示例中,我使用ssh客户端从工作站(或在KVM主机本身上执行命令)登录到Ubuntu Linux VM guest虚拟机:

$ ssh [email protected]

登录后,可以访问根shell:

$ sudo -s

使用vnc登录

在KVM主机上执行以下命令:

$ virsh dumpxml ubuntu-box1 | grep vnc
`<graphics type='vnc' port='5901' autoport='yes' listen='127.0.0.1'>`

请记下端口值(即5901)。
您需要使用SSH客户端设置隧道,并使用VNC客户端访问远程vnc服务器。
从Linux/Unix/MacOS客户端或台式机系统中执行以下SSH端口转发命令:

$ ssh {user}@{KVM-host-IP-here} -L 5901:127.0.0.1:5901
$ ssh [email protected] -L 5901:127.0.0.1:5901

一旦建立了ssh隧道,就可以在VNC客户端中将VNC客户端指向自己的IP 127.0.0.1(localhost)地址和端口5901,如下所示:
图形VNC客户端连接到Ubuntu Linux 16.04 LTS服务器控制台

在Ubuntu guest虚拟机中配置串行控制台

最后,执行以下两个命令,以使客户机中的串行控制台能够使用virsh console命令访问连接:

$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]

输出示例:

Created symlink from /etc/systemd/system/getty.target.wants/[email protected] to /lib/systemd/system/[email protected].

如何从KVM主机访问Ubuntu 16.04 KVM Guest的控制台

要查看正在运行的VM的列表,请执行:

$ virsh list

输出示例:

Id    Name                           State
---------------------------------------------------
1     freebsd                        running
2     ubuntu-box1                    running
3     ubuntu-box2                    running

在KVM主机上执行以下命令以登录名为ubuntu-box1的来宾

$ virsh console ubuntu-box1

或者

$ virsh console 2