GRUB2 クイックスタート

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page GRUB2 Quick Start and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎日本語 • ‎한국어 • ‎português do Brasil • ‎русский

この記事では、GRUB2の最も単純な導入・実行方法について述べています。より高度な情報は、GRUB2 の記事をみてください。GRUB レガシーから GRUB2 への移行については、GRUB2 Migrationの記事をみてください。

GRUB2 ソフトウェアのインストール

sys-boot/grub パッケージは複数のスロットがあり、grub-0.97 と grub-2.xx の両方を同時にインストールすることも可能です。しかし、両方のバージョンの GRUB を同時にインストールしていても、ブートローダとして実際に使えるのは一方のみで、両方を同時に使うことは不可能です。

GRUB2 をインストールするにはまず、システム上の make.confGRUB_PLATFORMS 変数に適切な値を1つ以上設定します。もしも設定がなければ、GRUB2 は当該システムに使われているプラットフォームを推定して動作することになるでしょう。例えば、x86amd64 アーキテクチャであれば pc (MBR 方式のインストール)が推定されます。

FILE /etc/portage/make.confGRUB_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.confGRUB_PLATFORMS が正しく設定されているか確認してください

grub-install コマンドは --target オプションを指定することで CPU・プラットフォームを特定することが可能です。もし指定されていなければ、grub-install は、推定をします: 例えば x86amd64 のシステムであれば、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- で始まっていなければなりません。

例えば:

CODE GRUB2 が検知可能なカーネルの名称例
 /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 で生成したファイル名も機能するでしょう。

例えば:

CODE GRUB2 が検知可能な initramfs のファイル名称例
 /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 を追加します。

FILE /etc/default/grub展開メッセージの抑制例
GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Systemd

GRUB2 を使用して systemd をブートするには、GRUB_CMDLINE_LINUX 変数を次のようにします:

FILE /etc/default/grubSystemd の例
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


title Gentoo Linux 3.2.12
root (hd0,0)
kernel /boot/kernel-3.2.12-gentoo root=/dev/sda3

timeout=5


menuentry 'Gentoo Linux 3.2.12' {
root=hd0,1
linux /boot/kernel-3.2.12-gentoo root=/dev/sda3
}

注意
GRUB レガシーのパーティション番号は 0 から始まりますが、GRUB2 では 1 から始まります。しかし、いずれのGRUB も、ドライブ番号は 0 から始まります。

参考

  • GRUB2 - GRUB2 に関するより多くの情報と情報源を記載している'完全版'の記事