LinuxC入門|rescue.targetを用いたLinuxのレスキュー起動

Linux を使っていると、設定ミスやディスク障害などが原因で「いつものように起動できない…」という場面に出会うことがあります。
そんなときに心強い味方になってくれるのが、rescue.target を使ったレスキュー起動です。

rescue.target は systemd が用意している特別な起動モードで、最小限の環境だけを立ち上げて、トラブルの原因調査や復旧作業を行うためのものです。
GUI はもちろん、多くのサービスも起動しないため、壊れた設定に引きずられにくい状態で作業できます。

ここでは、「なぜ rescue.target が必要なのか」「どんな仕組みで起動するのか」、そして GRUB から rescue.target で起動する流れ を、順を追ってわかりやすく確認していきましょう。

まず、rescue.target がどんな位置づけの存在なのかを整理しておきます。

systemd の target と rescue.target の位置づけ

target 名起動内容主な用途
multi-user.targetCUI 通常起動サーバ運用
graphical.targetGUI 起動デスクトップ利用
rescue.target最小限の起動障害対応・復旧
emergency.targetさらに最小限深刻なトラブル対応

rescue.target は、通常の CUI 起動よりもさらにサービスを絞った状態で起動します。
ファイルシステムの修復や、設定ファイルの書き戻しなど、「とにかくシステムに入って直したい」という場面で活躍します。

通常であれば systemd の操作は systemctl コマンドで行いますが、システムが起動途中で止まってしまう場合は、そもそも systemctl を実行できません
そこで利用するのが、ブートローダー(GRUB)から直接 rescue.target を指定して起動する方法です。

起動時に PC の電源を入れると、AlmaLinux 9.7 では GRUB の画面が一瞬表示されます。
このタイミングで Esc キーを押す と、GRUB のメニュー画面が表示されます。

Esc を押すタイミングは少しシビアなので、電源投入後に 連打するくらいの気持ち で問題ありません。

GRUB の画面では、通常起動用のエントリとして

のような項目が選択されているはずです。

その状態で e キー を押すと、起動処理の編集画面に切り替わります。

編集画面では、起動時に使われる設定がテキストで表示されます。
その中から、次のように linux で始まる行 を探します。

linux ($root)/vmlinuz-5.14.0-0-611.13.1.el9_7.x86_64 root=UUID=...

この行の 末尾 に、次の文字列を追記します。

systemd.unit=rescue.target

ここで少し注意点があります。
この画面では 英語キーボードとして入力が認識される ため、「=」を入力したい場合は、日本語キーボードの ^ キー を押します。

入力が終わったら、Ctrl + X を押します。
すると、指定した内容どおり rescue.target で起動 が始まります。

rescue.target で起動が完了すると、最小限の環境で停止し、root ユーザーのパスワード入力を求められます。

ここで root のパスワードを入力すると、レスキュー環境にログインできます。

GUI は起動しておらず、サービスもほとんど動いていませんが、その分システムはとても軽い状態です。
この状態で、設定ファイルの修正やログの確認などを行います。

systemctl reboot の役割

systemctl reboot は、systemd を通してシステムを安全に再起動するコマンドです。

コマンド書式

systemctl reboot

主なポイント

項目説明
再起動処理systemd 管理下で再起動
安全性プロセスを整理して終了

rescue.target から再起動

[root@AlmaLinux ~]# systemctl reboot

このコマンドを実行すると、rescue.target での作業を終了し、通常の起動フローで再起動します。

まとめ

ここまでの流れを、簡単に整理してみましょう。

手順内容
1起動時に Esc を押して GRUB 画面を表示
2通常起動項目を選択して e を押す
3linux 行の末尾に systemd.unit=rescue.target を追記
4Ctrl + X で起動
5root パスワードを入力してレスキュー作業
6systemctl reboot で再起動

rescue.target は、「最後の手段」ではなく「落ち着いて直すための入口」 です。
仕組みを知っていれば、システムが起動しなくなっても慌てずに対応できます。

AlmaLinux 9.7 を安心して運用するためにも、ぜひ一度はこのレスキュー起動を頭の中でシミュレーションしておいてくださいね。