SELinuxを無効にした後、再起動するとKernel panicになり起動できなくなることがあります。
原因
GUIでの設定変更では設定ファイルの変更に抜けが出ることが原因のようです。
回復方法
kernel panic になってしまった場合の回復方法です。
電源投入後のOSが起動する最初の画面でキーを押します。
GNU GRUBのメニューが表示されます。'e'キーを押してkernelのパラメータを編集します。
パラメーターの編集画面が表示されました。
カーソルキーを用いて2行目を選択します。選択ができたら'e'キーを押します。
kernelのオプションの編集画面が表示されます。
オプションの末尾に一つ空白を開けて"enforcing=0"を追記します。(下図参照)
編集を確定すると行選択画面に戻ります。'b'キーを押してCentOSを起動します。
"enforcing=0"を追記することで、SELinuxが有効になった状態(Permissive モード)で起動できます。起動後/etc/grab.confを修正します。
原因1
起動時のkernel オプションに selinux=0が抜けていることが原因です。
対策
/etc/grab.conf を修正します。
修正前
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_shouji-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_shouji-lv_root rd_NO_LUKS rd_NO_MD quiet rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_shouji/lv_swap LANG=ja_JP.UTF-8 rd_NO_DM rd_LVM_LV=vg_shouji/lv_root
initrd /initramfs-2.6.32-220.el6.x86_64.img
kernel の起動オプションの末尾に "selinux=0"を追加します。
修正後
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_shouji-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-220.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.el6.x86_64 ro root=/dev/mapper/vg_shouji-lv_root rd_NO_LUKS rd_NO_MD quiet rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_shouji/lv_swap LANG=ja_JP.UTF-8 rd_NO_DM rd_LVM_LV=vg_shouji/lv_root selinux=0
initrd /initramfs-2.6.32-220.el6.x86_64.img
原因2
/etc/selinux/configファイルの編集忘れ
対策
/etc/selinux/configファイルにて
SELINUXTYPE=disabled
のままになっていると問題が発生する可能性があります。
SELINUXTYPE=targeted
と変更します。
著者
かつて日本を代表したスーパーエンジニア (自称)
ハードウェア、電気設備、ガーデニング関係の記事を担当。
最終更新日: 2024-01-06
作成日: 2012-07-20