GRUB/ja

GRUB2（GRand Unified Bootloader version 2）は今やGRUB Legacyと呼ばれるようになったオリジナルのGRUBの後継となるブートローダです. GRUB2はGRUB Legacyとは全く新しく作られており、シェルライクな構文を利用することで高度なスクリプトの作成が可能なのが特徴です.

GRUB2 replaces for the original GRUB Legacy boot loader with an entirely separate code base featuring a new shell-like syntax for advanced scripting capabilities.

クイックセットアップアプローチが必要なら、GRUB2 Quick Startを参照してください.

システムを GRUB レガシーから GRUB2 に移行する方法については、GRUB2 Migration を見てください.

インストール
パッケージはスロット化されています. (GRUB Legacy) と は同時にインストールできますが、ハードディスク上のマスターブートレコード（MBR）にはどちらか1つのバージョンのGRUBのみをインストールすることができます.

It is recommended all systems should upgrade to GRUB2, since it supports all the same features sets as Legacy. Legacy was removed from the Gentoo ebuild repository.

前提条件
GRUB をどのプラットフォームにインストールするかコントロールするには、 において GRUB_PLATFORMS 変数をセットしてください. アーキテクチャは多くのシステムで動作するプロファイルのデフォルト値を含んでいます.

ターゲットのCPU毎に、次のプラットフォームがサポートされています:

プロファイルでは、(U)EFIサポートが既定で有効になっています. BIOSベースのシステムを使っている場合、余計な依存ファイルのインストールを避けるため、環境変数 GRUB_PLATFORMS には を指定して下さい.

Emerge
通常の シンタックスを用いてGRUBをインストールします.

追加のソフトウェア
必要なら、 ユーティリティ( で提供されます)をインストールして、 コマンドを実行した際にGRUBが他のオペレーティングシステムを探索してブートエントリを生成するようにしてください. たいていの場合、これでGRUBが自動で他のオペレーティングシステム(Windows 7, Windows 8.1, 10や他のLinuxディストリビューションなど)を検出できるようになります.

GRUB2(と、場合によっては)をインストールしても、ブートローダは自動では有効になりません. これらは、オペレーティングシステムにソフトウェアをインストールするのみで、(システムのブート時にそれが使われるようにするために)システムそのものにブートローダをインストールするには、追加のステップが必要になります. これについては設定セクションで解説します.

設定
GRUB の設定には２つの重要な作業があります:


 * 1) GRUB のソフトウェアを、システムのセカンダリブートローダーとしてインストール
 * 2) GRUB ブートローダー自体の設定

GRUBソフトウェアのインストールはシステムのタイプによってそれぞれ異なり、ブートローダーのインストールで解説します. まず、ブートローダそのものの設定について解説します.

メインの設定ファイル
grubの設定を生成するために、 スクリプトを使います. これは 以下のスクリプト及び  設定ファイルを用い、最終的な  を――GRUB2自体が使用する唯一の設定ファイルを――生成します.

GRUBは、(GRUB Legacy や LILO のような)管理者によるブートオプション設定の手動での維持を必要としません. その代わりに、 コマンドを用いて、設定ファイルを生成することができます. このユーティリティは にあるスクリプトと  の設定を使用します.

何らかの設定を変更したら、 ユーティリティを にある出力ファイル(これはGRUB2のデフォルトの出力場所です)を指定した  オプション付きで実行します:

ユーティリティが呼ばれるたびに、新しい設定が生成されます.

設定パラメータのセット
にある次の変数はGRUBがどのように機能するかをコントロールするために設定される最も一般的なものです:

より完全なリストについては、configuration variablesサブページとのページを参照してください.

パラメータを変更したら、 でGRUB2の設定ファイルを再生成してください.

設定スクリプトの有効化と無効化
ディレクトリには、 が  ファイルの生成に用いるスクリプトが含まれます. デフォルトでは、このディレクトリの中身は次のようなものであるはずです:

GRUBは、インストールされたスクリプトのうち、実行可能に設定されたすべてのスクリプト(デフォルトでは全部がそうです)を利用します. いずれかのスクリプトを無効にするには、 コマンドを用い、単にスクリプトのファイルパーミッションから実行可能ビットを取り除いてください. 次の例では、 と  を除く全てのスクリプトを無効にします.

