2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AzureVMのSELinux設定変更後にOS起動しなくなったときの対処法

Posted at

試した環境

  • CentOS 8.2
  • Redhat Enterprise Linux 7.3

SELinux無効方法

  • SELinuxを永続的に無効化する場合、SELINUX=enforcingSELINUX=disabledに変更する必要があります。
/etc/selinux/config
SELINUX=enforcing
SELINUXTYPE=targeted
/etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted

SELinux設定を誤ったらどうなるか?

  • もし誤ってSELINUXTYPE=targetedSELINUXTYPE=disabledに変更してリブートした場合、OSブート中に以下エラーを出力して起動しなくなります。
Failed to load SELinux policy, freezing.
  • こうなってしまうとSSHも繋がらないので、シリアルコンソールからの復旧が必要です。

Azure VM(CentOS)の場合の復旧方法

シリアルコンソール接続

  • Azure Portalから対象VMを選択し、左メニューから[シリアルコンソール]を選択します。
    image.png

  • 以下の画面が表示された場合は、ブート診断設定を変更する必要があります。
    image.png

  • [ブート診断]を選択します。
    image.png

  • [設定]を選択します。
    image.png

  • シリアルコンソール接続するためには[カスタムストレージアカウントで有効にする]が選択されている必要があります。
    image.png

  • [カスタムストレージアカウントで有効にする]を選択し、ストレージアカウントを指定します。新規で作ってもよいですし、既存のものを使ってもよいです。
    image.png

  • もういちど[シリアルコンソール]に戻ると今度は接続できるはずです。(そしてSELinuxのエラーで止まっているはず)
    image.png

GRUBメニューから復旧

  • シリアルコンソール画面の右上にある[VMの再起動]を選択します。
    image.png

  • その後[Esc]ボタンを連打もしくは長押しします。一度シリアルコンソールが切断・再接続され、その後以下のGRUBメニュー画面になります。
    image.png

  • キーボードの[e]を押すと以下の画面に遷移します。
    image.png

  • 3行目の最後にselinux=0を追加します。
    image.png

  • その状態で[Ctrl + x]を押すとブートが走りログイン画面になるので、SELinuxの設定を正しく修正して復旧完了です。

Azure VM(RHEL)の場合の復旧方法

  • CentOSのときと違ってRHELの場合はGRUBメニューを開けませんでした。
  • そこでレスキューVMを作って、そこにディスクをアタッチしてから復旧し、元のVMにディスクを戻すというやり方で復旧します。
  • 公式ドキュメント 通りの手順で復旧することができました。

以上

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?