#何をやっちゃったのか
- 毎日夜中にCentOS再起動させよう!
- 定期実行は『自作systemdを作る』でやろうじゃん!
- 再起動のシェルスクリプトファイル作成ヨシ!
- シェルスクリプトファイルに実行権限与えるヨシ!
- 再起動用systemd(サービス)作成と有効化ヨシ!
- 上記をキックするTimer作成と有効化と実行ヨシ!
#よくねーよ!!
↓これがダメだった。
再起動用systemd(サービス)作成と有効化ヨシ!
下記のようなことに…
再起動
↓
再起動用systemd(サービス)が実行されちゃう
↓
再起動
↓
再起動用systemd(サービス)が実行されちゃう
↓
……再起動の無限ループとなってしまった…(´・ω・`)
起動と同時に有効化されたサービスが走り始める が頭から抜けてましたです。
#じゃあどうするのか
Linuxには シングルユーザーモード というものがあります。
最小限の構成で起動してくれるので、今回のような(ノ∀`)アチャーな時のリカバリーができます。
BIOS や Windowsのセーフモード に似たような機能って感じです。
ただし、シングルユーザーモードはネットワーク越しにはできないです。
マシンの前まで自分の足でテクテク歩いていって直接操作しないとです…。
#シングルユーザーモード起動方法
まず下記のような画面になったら e
を押す。
すると、こんな画面になる。
rhgb quiet
の後に rd.break
を入力。
そしたら、 Ctl + x でシングルユーザーモード起動できる!
#ファイルを操作できるようにsysrootを再マウント
今回の目的は 間違ったシェルスクリプトファイルの修正 なので、ファイルを操作できる状態にまで持っていく必要あり。
そこでsysrootを再マウントします。
下記コマンド。
mount -o remount,rw /sysroot
chroot /sysroot
下記は再マウントして ls -l
までやってみた状態。
ここまでくれば CentOS8を起動して端末を開いた のとほぼ同じ状態なので、viとかでファイルを修正できますです。
ファイルの修正が済んだのち、2回 exit
したところCentOS8君が無事起動してくれました。
(再マウントしたsysrootからのexitと、シングルユーザーモードからのexitの2回)
#蛇足
今回はおうちの物理サーバーだったから何とかできたけど、AWSで同じようなこと起きたらどう対処するんだろうか?
クラウドに移行する時はシングルユーザーモード的なリカバリ方法できるのかどうか確認しておこうっと…。
#参考サイトさん
https://rin-ka.net/centos-7-8-single-mode-how-to/
#バージョン
CentOS Linux release 8.3.2011