FreeBSD/モダンブートプロセス
表示
< FreeBSD
現代のPCシステムでは、従来のBIOSに代わってUEFI(Unified Extensible Firmware Interface)が標準的なブートシステムとして採用されています。本記事では、FreeBSDにおけるUEFIブートプロセスについて詳しく解説します。
UEFIとは
[編集]UEFIは、オペレーティングシステムに対してブート時およびランタイムサービスを提供する現代的なファームウェアインターフェースです。EFI(Extensible Firmware Interface)の後継仕様であり、以下のアーキテクチャでサポートされています:
- amd64
- arm
- arm64
- riscv
※注意:32ビットのi386アーキテクチャではUEFIブートはサポートされていません。
EFIシステムパーティション(ESP)
[編集]UEFIブートプロセスでは、特別な「EFIシステムパーティション(ESP)」が必要です。ESPは以下の特徴を持ちます:
- パーティション形式:GPTまたはMBR
- ファイルシステム:FAT(msdosfs)
- 識別子:
- GPT: C12A7328-F81F-11D2-BA4B-00A0C93EC93B
- MBR: 0xEF
ブートプロセスの詳細
[編集]FreeBSDのUEFIブートプロセスは、以下の3つの主要なステップで構成されています:
- UEFIファームウェアの起動
- 電源投入時にUEFIファームウェアが起動
- ESPからOSローダーを検索
- ローダーパスはefibootmgrで設定可能
- デフォルトパスは各アーキテクチャで異なる:
- amd64: /EFI/BOOT/BOOTX64.EFI
- arm: /EFI/BOOT/BOOTARM.EFI
- arm64: /EFI/BOOT/BOOTAA64.EFI
- riscv: /EFI/BOOT/BOOTRISCV64.EFI
- ブートローダーの実行
- loader.efiが起動
- /boot.configまたは/boot/configから設定を読み込み
- カーネルのロードと起動
- loader.efiがカーネルをロード
- システムコンソールとしてvt(4)が自動選択
重要なシステムファイル
[編集]FreeBSDのUEFIブートに関連する主要なファイル:
/boot/loader.efi: 最終段階のブートストラップローダー/boot/kernel/kernel: デフォルトカーネル/boot/kernel.old/kernel: バックアップカーネル(オプション)
FreeBSDにおけるUEFIサポートの歴史
[編集]UEFIサポートは、FreeBSDの各バージョンで順次追加されてきました:
- FreeBSD 5.0: ia64アーキテクチャでのEFIブートサポート
- FreeBSD 10.1: amd64でのUEFIブートサポート
- FreeBSD 11.0: arm64のサポート追加
- FreeBSD 12.0: armv6とarmv7のサポート追加
- FreeBSD 13.0: riscvのサポート追加
まとめ
[編集]UEFIブートは、FreeBSDのモダンなブートプロセスの中核を担っています。適切に設定されたESPとブートローダーにより、安全で柔軟なシステム起動が可能になっています。システム管理者は、efibootmgrなどのツールを使用してブート設定をカスタマイズすることができ、より細かなシステム制御が可能です。