🐐

EFI と grub2 のメモ

2024/05/05に公開

EFI パーティションと grub.cfg と vmlinuz などの配置に関するメモ。

EFI boot の選択肢

EFI partition を選択する

/dev/sda1 とか usb とか。
EFI partition を選択するということは、暗黙にデフォルトのEFIアプリケーションを選択して
引数無しで実行する。

EFI application を選択する

EFI partition の中には複数の EFI application がありえる。
/EFI/*/*.efi が EFI application。

EFI entry を選択する

EFI application に引数を追加して登録できる。

efibootmgr

grub.cfg はどこに?

grubx64.efi から見て ./grub.cfg という記述を見るのだが、
実際にはそれは無くても動いている。
各パーティション(ext4とか)の "/boot/grub/grub.conf" をサーチしているように見える。

/boot/grub/grub.cfg の生成

  • /etc/default/grub

kernel build の make install

今ビルドしているカーネルを /boot にコピーしてから /boot/grub/grug.cfg を作る?
gentoo では dracut で initram の生成もされていた。

grub-mkconfig -o /boot/grub/grub.cfg

/boot にある vmlinuzinitram を集める。

最近の構成

  • /boot はパーティションわけない
  • /boot にカーネルや initramfs を並べる
    • efi stub でも grub からチェーンロードする場合は EFI partition に配置しなくてよい?
  • efi partition には grub とかローダーだけ配置

efi partition のマウントポイント

ディストリビューション毎に作法がある。

Ubuntu

インストーラーにお任せ。
/boot/efi

Arch

ユーザーがインストール作業で作る。
推奨パス。 /esp
/efi

https://wiki.archlinux.jp/index.php/EFI_システムパーティション

Gentoo

ユーザーがインストール作業で作る。
推奨パス。 /efi

tips

Discussion