导读 在工作中,我们可能都会接触到 KVM 虚拟机,并且公司的很多应用也都会跑在 KVM 虚拟机上。因此,对 KVM的熟练应用,也是运维必不可少的能力之一。那么在 KVM 的实践过程中,我们肯定会经常去思考如何能够更深入、更标准的实践好 KVM。由此,就引发了很多使用经验(技巧)。今天将会介绍的是,如何使用 KVM 的 console 接口功能。

常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去设置相应的 IP 等信息。但是这样子,一方面可能会因为打开过多的端口造成安全问题,另一方面也不是会便捷。针对此种情况,我们可以使用 KVM 为我们提供的 console 接口功能,它可以采用字符界面进行 linux 虚拟机控制台连接。这样子,及时 KVM 虚拟机没有 IP 地址,又或者 KVM 虚拟机出现了问题通过 IP 连接不进去了,都可以很便捷的快速进入到 KVM 虚拟机里面去排查问题。

KVM 虚拟机的 console 接口连接应用的效果如下图所示:

11

下面来看如何使用这个功能!

如上图所示,你可以通过命令 " virsh console 虚拟机名字" 的形式,以字符界面的形式去连接你所指定名字的那台 KVM 虚拟机。此时会出现如下的提示:

12

在这种提示下,你需要回车一下,如果回车之后,没有任何反应,那就说明你指定的这台 KVM 虚拟机没有打开 console 功能。

如果出现如下情况就表示,你可以直接使用 console 功能。

13

如果没有打开的 console 这个功能的话,可以通过如下操作进行人为打开。

1、修改 grub.conf 文件

通过为内核传递参数 console=ttyS0,来让内核把输出定向至 ttyS0

[root@test01-kvm-jz test01-kvm-jz.btr /root] 
# vim /etc/grub.conf
2、修改 /etc/inittab 文件

通过在 inittab 里加一个 ttyS0 ,来使得系统启动时能够生成一个 ttyS0 来接收来自内核的数据

[root@test01-kvm-jz test01-kvm-jz.btr /root] 
# echo "S0:12345:respawn:/sbin/agetty ttyS0 115200" >> /etc/inittab
[root@test01-kvm-jz test01-kvm-jz.btr /root] 
# tail -1 /etc/inittab 
S0:12345:respawn:/sbin/agetty ttyS0 115200
3、修改 /etc/securetty 文件

由于 /etc/securetty 文件允许你规定 root 用户可以从哪个 TTY 设备登录,因此我们需要添加 ttyS0 的安全许可,即将 ttyS0 添加至该文件,来允许我们的 root 用户登录。

root@test01-kvm-jz test01-kvm-jz.btr /root] 
# echo "ttyS0" >> /etc/securetty

4、重启 KVM 虚拟机

[root@test01-kvm-jz test01-kvm-jz.btr /root] 
# reboot

5、登录验证

14

原文来自:http://nolinux.blog.51cto.com/4824967/1589488

本文地址:http://www.linuxprobe.com/kvm-console-ok.html编辑:陶武杰,审核员:冯振华