スクリプトを変更したり、実行可能ビットを取り除いたりした後は、 を用いて設定ファイルを再生成してください.

設定スクリプトに手を加える
いくつかの機能は、設定スクリプトの書き換えによってのみ利用することができます. 例えば、FreeBSDとのデュアルブートをサポートするには次の操作が必要です.

スクリプトを以下のように変更します:

もしくは  が、FreeBSDが置かれているパーティションです. FreeBSDパーティションに通常のUFSインストールが行われたなら、 はコンテナになっています(論理パーティションのようなものです). これはswapとルートパーティションからなります. を実行し、 が実行可能であることを確認してください. もし実行可能ビットがセットされていない場合は、 コマンドでセットしてください.

次に、GRUBをインストールし、設定ファイルを更新してください.

ブートローダーのインストール
GRUBをシステムのブートローダーとしてインストールする方法は、システムがどのようにブートするのか(BIOSかUEFIか)と、ブートローダーがインストールされるディスクがどのようにパーティションされているのか(パーティションレイアウトがMBRかGPTか)によって変わってきます.

この記事では次の場合についてをカバーします:


 * BIOS と MBR
 * BIOS と GPT
 * UEFI と GPT

システムに対して適切なインストール方法の解説を選んでください.

BIOS と MBR
を確実に利用可能にしてください. もしこれが独立したパーティションなら、確実にマウントしてください:

関連するファイルを にコピーするために、  コマンドを実行してください. PCプラットフォームではさらに、これによってマスターブートレコード(MBR)かパーティションのブートセクタにブートイメージがインストールされます. もしすべてがうまくいけば、 の実行後、以下のような出力が得られることが期待されます:

は、CPUアーキテクチャとシステムプラットフォームを指定するための  オプションを受け付けます. 指定しなかった場合、 は適切な値を推測しようとします. / システムにおいては、デフォルトで  が使用されます. はまた、ブートファイルを探す場所をGRUBインストーラに知らせるための  オプションを受け付けます. これはデフォルトでは ですが、ルートパーティションを移動しようとしている場合などに有用です.

BIOS と MBR でのパーティショニング
最初のパーティションの前に十分な空き領域を用意しておいてください. 最初のパーティションをセクタ2048で開始すれば、少なくとも1MiBのディスク領域がマスターブートレコードに残されることになります. GRUBのための"BIOSブートパーティション"とよばれる追加パーティションを作成することが(必須ではありませんが)推奨されます. このパーティションは定義される必要があるだけで、フォーマットは必要ありません. これは後からシステムがGPTパーティションレイアウトに移行される時に必要です. MBRを使い続ける限りは必要ありません.

もしGentoo installation instructionsに従ったのなら、BIOSブートパーティションはすでに有効なはずです.

BIOS と GPT
もし パーティションが必要ならば、  パーティションのマウントから始めましょう.

すべてがうまくいけば、 コマンドの実行後、以下のような出力が得られることが期待されます:

は、CPUアーキテクチャとシステムプラットフォームを指定するための  オプションを受け付けます. 指定しなかった場合、 は正しい値を推測しようとします. / システムにおいては、デフォルトで  が使用されます. はまた、ブートファイルを探す場所をGRUBインストーラに知らせるための  オプションを受け付けます. これはデフォルトでは ですが、ルートパーティションを移動しようとしている場合などに有用です.

BIOS と GPT でのパーティショニング
GPTパーティションテーブルがシステムに存在するとき、タイプ  の小さな"BIOSブートパーティション"(タイプ   の"EFIシステムパーティション(ESP)"とは異なります)を有効にする必要があります. 動作させるには1MiBで十分ですが、2-4MiBがより安全な選択でしょう. このBIOSブートパーティションがブートローダーのステージ2を保持することになります. BIOSブートパーティションはファイルシステムでフォーマットされる必要はありません. コマンドが独自のファイルシステムで既存のファイルシステムを上書きします.

パーティションをBIOSパーティションとして設定するには、コマンドラインツールの  を用い、以下のようにタイプしてください( をBIOSブートパーティションに設定したいパーティションの番号に置きかえてください!):

の ユーティリティでは、これはパーティションタイプを   に設定し、   というラベルを設定することで全うされます.

