GRUB2 クイックスタート

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

この記事では、GRUB の最も単純な導入・実行方法について述べています。GRUB Legacy から GRUB2 への移行については、GRUB2 への移行の記事をみてください。

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

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

一般的な PC (BIOS) への対応:

ファイル /etc/portage/make.confPC BIOS 向け GRUB_PLATFORMS の例
GRUB_PLATFORMS="pc"

amd64 上の UEFI:

ファイル /etc/portage/make.conf64-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 は、推定をします: 例えば x86amd64 のシステムであれば、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- で始まっていなければなりません。

例えば:

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

例えば:

コード GRUB が検知可能な 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 を追加します。

ファイル /etc/default/grub展開メッセージの抑制例
GRUB_CMDLINE_LINUX_DEFAULT="quiet"

systemd

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

重要
sysv-utilsのUSEフラグが有効になっている場合、この操作はもはや必要ではありません。最低でもGentoo内ではバージョン239から、デフォルトで有効になっています。
ファイル /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 2 設定フォーマットへの移行は通常、細かい文法の変更が必要なだけで、とても単純です。

ファイル grub.confGRUB 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.confGRUB
timeout'''<span style="color:green">=</span>'''5
 
'''<span style="color:green">menuentry '</span>'''Gentoo Linux 3.2.12'''<span style="color:green">' &#123;</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">&#125;</span>'''
メモ
GRUB レガシーのパーティション番号は 0 から始まりますが、GRUB では 1 から始まります。しかし、いずれのGRUB も、ドライブ番号は 0 から始まります。

関連項目

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