在使用Centos6安装KVM虚拟机的时候遇到一些问题,(centos6.5与centos6.9都存在同样的问题),以前已经记录过有关的内容了,今天重新记录一下加深记忆
centos6安装kvm
1.查看系统CPU是否支持虚拟化
[root@KVM ~]# grep -i -E "(vmx|svm|lm)" /proc/cpuinfo
2.安装kvm
yum install qemu-img qemu-kvm virt-manager virt-viewer libvirt libvirt-daemon-kvm
启动kvm服务
[root@KVM ~]# service libvirtd start
创建网桥
[root@KVM ~]# virsh iface-bridge eth0 br0
使用上面的指令可能会需要重启宿主机。
或者使用网桥的管理指令创建网桥
brctl addbr br0 #创建一个桥接网卡br0
brctl addif br0 em1 #将em1网卡的桥接信息转到br0网卡
ip addr del dev em1 192.168.2.218/24 #将em1网卡的ip信息删除
ifconfig br0 192.168.2.218/24 up #将em1网卡的ip信息添加到br0网卡上
route add default gw 192.168.2.1 #添加网关
创建虚拟机
创建kvm虚拟机可以使用virt-manager可视化管理工具进行安装。注意:使用virt-manager工具时系统语言必须是英语,否则工具会出现乱码,无法使用,使用echo $LANG查看系统语言
[root@KVM ~]# echo $LANG
en_US.UTF-8
在centos6上出现的问题
下面的问题在使用到的centos6系列的系统上都存在
virsh console指令无法连接到虚拟机
启动一个虚拟机
[root@KVM ~]# virsh start c1
Domain c1 started
[root@KVM ~]# virsh list
Id Name State
----------------------------------------------------
5 c1 running
执行 virsh console c1 连接到该实例,一直卡在提示界面:如下
[root@KVM ~]# virsh console c1
Connected to domain c1
Escape character is ^]
#原因是新建的虚拟机没有启用console功能,要在虚拟机上做一些设置
一、添加ttyS0的许可,允许root登陆
[root@localhost ~]# echo "ttyS0" >> /etc/securetty
二、编辑/etc/grub.conf中加入console=ttyS0 ,在kernel的末尾追加内容
#boot=/dev/vda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS 6 (2.6.32-642.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_roo
ot rd_NO_LUKS rd_NO_MD rd_LVM_LV=VolGroup/lv_swap crashkernel=auto LANG=zh_CN.UTT
F-8 rd_LVM_LV=VolGroup/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet console=ttyS0
initrd /initramfs-2.6.32-642.el6.x86_64.img
三.编辑/etc/inittab,在最后一行加入内容 S0:12345:respawn:/sbin/agetty ttyS0 115200
[root@localhost ~]# echo "S0:12345:respawn:/sbin/agetty ttyS0 115200" >> /etc/inittab
四,重启虚拟机:reboot
再用宿主机连接
[root@localhost ~]# virsh console c1
Connected to domain c1
Escape character is ^]
#回车登陆
CentOS release 6.8 (Final)
Kernel 2.6.32-642.el6.x86_64 on an x86_64
localhost login: root
Password:
退出连接按:ctrl + ]即可
virsh 指令无法控制虚拟机
执行virsh start reboot shutdown 等指令的时候虽然指令执行成功了,但是虚拟机并没有发生改变状态。virsh shutdown等命令是使用发送acpi指令来控制虚拟机的电源的,虚拟机安装的时候并没有安装该服务,所以当宿主机发生指令时,虚拟机并没有真正执行。
所以要在虚拟机上安装acpid
[root@localhost ~]# yum install acpid -y
安装完后同样重启系统。并将该服务器加到开机自动启动
service acpid start
chkconfig acpid on
reboot
上面就是在centos6系列的系统上使用KVM虚拟机遇到的问题,目前还没有使用centos7系统,不知道7上有没有同样的问题,如果有会继续更新。