EFIシステムパーティションは必要ではありませんが、システムのマザーボードがUEFIのボードにアップグレードされたとき、後からこれに変更できるよう、BIOSブートパーティションを十分大きくしておくのはまともな判断でしょう.

次に示すのは、BIOSブート [0xEF02] パーティションとEFI [0xEF00] パーティションの両方を含むGPTパーティションのディスクで ユーティリティを用い、  キーを押したときの出力です:

同様のセットアップに対し、 ユーティリティはやや異なる記法で出力を返します:

でのパーティションの作成は、すでに パーティショニングユーティリティに慣れているユーザーにとっては理解しやすいでしょう. を開始したら、メインメニューで(newを意味する) をタイプし、(必要なら)開始と終了のセクタを与え、EFIシステムパーティションに   パーティションタイプを設定してください.

Gentoo installation instructionsに従ったユーザーならば、すでに適切なパーティションレイアウトに設定されているはずです.

UEFI と GPT
が利用可能であることを確認してください. もし別のパーティションにあるなら、マウントされていることを確認してください：

コマンドを実行することで必要なファイルがにコピーされます. これによりGRUBがにインストールされ、そのコアイメージをにコピーしたのちefibootmgrを呼び出してブートエントリを追加します.

上のコマンドは、vfatのEFIシステムパーティション(ESP)が にマウントされていることを前提にします. もしESPが に直接マウントされているなら、  としてください.

は、CPUアーキテクチャとシステムプラットフォームを指定するための  オプションを受け付けます. 指定がない場合、は適切な値の推測を試みます. / システムにおいては、デフォルトで  が使用されます. はまた、ブートファイルを探す場所をGRUBインストーラに知らせるための  オプションを受け付けます. これはデフォルトでは ですが、ルートパーティションを移動しようとしている場合などに有用です.

UEFI と GPT でのパーティショニング
GRUB2によるUEFI GPTブートには、システムに必ずFATファイルシステムを含んだ専用のパーティションが必要です.

EFIパーティションは上のの役割を、 上のへと移すことができます. つまりGRUBを使ったUEFIブートの場合でも、計2つ（スワップパーティションがあるなら計3つ）のパーティション、つまりルートパーティションとEFIパーティションで可能ということです. この設定を使うと、フォルダはルート と同じパーティションに置かれ、EFIパーティションはフォルダの中のにマウントされます. 下記の の例を見るとはっきりするでしょう.

は100MBもあれば複数の ファイルを格納するのには十分です（そもそも複数のエントリが必要になることは滅多になく、ほとんどのシステムは1つしか使いません）.

選びぬかれたパーティションツールを使ってパーティションを作成してください. と  はツールはこの目的には持って来いです. を使うときは必ずtype を利用してください.

続いて次の例のように、 を用いてEFIシステムパーティション上にFATファイルシステムを作成し、  へ項目を追加してください.

代替案: デフォルトのUEFIファームウェアの場所を利用する
もしシステムのUEFIファームウェアがGRUBのEFIファイルを見つけられない場合、既定のブートローダの場所を利用することで解決するでしょう. このときefibootmgrが提供するブートメニューを使えないため機能は減りますが、エラーは起きづらくなります. これを行うためには、EFIパーティションがにマウントされていることを確認した上でにあるファイルをにコピーして下さい. なおこの例では64bitのUEFIをシステムを前提としています. 32bitの場合は適宜読み替えて下さい.

Open Firmware (IEEE 1275) on PowerPC
See here.

拡張機能
GRUB 2 は、その多くの機能によって、非常にパワフルなブートローダーとなっています. サポートされる機能は:


 * UEFIパーティションからのブート
 * ハイブリッドMBRを必要としない、GPTでパーティションされたドライブからのブート(ハイブリッドMBRは、必要なら互換性と移植性のために有効にできます)
 * btrfs でフォーマットされた パーティションからのブート
 * ZFSプールからのブート
 * 初期マウントセットアップのための initramfs を必要としない、btrfs raidセットからの直接のブート
 * 論理ボリューム管理からの直接のブート(たとえば LVM2)
 * DM-RAID(RAID 0, 1, 4, 5, 6, 9 と 10)をサポートしたブート
 * 暗号化されたデバイス(LUKS)からのブート

次にいくつかの項目について詳しく説明します.

