変更要約: 初版(主題1.01・副主題1.01.1〜1.01.5に対応)
1.3ブートプロセスとsystemd
電源投入から Linux が使えるようになるまでの流れと、systemd によるブートターゲット管理を学びます。UEFI/BIOS→ブートローダー→カーネル→systemd の順序、systemctl でのデフォルトターゲットの設定・変更、シングルユーザーモード(rescue)への切り替え、shutdown・halt・reboot・poweroff を押さえます。
「サーバーが起動しない」「GUI で起動してしまう」「メンテナンスのため最小構成で起動したい」— こうしたトラブル対応と運用の土台がブートプロセスの理解です。現代の Linux では起動処理の主役は systemd で、そのターゲットという単位で「どこまで起動するか」を制御します。
1.3.1電源投入から起動完了まで
- 起動順序=UEFI/BIOS(ハードウェア初期化・ブートデバイス選択)→ ブートローダー(GRUB2 がカーネルを選択・ロード)→ カーネル(initramfs でルートファイルシステムをマウント)→ systemd(PID 1 として各サービスを起動)。
- systemd は依存関係に基づいてサービス(ユニット)を並列起動し、従来の SysV init より高速に起動する。
- ターゲット=起動の到達点を表すユニットのグループ。主要ターゲット=
multi-user.target(CUI・サーバー標準)/graphical.target(GUI)/rescue.target(シングルユーザーモード)/emergency.target(最小限)。
1.3.2systemctl によるターゲット操作
- デフォルトターゲットの確認=
systemctl get-default/設定=systemctl set-default multi-user.target(次回起動から有効)。 - 稼働中の切り替え=
systemctl isolate rescue.target(今すぐシングルユーザーモードへ。メンテナンス時に使用)。 - 停止・再起動=systemctl 経由(
systemctl poweroff/systemctl reboot)でも、従来コマンド(shutdown・halt・reboot・poweroff)でもよい。現代ではどちらも最終的に systemd が処理する。
「次回起動から=set-default/今すぐ切り替え=isolate」 の対比が 101 試験の急所です。「シングルユーザーモード(rescue.target)でメンテナンスしたい」→ systemctl isolate rescue.target、「常にCUIで起動させたい」→ systemctl set-default multi-user.target と、時点(今すぐ/次回以降)でコマンドを選び分けます。
トラブルシューティングの文脈で流れを押さえましょう。電源投入後まず UEFI/BIOS が POST(ハードウェア自己診断)を行い、設定された優先順位のデバイスからブートローダー(GRUB2)を読み込みます。GRUB2 のメニューでカーネルとオプションを選ぶと、カーネルが initramfs(初期 RAM ディスク=本番ルートをマウントするためのドライバ類を含む)を展開し、ルートファイルシステムをマウントして systemd を PID 1 で起動します。systemd はデフォルトターゲットに向かって依存ユニットを並列起動し、ログイン画面(またはコンソール)に到達します。GUI で重すぎるサーバーは systemctl set-default multi-user.target で恒久的に CUI 起動へ。ディスク修復やパスワードリセットなどでは systemctl isolate rescue.target(またはブートローダーでカーネル引数に systemd.unit=rescue.target を指定)でシングルユーザーモードに入ります。rescue でも起動できない深刻な状態では emergency.target が最後の砦です。
| 目的 | コマンド | 効く時点 |
|---|---|---|
| デフォルトターゲットの確認 | systemctl get-default | — |
| 常に CUI で起動 | systemctl set-default multi-user.target | 次回起動から |
| 今すぐシングルユーザーモードへ | systemctl isolate rescue.target | 即時 |
| 停止/再起動 | shutdown / poweroff / reboot | 指定どおり |
ひっかけ: 「systemctl set-default rescue.target で今すぐシングルユーザーモードに入る」は誤りです。set-default は次回起動以降の設定で、今すぐ切り替えるのは systemctl isolate です。また起動順序で「ブートローダーがカーネルより後」「systemd がカーネルより先」といった順序の入れ替えも定番の誤答です(正しくは UEFI/BIOS→ブートローダー→カーネル→systemd)。
1.3.3この節のまとめ
- 起動順序=UEFI/BIOS→ブートローダー(GRUB2)→カーネル(initramfs)→systemd(PID 1)
- set-default=次回から/isolate=今すぐ。CUI 標準は multi-user.target・救助は rescue.target
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. システム稼働中に、メンテナンスのため今すぐシングルユーザーモードに切り替えたい。適切なコマンドは?
Q2. Linux の起動プロセスの順序として正しいのはどれ?
Q3. GUI 付きで起動しているサーバーを、次回起動から常にテキストコンソール(CUI)で起動するよう設定したい。適切なコマンドは?

