GRUB2 クイックスタート
この記事では、 GRUB の最も単純な導入・実行方法について述べています。 GRUB Legacy から GRUB2 への移行については、 GRUB2 への移行 の記事をみてください。
GRUB ソフトウェアのインストール
GRUB をインストールするにはまず、システム上の
make.conf
で
GRUB_PLATFORMS
変数に適切な値を1つ以上設定します。もしも設定がなければ、GRUB は当該システムに使われているプラットフォームを推定して動作することになるでしょう。例えば、
x86
や
amd64
アーキテクチャであれば
pc
(MBR 方式のインストール)が推定されます。
一般的な PC (BIOS) への対応:
/etc/portage/make.conf
PC BIOS 向け GRUB_PLATFORMS の例
GRUB_PLATFORMS="pc"
amd64 上の UEFI:
/etc/portage/make.conf
64-bit UEFI 向け GRUB_PLATFORMS の例
GRUB_PLATFORMS="efi-64"
一般的な PC (BIOS) と UEFI 両方への対応:
/etc/portage/make.conf
複数の GRUB_PLATFORMS の例
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
を追加します。
/etc/default/grub
展開メッセージの抑制例
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
systemd
GRUB を使用して systemd をブートするには、 GRUB_CMDLINE_LINUX 変数を次のように設定します:
sysv-utils
のUSEフラグが有効になっている場合、この操作はもはや必要ではありません。最低でもGentoo内ではバージョン239から、デフォルトで有効になっています。
/etc/default/grub
Systemd の例
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 設定フォーマットへの移行は通常、細かい文法の変更が必要なだけで、とても単純です。
|
ファイル
grub.conf
GRUB Legacy
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>
|
⇨ |
ファイル
grub.conf
GRUB
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 に関するより多くの情報と情報源を記載している'完全版'の記事。