サーバー構築中、SELinuxがデフォルトで有効になっていたため無効化(disabled)しようとしたところ、CentOSが起動時にカーネルパニックを起こして立ち上がらなくなってしまいました……。
今回は、レスキューモードが使えなかった状態から、LiveDVD(KNOPPIX)を使ってLVMをマウントし、設定ファイルを直接書き換えて復旧させた際の手順をメモしておきます。
インストールCDのレスキューモードは失敗…
まずは王道である、インストールCD(ISO)を使ってレスキューモードでの立ち上げを試みました。

しかし、「OK」を押して進めようとすると……

なぜか強制的にシャットダウンコマンドが走り、何度やり直しても失敗してしまいました。私のやり方がどこか間違っていたのかもしれません。
LiveDVD (KNOPPIX) で起動し、LVMをマウントする手順
レスキューモードで粘るよりも、LiveDVDを使って別OSから直接HDD(LVM)をマウントし、設定ファイルを変えてしまった方が早いと判断。今回は「KNOPPIX」を使うことにしました。
公式サイトからKNOPPIXのISOイメージをダウンロードしてVPSにアップロードします。
(※まだお試し期間のVPSだったため転送速度が300~400kb/sしか出ず、ISOの転送だけで3時間もかかりました……)
気を取り直して、KNOPPIXのイメージをセットして起動します!
コンソール(ターミナル)を開き、以下の手順でLVMを認識・マウントさせます。
1. LVMのステータス確認
lvscanコマンドを叩き、対象の論理ボリュームが「inactive(無効)」になっているか確認します。
# lvscan
inactive '/dev/TEST/lv_root' [50.00 GiB] inherit2. LVMをアクティブ化(有効化)
ステータスが inactive の場合、vgchange コマンドを使ってボリュームグループを有効にします。
# vgchange -ay TEST
1 logical volume in volume group "TEST" now active3. アクティブ化の確認
再度 lvscan コマンドを実行し、ステータスが「ACTIVE」に変わったことを確認します。
# lvscan
ACTIVE '/dev/TEST/lv_root' [50.00 GiB] inherit4. マウントポイントの作成とマウント
適当なディレクトリ(今回は /mnt/test)を作成し、アクティブになったLVMをマウントします。
# mkdir /mnt/test
# mount /dev/TEST/lv_root /mnt/test5. SELinuxの設定ファイルを編集
これでCentOSのディスク領域にアクセスできるようになったので、vi(またはvim)エディタでSELinuxの設定ファイルを開きます。
# vi /mnt/test/etc/selinux/config原因:SELinuxの設定箇所(SELINUXTYPE)を間違えていた
設定ファイルを開いて中身を確認してみると、カーネルパニックの原因が一目でわかりました。

間違って SELINUXTYPE の方を disabled にしてしまっています……!
正しくは以下の通り修正する必要があります。
- 誤:
SELINUXTYPE=disabled - 正:
SELINUX=disabledにし、SELINUXTYPE=targetedに戻す
修正して保存後、KNOPPIX(LiveDVD)をシャットダウンします。
アンマウント処理をしてから再度CentOSを立ち上げると、無事に通常起動させることができました!
たった1行、設定する行を間違えただけでカーネルパニックに陥ってしまうので、設定ファイルを弄る際は本当に気を付けないといけませんね。同じミスでハマった方の参考になれば幸いです。