起動しないときの立て直し
システムが起動しないのはもっとも緊張する障害ですが、GRUB→カーネル→initramfs→systemdという起動段階のどこで止まったかを見れば、闇雲な作業を避けられます。emergency/rescueターゲットや前回起動ログの確認、fstabミスという定番の落とし穴、ライブUSBからのchroot修理まで、立て直しの道筋を概観します。
起動しない――数ある障害の中でも、これがいちばん心臓に悪い。動いていたはずのサーバに電源を入れても、画面がそこで止まったまま先に進まない。
だが慌てて手当たり次第に試すと、かえって状況を悪化させかねない。起動処理には決まった段階があり、「どの段階で止まったか」さえ分かれば、疑うべき範囲は驚くほど狭まる。
🪜 起動の4段階——GRUB→カーネル→initramfs→systemd
一般的なLinuxの起動処理は、大まかに4つの段階を順番に通過する。
1段階目はGRUBに代表されるブートローダだ。どのカーネルを、どんなオプション付きで起動するかを選ぶ役割を持つ。ここで止まるなら、ブートローダの設定やディスクの認識そのものに問題がある。
2段階目はカーネルの初期化だ。ハードウェアを認識し、基本的な機能を立ち上げていく。ここで止まる、あるいはパニックを起こす場合は、カーネル自体やハードウェアの深刻な問題を疑う。
この段階で完全に画面が固まる「カーネルパニック」は、数ある起動不能の中でもとくに深刻な部類だ。直前にハードウェア構成を変えていないか、あるいはカーネルの更新直後でないかを振り返ると、手がかりが見つかることがある。
3段階目はinitramfs(初期RAMファイルシステム)だ。本番のルートファイルシステムを探し出してマウントするための、小さな仮の実行環境になる。ここで止まる代表例が、ディスクを見つけられない・マウントに失敗するケースだ。
4段階目はsystemdによる各種サービスの起動だ。ルートファイルシステムはマウントできたが、その後に起動する個々のサービス(ネットワーク、ファイルシステムのマウント処理など)のどれかで失敗している状態になる。
🚑 emergency / rescueターゲットという避難所
systemdの段階まで到達したものの、特定のサービスの失敗で先に進めない――そんなときのために、systemdには緊急避難用の起動モードが用意されている。
rescueターゲットは、最低限のサービスとシングルユーザー相当の環境で起動するモードだ。emergencyターゲットはさらに絞り込まれ、ルートファイルシステムの再マウントすら行わない、より原始的な状態で起動する。
📖 journalctl -b -1 で前回の記録を読む
無事に起動できた(あるいはrescueモードに入れた)後、原因を過去にさかのぼって調べたいときに便利なのが journalctl -b -1 だ。
🪤 fstabミスは定番の落とし穴
起動不能の原因の中でも、とりわけ「よくある」のが /etc/fstab の記述ミスだ。ディスクの追加やパーティション変更のあとにfstabを編集し、そのまま再起動して痛い目を見る、というのは経験者の多くが通る道である。
fstabに書かれたデバイスやUUIDが実際には存在しない、あるいはネットワーク越しのマウントで相手が応答しないといった状況になると、システムはそのマウントの完了を待ち続け、最悪の場合は先に進めなくなる。
ここで知っておきたい知恵が nofail オプションだ。fstabの該当行のオプション欄に nofail を加えておくと、そのマウントに失敗しても起動処理全体を止めずに先へ進んでくれる。絶対に必要なルートファイルシステム以外の、外付けディスクや追加パーティションには付けておくと安全性が上がる。
🔧 ライブUSBからchrootで修理する道筋(概観)
それでも起動できない、あるいはrescueモードにすら入れないほど深刻な場合の最終手段が、ライブUSBからの起動とchrootによる修理だ。
おおまかな流れは、ライブUSBで起動する、インストール済みシステムのルートパーティションを一時的にマウントする、chrootコマンドでそのマウント先を「本来のルート」として扱う環境に切り替える、という3ステップだ。chroot後は、あたかも壊れたシステム自身にログインしたかのようにコマンドを実行でき、設定ファイルの修正やブートローダの再インストールが行える。
この手順は環境やディストリビューションによって細部が異なり、パーティション構成を誤って扱うとデータ損失のリスクもあるため、ここでは道筋の概観にとどめる。実際に行う際は、対象ディストリビューションの公式ドキュメントを確認しながら慎重に進めたい。
起動不能は焦る場面だからこそ、GRUB→カーネル→initramfs→systemdという地図を頭に入れておくことが効く。どの段階で立ち止まっているかを見極め、rescue/emergencyやjournalctl -b -1で手がかりを集め、必要ならchrootという最終手段があると知っておく――これだけで、真っ暗な画面を前にしたときの安心感が変わる。