LoginSignup
0
0

More than 3 years have passed since last update.

無限再起動ループの闇に堕ちたCentOS8君をシングルユーザーモードで復旧

Posted at

何をやっちゃったのか

  1. 毎日夜中にCentOS再起動させよう!
  2. 定期実行は『自作systemdを作る』でやろうじゃん!
  • 再起動のシェルスクリプトファイル作成ヨシ!
  • シェルスクリプトファイルに実行権限与えるヨシ!
  • 再起動用systemd(サービス)作成と有効化ヨシ!
  • 上記をキックするTimer作成と有効化と実行ヨシ!

image.png

よくねーよ!!

↓これがダメだった。
再起動用systemd(サービス)作成と有効化ヨシ!

下記のようなことに…

再起動

再起動用systemd(サービス)が実行されちゃう

再起動

再起動用systemd(サービス)が実行されちゃう

……再起動の無限ループとなってしまった…(´・ω・`)

起動と同時に有効化されたサービスが走り始める が頭から抜けてましたです。

じゃあどうするのか

Linuxには シングルユーザーモード というものがあります。
最小限の構成で起動してくれるので、今回のような(ノ∀`)アチャーな時のリカバリーができます。

BIOSWindowsのセーフモード に似たような機能って感じです。

ただし、シングルユーザーモードはネットワーク越しにはできないです。
マシンの前まで自分の足でテクテク歩いていって直接操作しないとです…。

シングルユーザーモード起動方法

まず下記のような画面になったら e を押す。
image.png
すると、こんな画面になる。
image.png
rhgb quiet の後に rd.break を入力。
image.png
そしたら、 Ctl + x でシングルユーザーモード起動できる!

ファイルを操作できるようにsysrootを再マウント

今回の目的は 間違ったシェルスクリプトファイルの修正 なので、ファイルを操作できる状態にまで持っていく必要あり。
そこでsysrootを再マウントします。

下記コマンド。

mount -o remount,rw /sysroot
chroot /sysroot

下記は再マウントして ls -l までやってみた状態。
image.png
ここまでくれば CentOS8を起動して端末を開いた のとほぼ同じ状態なので、viとかでファイルを修正できますです。

ファイルの修正が済んだのち、2回 exit したところCentOS8君が無事起動してくれました。
(再マウントしたsysrootからのexitと、シングルユーザーモードからのexitの2回)

蛇足

今回はおうちの物理サーバーだったから何とかできたけど、AWSで同じようなこと起きたらどう対処するんだろうか?

クラウドに移行する時はシングルユーザーモード的なリカバリ方法できるのかどうか確認しておこうっと…。

参考サイトさん

バージョン

CentOS Linux release 8.3.2011

0
0
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
0
0