チェーンロード
GRUB 2 は GRUB Legacy よりはるかに優れたチェーンロードモードが備わっています. 他のブートローダーをチェーンロードするには、  オプションを利用してください.

さらなるチェーンロードの情報については Chainloading サブ記事を参照してください.

GRUBのメニューのパスワード保護
もし、ブートパラメータを変更できないようにしたり、コマンドラインを使用できなくすることでGRUBを安全にしたい場合、ユーザ/パスワードの組み合わせをGRUBの設定ファイルに追加することができます. grub-mkpasswd-pbkdf2がGRUB用のパスワードのハッシュを作成します：

そして、以下を追加してください：

フレームバッファディスプレイを使う
GRUB2で framebuffer のグラフィカルな表示を利用するには、  USE flag を有効にして再emergeしてください. これによりfont変換ツールの他にデフォルトの True Type フォントがインストールされます.

次に、 にあるGRUB2のデフォルト設定ファイルを設定します. 例えば、

トラブルシューティング
ほとんどの問題は、正しいパーティションレイアウトを確実に設定することで解決できます. ディスクの最初のパーティションの前に十分な領域を確保するか、任意で確実に"BIOSブートパーティション"が利用できるようにしてください. さらに、 が で正しく生成されているか確認するか、あるいはカスタムのメニュー項目で生成してください.

さらなるGRUB2のトラブルシューティングについては、Troubleshootingサブ記事を参照してください.

.EFI ファイルを検知しないマザーボードファームウェア
いくつかのマザーボードメーカーは、EFIシステムパーティション(ESP)内の.EFIファイルについて1つの場所のみをサポートしているようです. これに当てはまると思われる場合、GRUBのデフォルトファイルを単に に移動してください. まず、ESPがマウントされていることを確認します. ESPが(Handbookで推奨されているように) にマウントされているとすると、以下を実行します:

removableパラメータを使用して、このファイルをgrub-installコマンドで自動的に作成することもできます：

これでマザーボードのファームウェアがGRUBの実行可能ファイルを読み込めるようになるはずです. システムを再起動して、ファームウェアが正しくGRUBを読み込むようになったか見てみましょう.

chroot環境下でのos-proberとUEFI
を使用すると、Microsoft WindowsなどのLinuxの代わりにインストールされたOSを検出できます. これを正しく動作させるには、EFIシステムパーティションのテストのためlive環境のudevの情報にアクセスできるようにする必要があります.

下記のコマンドをホスト環境で実行すると必要なファイルが得られます （この例では、Handbookにある通りGentooはにマウントされているものとしています）.

新しいカーネルをインストール
新しいカーネルをGRUB2に認識させるため、カーネルをインストールした際には必ずGRUB2を再設定しなければなりません. 下記のように、 を実行することで再設定が可能です. あるいは手動で行うこともできます.

GRUB2は単に「再設定」が必要なだけで、「再インストール」が必要なわけではありません. 一方、GRUB2自身が更新された際にはハードディスク上のGRUB2を再インストールする必要がありますが、このときには普通、再設定は必要ありません.

参考

 * In Chainloading GRUB2で他のブートローダーを利用する方法が書かれています. これはデュアルブートやISOファイルのブートを構成する必要がある場合には重要です.
 * In Advanced storage RAIDや論理ボリューム、暗号化ファイルシステムなど、より最新のストレージを利用する際のGRUB2インストール方法や利用方法が書かれています.
 * In Configuration variables で利用可能なすべての GRUB2 configuration variable がまとめられています.
 * In Troubleshooting よくあるGRUB2のエラー（とそれらの解決策）が挙げられています.
 * In Hybrid partition table MBR/GPTが混合したハイブリッドパーティションの設定方法と、そのGRUB2での利用方法がまとめられています.

外部の情報
さらなる情報については、以下を参照してください:


 * GNU GRUB 2 manual page
 * Network (PXE) section of GRUB2
 * Legacy BIOS issues with GPT article
 * GPT and Hybrid MBR article
 * GPT fdisk utility page
 * Arch Linux GRUB2 wiki article
 * Fedora GRUB2 wiki article : Encountering the dreaded GRUB2 boot prompt
 * ubuntu UEFI booting help
 * http://unix.stackexchange.com/questions/109272/dualboot-freebsd-gentoo-with-grub2-mbr
 * A blog post entry on locking specific GRUB2 boot entries with a password