在Vmware虚拟机中安装redhat as 4,学习编译内核(2.6.26)。编译安装完毕,重新启动选择新内核,提示Enforcing mode requested but no policy loaded.Kernel Panic -- not syncing: attempted to kill init.错误。上网搜索,解决错误方法:在grub.conf里把 kernel /vmlinuz-2.6.19 ro root=LABEL=/ rhgb quiet 变为: kernel /vmlinuz-2.6.19 ro root=LABEL=/ enforcing=0 rhgb quiet 。按此方法重新启动,选择新的内核可以进入系统,但不明白为什么要加enforcing=0。如果不加enforcing=0 上面的提示又是什么原因呢?
enforcing参数是在启动内核时传递给selinux的内核参数,它用来决定你系统的内核运行于 强制(enforcing )模式还是自由(permissive) 模式。
在自由模式下SELinux只是记录他该做什么,而事实上并不做任何动作。在强制模式下linux会来真格的。如果你的策略有错误,在强制模式下系统可能会阻止你登陆!所以正常情况下你应改在启动时传 enforcing=1 给内核,当你的SELinux策略有问题时,你可以临时传enforcing=0给内核来查错。在/etc/selinux/config这个init的 配置文件中相应的有一个选项,通过设置它,也可以使系统进入自由模式。
在你的错误提示中,没有合适的Linux策略,因此出错。而改为0之后,处于自由模式,自然就不出错了。