KVM虚拟机启动报selinux错误

报错信息

unsupported configuration: Unable to find security driver for label selinux

原因

从网上一顿搜索基本都有提到节点的xml中配置了seclabel的选项,此选项有用到selinux,而selinux被关闭,所以节点无法启动。如下图:

但困惑的是:1、公司内环境,节点在创建的时候,并没有配置这个选项;2、宿主机环境在部署之初就已将/etc/selinux/config中的"SELINUX"设为disabled,并且执行了"setenforce 0"的命令,那么为什么还会出现前述情况呢?

首先,针对第一个问题,查阅libvirt官方domain xml描述文档,针对seclabel的配置,如果创建的时候没有指明,那么会给到一个默认的“none”或者“dynamic”。针对第二个问题,则是对setenforce的使用有误解,之前一直以为执行“setenforce 0”实现的是不重启的前提下将selinux改为disabled,实际上次命令只能将selinux改为permissive的状态(宽容模式),如果要真正改为disabled状态,只能先改配置,再重启系统。

针对本文提到的问题现象,最开始安装系统的时候只执行了"setenforce 0"的操作,后续并未重启系统,然后就创建了kvm节点,部分节点在运行时记录了selinux的状态,在系统重启后,当selinux真正变为disbabled时,因对应的节点需要使用selinux,就导致无法启动了。

解决

1、可以virsh edit删除seclabel相关的配置

2、在系统安装阶段将selinux改为disabled后直接重启系统使其生效

3、还可以修改/etc/libvirt/qemu.conf的配置,将security_driver的值改为none,即禁用security_driver,然后systemctl restart libvirtd即可(只对新创建的节点有效,已出故障的节点,依然需要手动删除seclabel配置节) 

猜你喜欢

转载自blog.csdn.net/u012206617/article/details/128330768