GRUB2 クイックスタート
この記事では、GRUB の最も単純な導入・実行方法について述べています。GRUB Legacy から GRUB2 への移行については、GRUB2 への移行の記事をみてください。
GRUB ソフトウェアのインストール
GRUB をインストールするにはまず、システム上の make.confで GRUB_PLATFORMS 変数に適切な値を1つ以上設定します。もしも設定がなければ、GRUB は当該システムに使われているプラットフォームを推定して動作することになるでしょう。例えば、x86 や amd64 アーキテクチャであれば pc
(MBR 方式のインストール)が推定されます。
一般的な PC (BIOS) への対応:
GRUB_PLATFORMS="pc"
amd64 上の UEFI:
GRUB_PLATFORMS="efi-64"
一般的な PC (BIOS) と UEFI 両方への対応:
GRUB_PLATFORMS="efi-64 pc"
変数を設定したら、ソフトウェアを emerge:
root #
emerge --ask sys-boot/grub
GRUB ブートローダを有効にする
マウントしていなければまず、/boot をマウント:
root #
mount /boot
EFI 方式を使用するには、EFI システムパーティションが /boot/efi のパスでアクセス可能 (マウントされている) ことが必要です。/boot/efi が個別のマウントポイントでもかまいませんし、/boot 全体が FAT ファイルシステムでフォーマットされていてもかまいません (そうすると/boot は大きな EFI システムパーティションになるでしょう)。
/boot/efi のみが FAT である場合は:
root #
mount /boot/efi
grub-install ユーティリティを実行すると、/boot/grub に適切なファイルがコピーされます。PC プラットフォームではさらに、ブートイメージがマスターブートレコード(MBR)あるいはパーティションのブートセクタに書き込まれます。
MBR に GRUB をインストールする場合:
root #
grub-install /dev/sda
Installation finished. No error reported.
EFI 対応システムに GRUB をインストールする場合:
root #
grub-install --target=x86_64-efi
Installation finished. No error reported.
grub-install コマンドは --target
オプションを指定することで CPU・プラットフォームを特定することが可能です。もし指定されていなければ、grub-install は、推定をします: 例えば x86 や amd64 のシステムであれば、i386-pc
の値がデフォルトになります。
自動設定
GRUB は grub-mkconfig プログラムを使って設定ファイルを生成するようになっています。
grub-mkconfig は、/etc/grub.d 内のテンプレート項目に基づいて設定ファイルを生成します。デフォルトのテンプレートは、およそ一般的なブート設定を網羅しているはずです。
user $
ls /etc/grub.d
00_header 10_linux 20_linux_xen 30_os-prober 40_custom 41_custom README
これらテンプレートの動作は、/etc/default/grub 内の変数で定められます。 GRUB マニュアル に詳しい情報があります。
カーネルの命名ルール
grub-mkconfig が Linux カーネルの所在を検知するには、カーネルのファイル名が vmlinuz- か kernel- で始まっていなければなりません。
例えば:
/boot/vmlinuz-3.4.3
/boot/kernel-2.6.39-gentoo
/boot/kernel-genkernel-x86_64-3.17.1-gentoo-r1
initramfs を使用する場合は、initramfs- か initrd- で始まり、.img で終わらねばなりません。バージョンはいずれかのカーネルイメージと一致している必要があります。genkernel で生成したファイル名も機能するでしょう。
例えば:
/boot/initrd.img-3.4.3
/boot/initrd-3.4.3.img
/boot/initrd-3.4.3.gz
/boot/initrd-3.4.3
/boot/initramfs-3.4.3.img
/boot/initramfs-genkernel-3.4.3-gentoo
/boot/initramfs-genkernel-x86_64-2.6.39-gentoo
grub.cfg ファイルを生成するには、grub-mkconfig を次のように実行:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.2.9 done
カーネル展開メッセージの抑制
ブート時のカーネルイメージ展開メッセージを抑制するには、/etc/default/grub 内のGRUB_CMDLINE_LINUX_DEFAULT 変数に quiet
を追加します。
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
systemd
GRUB を使用して systemd をブートするには、GRUB_CMDLINE_LINUX 変数を次のように設定します:
sysv-utils
のUSEフラグが有効になっている場合、この操作はもはや必要ではありません。最低でもGentoo内ではバージョン239から、デフォルトで有効になっています。GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
ほかの OS をロードするには
grub-mkconfig はまた、ほかの オペレーティングシステムをロードするための設定を生成することも可能です。そのためには、sys-boot/os-prober パッケージが必要です。
Windows をブートするには、sys-fs/ntfs3g パッケージのインストールもまた必要です。そうすることで、grub-mkconfig ユーティリティは、 NTFS ファイルシステムを読み込むことも可能になります。
マニュアルで設定
grub-mkconfig の使用は必須ではありません。grub.cfg ファイルを自ら編集することも可能ではあります。
GRUB レガシー設定フォーマットから GRUB 2 設定フォーマットへの移行は通常、細かい文法の変更が必要なだけで、とても単純です。
timeout 5
'''<span style="color:maroon">title</span>''' Gentoo Linux 3.2.12
root '''<span style="color:maroon">(</span>'''hd0,'''<span style="color:maroon">0)</span>'''
'''<span style="color:maroon">kernel</span>''' /boot/kernel-3.2.12-gentoo root=/dev/sda3
<br>
|
⇨ |
timeout'''<span style="color:green">=</span>'''5
'''<span style="color:green">menuentry '</span>'''Gentoo Linux 3.2.12'''<span style="color:green">' {</span>'''
root'''<span style="color:green">=</span>'''hd0,'''<span style="color:green">1</span>'''
'''<span style="color:green">linux</span>''' /boot/kernel-3.2.12-gentoo root=/dev/sda3
'''<span style="color:green">}</span>'''
|
GRUB レガシーのパーティション番号は 0 から始まりますが、GRUB では 1 から始まります。しかし、いずれのGRUB も、ドライブ番号は 0 から始まります。
関連項目
- GRUB - GRUB に関するより多くの情報と情報源を記載している'完全版'の記事。