8.64. GRUB-2.14

GRUB パッケージは GRand Unified Bootloader を提供します。

[注記]

注記

本ページは複数の節に分けて、さまざまなブート方法 (BIOS、64 ビット UEFI、32 ビット UEFI) について説明しています。 GRUB はそのブート方法を一度にビルドすることはできません。

あなたにとって不要な説明は読み飛ばし、目的とするブート方法に進んでください。 もし分からなかったら、無駄なビルドをすることになりますが、すべての説明手順を進めてください。 目的のブート方法をインストールし終えたら、本章のこれ以降の手順に進んでください。 GRUB を使って LFS システムをブート可能にすることに関しては 「GRUB を用いたブートプロセスの設定」 において説明しています。

[警告]

警告

ビルドへの影響が懸念されるため、以下の環境変数は設定を解除してください。

unset {C,CPP,CXX,LD}FLAGS

このパッケージのビルドにあたって独自のコンパイルフラグを使ったチューニングは避けてください。 本パッケージはブートローダーです。 ソースコード内には低レベル処理が含まれており、強引な最適化を行ってしまうと処理が正常に行われなくなります。

概算ビルド時間: 0.3 SBU
必要ディスク容量: 202 MB

8.64.1. BIOS 向け GRUB のインストール

はじめに grub-2.14 におけるバグを修正します。

sed 's/--image-base/--nonexist-linker-option/' -i configure

GRUB をコンパイルするための準備をします。

./configure --prefix=/usr     \
            --sysconfdir=/etc \
            --disable-efiemu  \
            --disable-werror

configure オプションの意味

--disable-werror

本オプションは、最新の flex によって警告が出力されても、ビルドを成功させるために指定します。

--disable-efiemu

このオプションは LFS にとって不要な機能を無効にし、一部のテストプログラムを実行しないようにした上で、ビルドを行います。

パッケージをコンパイルします。

make

本パッケージのテストスイートの利用はお勧めできません。 テストのほとんどが、限定されている今の LFS 環境内では利用できないパッケージに依存しています。 それでもテストを行うのであれば、make check を実行します。

パッケージをインストールします。

make install

8.64.2. 64 ビット UEFI 向け GRUB のインストール

64 ビット UEFI を使ったブートを行うには、これをサポートするビルドを行う必要があります。

まず前節に示す GRUB ビルドを行っているなら、ソースツリーをきれいにしておきます。

make clean

はじめに grub-2.14 におけるバグを修正します。

sed 's/--image-base/--nonexist-linker-option/' -i configure

64 ビット UEFI サポートを有効にして GRUB を準備します。

./configure --prefix=/usr       \
            --sysconfdir=/etc   \
            --target=x86_64     \
            --with-platform=efi \
            --disable-efiemu    \
            --disable-werror

configure オプションの意味

--target=x86_64

UEFI ファームウェアアーキテクチャーを x86_64 として定義します。 GRUB はこれを処理対象とします。

--with-platform=efi

これは GRUB が処理対象とするプラットフォームが EFI であることを指定します。 --target=x86_64 と組み合わせることにより、x86_64-efi プラットフォームを対象とする機能性を有するものとなります。

64 ビット UEFI サポート用として本パッケージをコンパイルします。

make

64 ビット UEFI サポートをインストールします。

make install

8.64.3. 32 ビット UEFI 向け GRUB のインストール

32 ビット UEFI を使ったブートを行うには、これをサポートするビルドを行う必要があります。 ただしこれを必要とすることは極めてまれです。

まず前節に示す GRUB ビルドを行っているなら、ソースツリーをきれいにしておきます。

make clean

はじめに grub-2.14 におけるバグを修正します。

sed 's/--image-base/--nonexist-linker-option/' -i configure

32 ビット UEFI サポートを有効にして GRUB を準備します。

./configure --prefix=/usr       \
            --sysconfdir=/etc   \
            --target=i386       \
            --with-platform=efi \
            --disable-efiemu    \
            --disable-werror

configure オプションの意味

--target=i386

UEFI ファームウェアアーキテクチャーを i386/32 ビットとして定義します。 GRUB はこれを処理対象とします。 --with-platform=efi と組み合わせることにより、i386-efi プラットフォームを対象とする機能性を有するものとなります。

32 ビット UEFI サポート用として本パッケージをコンパイルします。

make

32 ビット UEFI サポートをインストールします。

make install

8.64.4. GRUB の構成

インストールプログラム: grub-bios-setup, grub-editenv, grub-file, grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, grub-mkstandalone, grub-ofpathname, grub-probe, grub-reboot, grub-render-label, grub-script-check, grub-set-default, grub-sparc64-setup, grub-syslinux2cfg
インストールディレクトリ: /usr/lib/grub, /etc/grub.d, /usr/share/grub, /boot/grub (grub-install が初めに起動される時)
[注記]

注記

/usr/lib/grub の内容は、GRUB をどのプラットフォーム向けにビルドしたかによって異なります。 つまり各プラットフォームごとに GRUB モジュールは異なってきます。

概略説明

grub-bios-setup

grub-install に対するヘルパープログラム。

grub-editenv

環境ブロック (environment block) を編集するツール。

grub-file

指定されたファイルが指定されたタイプであるかどうかをチェックします。

grub-fstest

ファイルシステムドライバーをデバッグするツール。

grub-glue-efi

32 ビットおよび 64 ビットの実行バイナリを単一ファイル(Apple マシン向け)に結合します。

grub-install

指定したドライブに GRUB をインストールします。

grub-kbdcomp

xkb レイアウトを GRUB が認識できる他の書式に変換するスクリプト。

grub-macbless

HFS または HFS+ ファイルシステムに対する Mac 風の bless。 (bless は Apple マシン専用です。デバイスをブータブルにします。)

grub-menulst2cfg

GRUB Legacy の menu.lstを GRUB 2 にて利用される grub.cfg に変換します。

grub-mkconfig

grub.cfg ファイルを生成します。

grub-mkimage

GRUB のブートイメージ (bootable image) を生成します。

grub-mklayout

GRUB のキーボードレイアウトファイルを生成します。

grub-mknetdir

GRUB のネットブートディレクトリを生成します。

grub-mkpasswd-pbkdf2

ブートメニューにて利用する、PBKDF2 により暗号化されたパスワードを生成します。

grub-mkrelpath

システムのパスをルートからの相対パスとします。

grub-mkrescue

フロッピーディスク、CDROM/DVD、USB ドライブ向けの GRUB のブートイメージを生成します。

grub-mkstandalone

スタンドアロンイメージを生成します。

grub-ofpathname

GRUB デバイスのパスを出力するヘルパープログラム。

grub-probe

指定されたパスやデバイスに対するデバイス情報を検証 (probe) します。

grub-reboot

デフォルトのブートメニューを設定します。 これは次にブートした時だけ有効なものです。

grub-render-label

Apple Mac に対して Apple .disk_label を提供します。

grub-script-check

GRUB の設定スクリプトにおける文法をチェックします。

grub-set-default

デフォルトのブートメニューを設定します。

grub-sparc64-setup

grub-setup に対するヘルパープログラム。

grub-syslinux2cfg

syslinux の設定ファイルを grub.cfg フォーマットに変換します。