02. boot process: 電源投入からログインまで
サーバーの電源を入れた直後、Linuxは一気に起動しているように見えます。
でも実際は、複数の段階を順番に通っています。
この流れを理解すると、起動失敗時にどこを見るべきかが明確になります。
起動の全体フロー
1. BIOS/UEFI
2. Bootloader (GRUB)
3. Kernel
4. initramfs
5. systemd (PID 1)
6. 各サービス起動
図解テキスト
Power ON
-> BIOS/UEFI
-> GRUB
-> vmlinuz + initramfs
-> kernel初期化
-> switch_root
-> systemd(PID 1)
-> multi-user.target
-> login prompt / sshd
それぞれは何をしているのか
### BIOS/UEFI
ハードウェアを初期化して、起動可能デバイスを探します。
### GRUB
kernelイメージとinitramfsをメモリに読み込み、kernelへ制御を渡します。
### Kernel
メモリ管理、割り込み、デバイス初期化を始め、最初のプロセスを起動します。
### initramfs
本番ルートファイルシステムをマウントするための、最小限の一時環境です。
### systemd
PID 1としてサービス起動を管理し、依存関係に従って各ユニットを立ち上げます。
起動調査で使うコマンド
systemd-analyze
systemd-analyze blame | head
journalctl -b -p warning
cat /proc/cmdline
初学者がつまずきやすい点
- GRUBとkernelを同じものと考えてしまう
- initramfsの役割が見えない
- systemdはサービス管理だけだと思い込む
今回理解できたこと
- Linux起動は段階的なバトンリレー
- systemdは起動後だけでなく起動中も重要
- 障害時は段階ごとに切り分ける
コメントを残す