1
1

More than 3 years have passed since last update.

GRUB と U-boot の比較

Posted at

GRUB

PC の場合は GRUB を使うことが一般的。

非UEFI BIOS の場合:

  • BIOSが起動
  • ブートメディアのブートローダー(ハードディスクなどの場合は最初のセクタ)から GRUB ステージ1として boot.img を起動
  • 必要に応じ、GRUB ステージ1.5としてcore.img を起動
  • ファイルシステムから /boot/grub などの中にある GRUB ステージ 2 を起動
  • カーネルを起動

UEFIの場合:

  • UEFI が起動
  • ブートメディアの UEFI システムパーティション 中のEFIアプリケーションとして grub.efi や grubx64.efi などを起動
  • カーネルを起動

カーネルを起動したあと

  • カーネルとして vmlinuz を起動(bzImage形式の自己解凍ファイル)
  • 初期 RAM ディスクとして initrd ないし initramfs を展開し初期ルートファイルシステムとしてマウント
  • RAMディスク内の /linuxrc ないし /init を起動し、ストレージ内の本番ルートファイルシステムを初期ルートファイルシステムに代わってマウント
  • 本番ルートファイルシステム内の /sbin/init を実行

U-boot

組込みシステムの場合は U-boot を使うことが一般的

※ 調査中

  • マイコンの内蔵メモリからブートコードがステージ1として起動
  • ブートコードにより、U-boot が起動
  • uImage 形式のイメージを参照
  • uImage ヘッダから展開先アドレスなどを取得、uImage ペイロードを検証
  • uImage ペイロードを必要に応じ解凍、指定アドレスに展開
  • 展開したカーネルを起動

uImage 基礎知識

U-boot で読み込める形式は2つ

  • zImage 形式
  • FIT 形式

FIT形式は署名などが付けられます

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1