技術・開発

【CentOS】SELinux無効化でカーネルパニック!LiveDVD(KNOPPIX)からのLVMマウント復旧手順

2013年4月5日

サーバー構築中、SELinuxがデフォルトで有効になっていたため無効化(disabled)しようとしたところ、CentOSが起動時にカーネルパニックを起こして立ち上がらなくなってしまいました……。

今回は、レスキューモードが使えなかった状態から、LiveDVD(KNOPPIX)を使ってLVMをマウントし、設定ファイルを直接書き換えて復旧させた際の手順をメモしておきます。

インストールCDのレスキューモードは失敗…

まずは王道である、インストールCD(ISO)を使ってレスキューモードでの立ち上げを試みました。

CentOS レスキューモード起動画面

しかし、「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] inherit

2. LVMをアクティブ化(有効化)

ステータスが inactive の場合、vgchange コマンドを使ってボリュームグループを有効にします。

# vgchange -ay TEST
  1 logical volume in volume group "TEST" now active

3. アクティブ化の確認

再度 lvscan コマンドを実行し、ステータスが「ACTIVE」に変わったことを確認します。

# lvscan
  ACTIVE            '/dev/TEST/lv_root' [50.00 GiB] inherit

4. マウントポイントの作成とマウント

適当なディレクトリ(今回は /mnt/test)を作成し、アクティブになったLVMをマウントします。

# mkdir /mnt/test
# mount /dev/TEST/lv_root /mnt/test

5. SELinuxの設定ファイルを編集

これでCentOSのディスク領域にアクセスできるようになったので、vi(またはvim)エディタでSELinuxの設定ファイルを開きます。

# vi /mnt/test/etc/selinux/config

原因:SELinuxの設定箇所(SELINUXTYPE)を間違えていた

設定ファイルを開いて中身を確認してみると、カーネルパニックの原因が一目でわかりました。

SELinuxの設定ミス箇所

間違って SELINUXTYPE の方を disabled にしてしまっています……!

正しくは以下の通り修正する必要があります。

  • 誤:SELINUXTYPE=disabled
  • 正:SELINUX=disabled にし、SELINUXTYPE=targeted に戻す

修正して保存後、KNOPPIX(LiveDVD)をシャットダウンします。
アンマウント処理をしてから再度CentOSを立ち上げると、無事に通常起動させることができました!

たった1行、設定する行を間違えただけでカーネルパニックに陥ってしまうので、設定ファイルを弄る際は本当に気を付けないといけませんね。同じミスでハマった方の参考になれば幸いです。

-技術・開発
-, , , , , , ,