2013年1月21日月曜日

LinuxとEFIについて補足

先の記事に書ききれなかった補足。
Linuxはカーネルコンパイルのオプションで、CONFIG_EFI_STUBというのがあります。
これを有効にしてビルドしたカーネルは、UEFIシステムパーティションにinitramfsと一緒に置いておくことで
UEFI ShellやUEFIそのものから直接起動できます。
そのさい、カーネルは\EFI\<id-name>\<kernel-name>.efiといったかんじに置くといいかとおもいます。
\EFI\ubuntu\vmlinuz.efi
といった具合です。
この時、カーネルやinitramfsと一緒に
linux.confという名前で設定ファイルも作ります。
中身は、
root=UUID=xxxx ro rootfstype=ext4 add_efi_memmap initrd=\EFI\<id-name>\<initramfs-name>
としてください。

xxxxは起動するLinuxの/パーティションのUUID、<id-name>はカーネルを置いたフォルダ名、<initramfs-name>はinitramfsの名前です。

このUEFISTUBなカーネルを起動するには、
・MacOSXでよくつかわれるrEFInd UEFIを使う
・Gummiboot Boot Managerを使う
・UEFI Shellから直接起動
先の記事で紹介した用にefibootmgrでエントリを登録
などがある模様

詳しくはArch Wikiを参照するといいと思うよ?