This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
GRUB2 クイックスタート
この記事では、GRUB2の最も単純な導入・実行方法について述べています。より高度な情報は、GRUB2 の記事をみてください。GRUB レガシーから GRUB2 への移行については、GRUB2 Migrationの記事をみてください。
GRUB2 ソフトウェアのインストール
sys-boot/grub パッケージは複数のスロットがあり、grub-0.97 と grub-2.xx の両方を同時にインストールすることも可能です。しかし、両方のバージョンの GRUB を同時にインストールしていても、ブートローダとして実際に使えるのは一方のみで、両方を同時に使うことは不可能です。
GRUB2 をインストールするにはまず、システム上の make.confで GRUB_PLATFORMS 変数に適切な値を1つ以上設定します。もしも設定がなければ、GRUB2 は当該システムに使われているプラットフォームを推定して動作することになるでしょう。例えば、x86 や amd64 アーキテクチャであれば pc
(MBR 方式のインストール)が推定されます。
/etc/portage/make.conf
GRUB_PLATFORMS の例# 一般的な PC (BIOS) GRUB_PLATFORMS="pc" # amd64 (x86_64) の UEFI GRUB_PLATFORMS="efi-64" # UEFI と PC の両方 GRUB_PLATFORMS="efi-64 pc"
変数を設定したら、ソフトウェアを emerge:
root #
emerge --ask sys-boot/grub:2
GRUB2 ブートローダを有効にする
マウントしていなければまず、/boot をマウント:
root #
mount /boot
EFI 方式を使用するには、EFI System Partition(ESP)が /boot/efi のパスでアクセス可能(マウントされている)ことが必要です。/boot/efi が個別のマウントポイントでもかまいませんし、/boot 全体が FAT ファイルシステムでフォーマットされていてもかまいません(そうすると/boot は大きな EFI システムパーティションになるでしょう)。
/boot/efi のみが FAT である場合は:
root #
mount /boot/efi
grub-install ユーティリティを実行すると、/boot/grub に適切なファイルがコピーされます。PC プラットフォームではさらに、ブートイメージがマスターブートレコード(MBR)あるいはパーティションのブートセクタに書き込まれます。
MBR に GRUB2 をインストールする場合:
root #
grub-install /dev/sda
Installation finished. No error reported.
EFI 対応システムに GRUB2 をインストールする場合:
root #
grub-install --target=x86_64-efi
Installation finished. No error reported.
EFI 対応システムへの GRUB2 のインストールがうまくいかないときは、/etc/portage/make.conf にGRUB_PLATFORMS が正しく設定されているか確認してください
grub-install コマンドは --target
オプションを指定することで CPU・プラットフォームを特定することが可能です。もし指定されていなければ、grub-install は、推定をします: 例えば x86 や amd64 のシステムであれば、i386-pc
の値がデフォルトになります。
自動設定
GRUB2 は従前と同様、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
GRUB2 を使用して systemd をブートするには、GRUB_CMDLINE_LINUX 変数を次のようにします:
/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 レガシーでの設定からの情報に基づいて GRUB2 の設定ファイルをどのように書くかを示した例です。
grub.conf (GRUB Legacy) | grub.cfg (GRUB 2) | |
---|---|---|
timeout 5
|
⇨ | timeout=5 |
GRUB レガシーのパーティション番号は 0 から始まりますが、GRUB2 では 1 から始まります。しかし、いずれのGRUB も、ドライブ番号は 0 から始まります。
参考
- GRUB2 - GRUB2 に関するより多くの情報と情報源を記載している'完全版'の記事