首页 > 代码库 > 让KVM虚拟机支持console功能

让KVM虚拟机支持console功能

       在工作中,我们可能都会接触到 KVM 虚拟机,并且公司的很多应用也都会跑在 KVM 虚拟机上。因此,对 KVM的熟练应用,也是运维必不可少的能力之一。那么在 KVM 的实践过程中,我们肯定会经常去思考如何能够更深入、更标准的实践好 KVM。由此,就引发了很多使用经验(技巧)。
       今天将会介绍的是,如何使用 KVM 的 console 接口功能。
       常规情况下,安装完 KVM 之后,可能都会通过 VNC 连接到 KVM 虚拟机里面去设置相应的 IP 等信息。但是这样子,一方面可能会因为打开过多的端口造成安全问题,另一方面也不是会便捷。针对此种情况,我们可以使用 KVM 为我们提供的 console 接口功能,它可以采用字符界面进行 linux 虚拟机控制台连接。这样子,及时 KVM 虚拟机没有 IP 地址,又或者 KVM 虚拟机出现了问题通过 IP 连接不进去了,都可以很便捷的快速进入到 KVM 虚拟机里面去排查问题。
       KVM 虚拟机的 console 接口连接应用的效果如下图所示:
 
       下面来看如何使用这个功能!
如上图所示,你可以通过命令 " virsh console 虚拟机名字" 的形式,以字符界面的形式去连接你所指定名字的那台 KVM 虚拟机。此时会出现如下的提示:
在这种提示下,你需要回车一下,如果回车之后,没有任何反应,那就说明你指定的这台 KVM 虚拟机没有打开 console 功能。
如果出现如下情况就表示,你可以直接使用 console 功能。
 
 
如果没有打开的 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、登录验证
 

让KVM虚拟机支持console功能