<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Naoya</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Naoya"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Naoya"/>
	<updated>2026-04-15T04:41:10Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GRUB&amp;diff=16648</id>
		<title>GRUB</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GRUB&amp;diff=16648"/>
		<updated>2020-07-07T09:40:01Z</updated>

		<summary type="html">&lt;p&gt;Naoya: F2FSのサポートについて&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ブートローダー]]&lt;br /&gt;
[[ar:GRUB]]&lt;br /&gt;
[[cs:GRUB]]&lt;br /&gt;
[[de:GRUB]]&lt;br /&gt;
[[el:GRUB]]&lt;br /&gt;
[[en:GRUB]]&lt;br /&gt;
[[es:GRUB]]&lt;br /&gt;
[[fa:گراب]]&lt;br /&gt;
[[fr:GRUB]]&lt;br /&gt;
[[he:GRUB]]&lt;br /&gt;
[[id:GRUB]]&lt;br /&gt;
[[it:GRUB]]&lt;br /&gt;
[[nl:GRUB]]&lt;br /&gt;
[[pt:GRUB]]&lt;br /&gt;
[[ru:GRUB]]&lt;br /&gt;
[[tr:GRUB2]]&lt;br /&gt;
[[uk:GRUB]]&lt;br /&gt;
[[zh-hans:GRUB]]&lt;br /&gt;
[[zh-hant:GRUB]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|GRUB Legacy}}&lt;br /&gt;
{{Related|Arch ブートプロセス}}&lt;br /&gt;
{{Related|ブートローダー}}&lt;br /&gt;
{{Related|Master Boot Record}}&lt;br /&gt;
{{Related|GUID Partition Table}}&lt;br /&gt;
{{Related|Unified Extensible Firmware Interface}}&lt;br /&gt;
{{Related|GRUB/EFI サンプル}}&lt;br /&gt;
{{Related|GRUB/ヒントとテクニック}}&lt;br /&gt;
{{Related|マルチブート USB ドライブ}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://www.gnu.org/software/grub/ GRUB] は次世代の GRand Unified Bootloader です。GRUB Legacy の後継の研究開発プロジェクト [https://www.nongnu.org/pupa/ PUPA] から GRUB は作られています。全てを整理するため GRUB はスクラッチから書きなおされモジュール性とポータビリティを獲得しました [https://www.gnu.org/software/grub/grub-faq.html#q1]。&lt;br /&gt;
&lt;br /&gt;
== 前置き ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ブートローダー&#039;&#039;はコンピューターが起動した時に最初に走るソフトウェアプログラムです。Linux カーネルのロードとコントロールの移譲を担当しています。そして、カーネルはオペレーションシステムの他全てを初期化します。&#039;&#039;GRUB&#039;&#039; という名前は公式でソフトウェアのバージョン&#039;&#039;2&#039;&#039;を示しています、[https://www.gnu.org/software/grub/] を見て下さい。古いバージョンについての記事は [[GRUB Legacy]] を見てください。&lt;br /&gt;
&lt;br /&gt;
GRUB ではルートパーティションのファイルシステムについて以下の制限があります:&lt;br /&gt;
* &amp;lt;s&amp;gt;[[F2FS]] はサポートされていません。&amp;lt;/s&amp;gt;  GRUB2.04よりF2FSはサポートされています。&lt;br /&gt;
&lt;br /&gt;
サポートされていないファイルシステムをルートパーティションで使っている場合、{{ic|/boot}} パーティションを分割して、サポートされているファイルシステムでフォーマットする必要があります。また、GRUB の開発版 ({{aur|grub-git}}) はネイティブでサポートしている可能性があります。&lt;br /&gt;
&lt;br /&gt;
== BIOS システム ==&lt;br /&gt;
&lt;br /&gt;
=== GUID Partition Table (GPT) 特有の手順 ===&lt;br /&gt;
&lt;br /&gt;
GPT でパーティションされたシステムには {{ic|core.img}} を埋め込むための MBR の隙間の領域がないので (GPT のプライマリヘッダーやプライマリパーティションテーブルに使われます)、[[GUID Partition Table|BIOS-GPT]] の GRUB 設定では [https://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html BIOS boot partition] が必要になります。このパーティションは BIOS-GPT 環境の GRUB でだけ使われます。MBR パーティションではそのようなパーティションのタイプは存在しません (少なくとも GRUB にはありません)。システムが UEFI を使っている時も (ブートセクタの埋め込みがないので)、このパーティションは必要ありません。&lt;br /&gt;
&lt;br /&gt;
BIOS-GPT 設定では gdisk, cgdisk, GNU Parted などを使って、ディスクの最初にファイルシステムのない 1007 KiB のパーティションを作成してください。1007 KiB という容量 (と先の GPT の 17 KiB) によって次に続くパーティションを 1024 KiB に正しくアライメントすることができます。必要であれば、ディスクの他の場所にこのパーティションを配置することもできますが、先頭の 2TiB の領域内である必要があります。パーティションタイプは (c)gdisk では {{ic|ef02}} に GNU Parted では {{ic|set &#039;&#039;BOOT_PART_NUM&#039;&#039; bios_grub on}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
GPT パーティションはサポートしてないツールによって変更されるのを止めるための保護 MBR パーティションを作成します。この保護 MBR に cfdisk を使ってブータブルフラグを設定しないと、BIOS/EFI によっては起動しなくなる可能性があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|&amp;lt;nowiki&amp;gt;--target=i386-pc&amp;lt;/nowiki&amp;gt;}} を使って {{ic|grub-install}} の対象を {{ic|i386-pc}} に明示的に指定する必要があります。そうしないとあなたの設定が EFI-GPT ではないかと {{ic|grub-install}} が勘違いする可能性があるからです。&lt;br /&gt;
* このパーティションは {{ic|grub-install}} や {{ic|grub-setup}} を実行する前に作成しておく必要があります&lt;br /&gt;
* 他の全てのパーティションの後にこのパーティションを作成する場合、gdisk では容量の消費が一番少ない場所 (セクター 34-2047) にしか作成できません。なぜなら gdisk はパーティションを出来る限り 2048 セクター境界に自動アライメントするからです&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Master Boot Record (MBR) 特有の手順 ===&lt;br /&gt;
&lt;br /&gt;
通常 MBR でパーティションされた環境において [[Master Boot Record|MBR]] の後の隙間 (512バイトの MBR 領域の後ろで最初のパーティションの前) は 31 KiB になっていて、このパーティションテーブルでは DOS 互換のシリンダー・アライメントは問題になりません。しかしながら GRUB の {{ic|core.img}} 用に十分な領域を確保するため 1 から 2 MiB ほど MBR の後の領域をとることを推奨します ({{bug|24103}})。この領域を獲得したり他の 512 バイトでないセクターの問題を起こさないために ({{ic|core.img}} の埋め込みとは関係ありません) 1 MiB パーティション・アライメントをサポートしているパーティションツールを使うのが得策です。&lt;br /&gt;
&lt;br /&gt;
=== インストール ===&lt;br /&gt;
&lt;br /&gt;
{{Note|Arch ライブ CD から[[インストールガイド|初期設定]]を行っているときは、grub をインストールする前にインストールしたシステムに chroot してください。CD 自体の grub のインストールスクリプトを使うと {{ic|grub.cfg}} がおかしくなったりして、システムが起動しなくなる問題が発生する可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]] にある {{Pkg|grub}} パッケージから GRUB を[[pacman|インストール]]できます。{{AUR|grub-legacy}} がインストールされている場合は置き換えられます。&lt;br /&gt;
&lt;br /&gt;
{{Note|パッケージをインストールするだけでは {{ic|/boot/grub/i386-pc/core.img}} ファイルや {{ic|/boot/grub/i386-pc}} 内の GRUB モジュールは更新されません。下で説明されているように {{ic|grub-install}} を使って手動でアップデートする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== ブートファイルをインストール ====&lt;br /&gt;
&lt;br /&gt;
BIOS ブートで GRUB ブートファイルをインストールする方法は4つあります:&lt;br /&gt;
* [[#ディスクにインストールする]] (推奨)&lt;br /&gt;
* [[#USB スティックにインストール]] (リカバリ用)&lt;br /&gt;
* [[#パーティションやパーティションレスディスクにインストールする]] (非推奨)&lt;br /&gt;
* [[#core.img だけを生成する]] (一番安全な方法ですが、{{ic|/boot/grub/i386-pc/core.img}} をチェインロードするために [[GRUB Legacy]] や [[Syslinux]] など他の BIOS ブートローダーが必要になります)&lt;br /&gt;
&lt;br /&gt;
{{Note|https://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html に詳しいドキュメントがあります。}}&lt;br /&gt;
&lt;br /&gt;
===== ディスクにインストールする =====&lt;br /&gt;
&lt;br /&gt;
{{Note|この方法は GRUB を (MBR か GPT で) パーティション済みのディスクにインストールして、GRUB ファイルを {{ic|/boot/grub}} に第1ステージコードを440バイトの MBR ブートコード領域にインストールする方法です (MBR パーティションテーブルとは違います)。パーティションレスディスク (super-floppy) については [[#パーティションやパーティションレスディスクにインストールする]] を参照してください。新しいドライブに移行させるときなど、&#039;&#039;grub-install&#039;&#039; で別の場所にファイルをインストールしたいときは [[#USB スティックにインストール|USB スティックにインストール]]に書かれているように {{ic|--boot-directory}} フラグを使ってください。}}&lt;br /&gt;
&lt;br /&gt;
440バイトの Master Boot Record ブートコード領域に GRUB をセットアップするには、{{ic|/boot/grub}} ディレクトリを作り、{{ic|/boot/grub/i386-pc/core.img}} ファイルを生成して、それを 31 KiB の (最低限の容量 - パーティションのアライメントによって変化します) MBR の後の領域 (もしくは GPT でパーティションされたディスクの場合 BIOS Boot Partition、parted では {{ic|bios_grub}} フラグ、gdisk では EF02 タイプコードで示される) に埋め込み、設定ファイルを生成します。次を実行してください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/dev/sdx}} はインストール先に置き換えて下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} に [[LVM]] を使っている場合は、複数の物理ディスクに GRUB をインストールすることができます。&lt;br /&gt;
&lt;br /&gt;
===== USB スティックにインストール =====&lt;br /&gt;
&lt;br /&gt;
USB スティックの一番目のパーティションが {{ic|/dev/sdy1}} で FAT32 である場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/usb&lt;br /&gt;
 # mount /dev/sdy1 /mnt/usb&lt;br /&gt;
 # grub-install --target=i386-pc --debug --boot-directory=/mnt/usb/boot /dev/sdy&lt;br /&gt;
 # grub-mkconfig -o /mnt/usb/boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
{{ic|grub.cfg}} の設定のバックアップを作成 (任意):&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/usb/etc/default&lt;br /&gt;
 # cp /etc/default/grub /mnt/usb/etc/default&lt;br /&gt;
 # cp -a /etc/grub.d /mnt/usb/etc&lt;br /&gt;
&lt;br /&gt;
アンマウント:&lt;br /&gt;
&lt;br /&gt;
 # sync ; umount /mnt/usb&lt;br /&gt;
&lt;br /&gt;
===== パーティションやパーティションレスディスクにインストールする =====&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB は GRUB Legacy や Syslinux と同じようにパーティションのブートセクタやパーティションレスディスクへのインストールを推奨していません。この種のセットアップは破損しやすく (特にアップデート中)、Arch の開発陣によるサポートはされていません。}}&lt;br /&gt;
&lt;br /&gt;
パーティションブートセクタや、パーティションレスディスク (別名 superfloppy) やフロッピーディスクに grub をセットアップするには、以下を実行してください ({{ic|/boot}} パーティションを {{ic|/dev/sdaX}} として例にしています):&lt;br /&gt;
&lt;br /&gt;
 # chattr -i /boot/grub/i386-pc/core.img&lt;br /&gt;
 # grub-install --target=i386-pc --debug --force /dev/sdaX&lt;br /&gt;
 # chattr +i /boot/grub/i386-pc/core.img&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はインストール先に置き換えて下さい。&lt;br /&gt;
* {{ic|1=--target=i386-pc}} は {{ic|grub-install}} に BIOS システムだけにインストールすることを示します。{{ic|grub-install}} があいまいな動作をしないように常時使用することが推奨されています。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|--force}} オプションを使ってブロックリストを利用する必要があります {{ic|1=--grub-setup=/bin/true}} は使えません ({{ic|core.img}} を生成するだけと同じです)。&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} は以下のような警告を表示し、この方法で失敗するようなことについてヒントを与えます:&lt;br /&gt;
&lt;br /&gt;
 /sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.&lt;br /&gt;
 /sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. &lt;br /&gt;
                         However, blocklists are UNRELIABLE and their use is discouraged.&lt;br /&gt;
&lt;br /&gt;
{{ic|--force}} がないと下のエラーが表示され {{ic|grub-setup}} はパーティションブートセクタにブートコードを設定しません:&lt;br /&gt;
 &lt;br /&gt;
 /sbin/grub-setup: error: will not proceed with blocklists&lt;br /&gt;
&lt;br /&gt;
{{ic|--force}} をつければ次のように表示されるはずです:&lt;br /&gt;
&lt;br /&gt;
 Installation finished. No error reported.&lt;br /&gt;
&lt;br /&gt;
デフォルトで {{ic|grub-setup}} がパーティションやパーティションレスディスクへのインストールをしないようになっている理由は、この場合に限って GRUB がパーティションのブートセクタにある埋め込みブロックリストを使って {{ic|/boot/grub/i386-pc/core.img}} ファイルと prefix ディレクトリ {{ic|/boot/grub}} を見つける必要があるからです。{{ic|core.img}} のセクタ位置はパーティション上の (ファイルのコピーや削除など) ファイルシステムに変更が加えられた時に変化してしまうことがあります。詳細は https://bugzilla.redhat.com/show_bug.cgi?id=728742 や https://bugzilla.redhat.com/show_bug.cgi?id=730915 を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これを回避する方法は {{ic|/boot/grub/i386-pc/core.img}} に (上で説明しているように {{ic|chattr}} コマンドを使って) immutable フラグを設定することで、これによってディスク上の {{ic|core.img}} ファイルのセクタ位置が変化しなくなります。{{ic|/boot/grub/i386-pc/core.img}} に immutable フラグを設定するのは、GRUB をパーティションブートセクタやパーティションレスディスクにインストールするときだけ必要になることで、ブートセクタに埋め込まず MBR にインストールしたり {{ic|core.img}} だけを生成する時は必要ありません (上述)。&lt;br /&gt;
&lt;br /&gt;
残念ながら、エラーが表示されなかったとしても、作成される {{ic|grub.cfg}} ファイルには起動するための正しい UUID が含まれません。https://bbs.archlinux.org/viewtopic.php?pid=1294604#p1294604 を参照してください。この問題を修正するには以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sdxY /mnt        #Your root partition.&lt;br /&gt;
 # mount /dev/sdxZ /mnt/boot  #Your boot partiton (if you have one).&lt;br /&gt;
 # arch-chroot /mnt&lt;br /&gt;
 # pacman -S linux&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
===== core.img だけを生成する =====&lt;br /&gt;
&lt;br /&gt;
GRUB のブートセクタコードを MBR, MBR の後の隙間またはパーティションのブートセクタに&#039;&#039;&#039;埋め込まずに&#039;&#039;&#039; {{ic|/boot/grub}} ディレクトリを作成して {{ic|/boot/grub/i386-pc/core.img}} ファイルを生成するには、{{ic|grub-install}} に {{ic|1=--grub-setup=/bin/true}} を加えて下さい:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=i386-pc --grub-setup=/bin/true --debug /dev/sda&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はインストール先に置き換えて下さい。&lt;br /&gt;
* {{ic|1=--target=i386-pc}} は {{ic|grub-install}} に BIOS システムだけにインストールすることを示します。{{ic|grub-install}} があいまいな動作をしないように常時使用することが推奨されています。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これで Linux カーネルやマルチブートカーネルとして GRUB Legacy や syslinux から GRUB の {{ic|core.img}} をチェインロードできます。&lt;br /&gt;
&lt;br /&gt;
== UEFI システム ==&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Unified Extensible Firmware Interface|UEFI]], [[GUID Partition Table|GPT]], [[ブートローダー]]のページをよく読んでおいてください。}}&lt;br /&gt;
&lt;br /&gt;
=== GPT と ESP があるかどうか確認する ===&lt;br /&gt;
&lt;br /&gt;
EFI を使って起動するにはディスク上に [[EFI System Partition]] (ESP) が必要になります。GPT は必ずしも必要ではありませんが、強く推奨されており、この記事では GPT を使う方法しか記述していません。Windows 8 など、既にオペレーティングシステムが動作している EFI が使えるコンピュータに Archlinux をインストールする場合、既に ESP は存在するはずです。GPT と ESP を確認するには、root で {{ic|parted}} を使って起動に使いたいディスクのパーティションテーブル (例: {{ic|/dev/sda}}) を表示して下さい。&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sda print&lt;br /&gt;
&lt;br /&gt;
GPT なら、&amp;quot;Partition Table: gpt&amp;quot; と表示されます。EFI なら、vfat/fat32 ファイルシステムで &#039;boot&#039; フラグが有効になっている小さな (512 MiB 以下) パーティションがあります。そのパーティション上には、&amp;quot;EFI&amp;quot; という名前のフォルダがあるはずです。これらの存在が確認できたのなら、それは ESP になります。そのパーティション番号を覚えておいて下さい。後で GRUB を ESP にインストールするときに使います。&lt;br /&gt;
&lt;br /&gt;
=== ESP を作成する ===&lt;br /&gt;
&lt;br /&gt;
ESP が存在しない場合、作成する必要があります。[[EFI システムパーティション]]の指示に従って ESP を作成してください。&lt;br /&gt;
&lt;br /&gt;
=== インストール ===&lt;br /&gt;
&lt;br /&gt;
{{Note|それぞれのマザーボードの製造者によって　UEFI は別々に実装されているということは有名です。GRUB や EFI が正しく動作しないという問題が起きたユーザーは下で説明されていること以外のハードウェア特有のケースについて詳しい手順を共有することが奨励されています。この記事では総合的なことしか書かれていないので、特別な場合については [[GRUB/EFI サンプル]]のページを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
下のコマンドでは GRUB を {{ic|x86_64-efi}} でインストールすると仮定しています (i686 環境用の {{ic|IA32-efi}} を使うのなら下のコマンドの {{ic|x86_64-efi}} を {{ic|i386-efi}} に置き換えて下さい)。&lt;br /&gt;
&lt;br /&gt;
[[Bash]] シェルにログインしていることを確認して下さい。例えば、Arch ISO から起動している場合:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
{{Pkg|grub}} と {{Pkg|efibootmgr}} パッケージをインストールしてください。&#039;&#039;GRUB&#039;&#039; はブートローダーであり、&#039;&#039;efibootmgr&#039;&#039; は {{ic|.efi}} ブータブルスタブを作成します (GRUB のインストールスクリプトによって使用されます)。&lt;br /&gt;
&lt;br /&gt;
以下の手順では GRUB UEFI アプリケーションを {{ic|&#039;&#039;$esp&#039;&#039;/EFI/grub}} にインストールして、モジュールを {{ic|/boot/grub/x86_64-efi}} にインストールします。そして、{{ic|grubx64.efi}} ブータブルスタブを {{ic|&#039;&#039;$esp&#039;&#039;/EFI/grub}} に配置します。&lt;br /&gt;
&lt;br /&gt;
ブートディレクトリとブートローダー ID を設定してインストールしてください。{{ic|$esp}} は efi パーティションに置き換えて下さい (通常は {{ic|/boot}}):&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=&#039;&#039;$esp&#039;&#039; --bootloader-id=&#039;&#039;grub&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|bootloader-id に {{ic|boot}} と指定した場合、EFI 変数がリセットされた場合やドライブを他のコンピュータに移した場合でもドライブから起動することができるようになります。通常は BIOS を使用する方法と同じようにドライブを選択することで使うことができます。Windows とデュアルブートする場合、Windows は EFI パーティションの EFI フォルダの中に boot という名前のフォルダを作成するので注意してください。このフォルダによって Windows の EFI ブートオプションが再作成されます。}}&lt;br /&gt;
&lt;br /&gt;
インストールが完了するとメインの GRUB ディレクトリが {{ic|/boot/grub/}} に作成されます。&lt;br /&gt;
&lt;br /&gt;
後で[[#設定|設定]]を変更した後は忘れずに[[#メイン設定ファイルの生成|メイン設定ファイルを生成]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ディストリビューションによっては {{ic|/boot/efi}} や {{ic|/boot/EFI}} ディレクトリが必要な場合がありますが、Arch では不要です。&lt;br /&gt;
* オプション {{ic|--efi-directory}} と {{ic|--bootloader-id}} は GRUB UEFI 専用です。{{ic|--efi-directory}} は ESP のマウントポイントを指定します。このオプションと同じものとして以前は {{ic|--root-directory}} が使われていました。&lt;br /&gt;
* GRUB を BIOS システムで設定するときと異なり {{ic|grub-install}} コマンドの最後に &amp;lt;device_path&amp;gt; オプション (例: {{ic|/dev/sda}}) を使わないことに注意してください。UEFI のブートローダーは MBR やパーティションのブートセクタを全く使わないので &amp;lt;device_path&amp;gt; が指定されてもインストールスクリプトはそれを無視します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
問題が発生した場合は [[#UEFI]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 特記事項 ===&lt;br /&gt;
&lt;br /&gt;
==== 他のインストール方法 ====&lt;br /&gt;
&lt;br /&gt;
GRUB のブートファイルを全て EFI System Partition の中に収めたい時は、{{ic|grub-install}} コマンドに {{ic|--boot-directory&amp;amp;#61;$esp}} を追加してください:&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=$esp --bootloader-id=grub --boot-directory=$esp --debug&lt;br /&gt;
&lt;br /&gt;
このコマンドによって GRUB モジュールは {{ic|$esp/grub}} に置かれます (このパスの最後の &#039;/grub&#039; はハードコードされています)。この方法を使うと、{{ic|grub.cfg}} も EFI System Partition 上に作る必要があり、設定するときに正しい位置を {{ic|grub-mkconfig}} に示す必要があります:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o $esp/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
設定の他のところは同じです。&lt;br /&gt;
&lt;br /&gt;
==== UEFI ファームウェアの応急処置 ====&lt;br /&gt;
UEFI ファームウェアによっては {{ic|.efi}} ブータブルスタブが特定の名前で特定の場所に配置されていることが必要とされます: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は UEFI パーティションのマウントポイントに置き換えて下さい)。そうしておかないと場合によって起動できなくなってしまうことがあります。幸いに、これを必要としない他のファームウェアでは問題は起きません。&lt;br /&gt;
&lt;br /&gt;
応急処置を行うには、必要なディレクトリを作成して、それから grub の {{ic|.efi}} スタブをコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # mkdir $esp/EFI/boot&lt;br /&gt;
 # cp $esp/EFI/grub_uefi/grubx64.efi  $esp/EFI/boot/bootx64.efi&lt;br /&gt;
&lt;br /&gt;
==== ファームウェアのブートマネージャに GRUB エントリを作成する ====&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} は自動でブートマネージャにメニューエントリを作成しようとします。作成されないときは、{{ic|efibootmgr}} を使ってメニューエントリを作成してください。また、UEFI モードで CD/USB を起動できないような問題については [[Unified Extensible Firmware Interface#ISO から UEFI ブータブル USB を作成する|Unified Extensible Firmware Interface#ISO から UEFI ブータブル USB を作成する]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== GRUB Standalone ====&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|grub}} パッケージには様々な grub-mkstandalone のフィックス (特に必須の {{ic|${cmdpath} }} サポート) が含まれていないのでスタンドアロンの GRUB EFI イメージでは {{AUR|grub-git}} パッケージを使って下さい。}}&lt;br /&gt;
&lt;br /&gt;
全てのモジュールを UEFI アプリケーション内の memdisk に埋め込んだ {{ic|grubx64_standalone.efi}} アプリケーションを作成することができ、これによって GRUB UEFI モジュールやその他関連ファイルが利用するディレクトリを別に持つ必要がなくなります。これを行うには {{Pkg|grub}} に含まれている {{ic|grub-mkstandalone}} コマンドを使います。&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;configfile ${cmdpath}/grub.cfg&#039; &amp;gt; /tmp/grub.cfg                                ## use single quotes, ${cmdpath}/grub.cfg should be present as it is&lt;br /&gt;
 # grub-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi --modules=&amp;quot;part_gpt part_msdos&amp;quot; --fonts=&amp;quot;unicode&amp;quot; --locales=&amp;quot;en@quot&amp;quot; --themes=&amp;quot;&amp;quot; -o &amp;quot;$esp/EFI/grub/grubx64_standalone.efi&amp;quot;  &amp;quot;boot/grub/grub.cfg=/tmp/grub.cfg&amp;quot; -v&lt;br /&gt;
&lt;br /&gt;
{{Note|オプション {{ic|1=--modules=&amp;quot;part_gpt part_msdos&amp;quot;}} (クォート付き) は {{ic|${cmdpath} }} 機能を正しく動作させるために必要です。}}&lt;br /&gt;
&lt;br /&gt;
それから GRUB の設定ファイルを {{ic|$esp/EFI/grub/grub.cfg}} にコピーして [[Unified Extensible Firmware Interface#efibootmgr|efibootmgr]] を使って {{ic|$esp/EFI/grub/grubx64_standalone.efi}} の UEFI Boot Manager エントリを作成してください。&lt;br /&gt;
&lt;br /&gt;
==== 技術的な情報 ====&lt;br /&gt;
&lt;br /&gt;
GRUB EFI のファイルはいつでも設定ファイルが {{ic|${prefix}/grub.cfg}} にあることを期待しています。しかしながらスタンドアロンの GRUB EFI ファイルでは、{{ic|${prefix} }} は tar アーカイブの中に置かれスタンドアロンの GRUB EFI ファイルそれ自体に埋め込まれます (GRUB ではクォートのない {{ic|&amp;quot;(memdisk)&amp;quot;}} で示される)。この tar アーカイブには通常の GRUB EFI インストールで {{ic|/boot/grub}} に保存される全てのファイルが含まれています。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot/grub}} の中身がスタンドアロンのイメージに埋め込まれることによって、全てにおいて実際の (外部的な) {{ic|/boot/grub}} を使うことはできなくなります。そのためスタンドアロンの GRUB EFI ファイルでは {{ic|1=${prefix}==(memdisk)/boot/grub}} とスタンドアロンの GRUB EFI ファイルは設定ファイルが {{ic|1=${prefix}/grub.cfg==(memdisk)/boot/grub/grub.cfg}} にあるとして読み込みます。&lt;br /&gt;
&lt;br /&gt;
このためスタンドアロンの GRUB EFI ファイルに同じディレクトリにある外部的 {{ic|grub.cfg}} を EFI ファイルとして読み込ませるには (GRUB では {{ic|${cmdpath} }} で示される)、GRUB に設定として {{ic|${cmdpath}/grub.cfg}} を使うように記述した {{ic|/tmp/grub.cfg}} を作る必要があります ({{ic|(memdisk)/boot/grub/grub.cfg}} の {{ic|configfile ${cmdpath}/grub.cfg}} コマンド)。それから grub-mkstandalone にこの {{ic|/tmp/grub.cfg}} ファイルを {{ic|${prefix}/grub.cfg}} (実際には {{ic|(memdisk)/boot/grub/grub.cfg}}) にコピーさせるためにオプション {{ic|1=&amp;quot;/boot/grub/grub.cfg=/tmp/grub.cfg&amp;quot;}} を使います。&lt;br /&gt;
&lt;br /&gt;
これでスタンドアロンの GRUB EFI ファイルと実際の {{ic|grub.cfg}} は EFI System Partition の中のディレクトリに (同じディレクトリである限り) 保存することが出来るようになり、持ち運びが容易になります。&lt;br /&gt;
&lt;br /&gt;
== メイン設定ファイルの生成 ==&lt;br /&gt;
&lt;br /&gt;
インストールした後は、メインの設定ファイル {{ic|grub.cfg}} を生成する必要があります。生成されるファイルは {{ic|/etc/default/grub}} の様々なオプションや {{ic|/etc/grub.d/}} のスクリプトによって設定されます。これについては [[#設定]] のセクションで説明しています。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/default/grub}} や {{ic|/etc/grub.d/*}} に変更を加えた後は {{ic|grub.cfg}} を再生成する必要があることを覚えておいて下さい。}}&lt;br /&gt;
{{Warning|パッケージバージョン 1:2.02.beta2-1 (2014-01-10) から grub-mkconfig は&#039;&#039;異常な&#039;&#039;設定ファイルを作成するようになっています。生成される {{ic|grub.cfg}} にはブートエントリが重複して含まれ、initramfs が見つからなかったりセルフコンパイルしたカーネルがメニューに表示されなかったりします ({{bug|38455}})。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;grub-mkconfig&#039;&#039; ツールを使って {{ic|grub.cfg}} を生成してください:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* このファイルのパスは {{ic|/boot/grub/grub.cfg}} です、{{ic|/boot/grub/i386-pc/grub.cfg}} ではありません。&lt;br /&gt;
* EFI システムでは、{{ic|1=--boot-directory=$esp/EFI}} オプションを使って GRUB がインストールされた場合、{{ic|grub.cfg}} ファイルは {{ic|grubx64.efi}} と同じディレクトリにあるはずです。そうでないのなら、GRUB BIOS と同じように {{ic|grub.cfg}} ファイルは {{ic|/boot/grub/}} にあります。&lt;br /&gt;
* chroot や &#039;&#039;systemd-nspawn&#039;&#039; コンテナで &#039;&#039;grub-mkconfig&#039;&#039; を実行しようとした場合、&#039;&#039;grub-probe&#039;&#039; が &amp;quot;/dev/sdaX の正規パス&amp;quot; を取得できないといて動かないことがあります。この場合、[https://bbs.archlinux.org/viewtopic.php?pid&amp;amp;#61;1225067#p1225067 ここ]に記述されているように &#039;&#039;arch-chroot&#039;&#039; を使ってみて下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
生成スクリプトはデフォルトで生成する設定に Arch Linux のメニューエントリを自動で追加します。しかしながら、他のオペレーティングシステムのエントリは設定しないといけません。BIOS システムでは {{Pkg|os-prober}} をインストールすれば、マシンにインストールされている他のオペレーティングシステムを検知して、それぞれのエントリを {{ic|grub.cfg}} に追加することができます。インストールされていれば、&#039;&#039;grub-mkconfig&#039;&#039; の実行時に os-prober が起動します。高度な設定は [[#デュアルブート]] を見てください。[[マルチブート USB ドライブ#ブートエントリ]]も参照。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
このセクションでは {{ic|/etc/default/grub}} 設定ファイルの編集についてだけ扱っています。他のオプションは [[GRUB/ヒントとテクニック]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/default/grub}} に変更を加えた後は必ず[[#メイン設定ファイルの生成|メイン設定ファイルの再生成]]を行なって下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== 追加引数 ===&lt;br /&gt;
&lt;br /&gt;
カスタムの追加引数を Linux イメージに渡すために、{{ic|/etc/default/grub}} で {{ic|GRUB_CMDLINE_LINUX}} と {{ic|GRUB_CMDLINE_LINUX_DEFAULT}} 変数を設定することができます。この2つは {{ic|grub.cfg}} を生成するときに互いに標準のブートエントリに追加されます。&#039;&#039;recovery&#039;&#039; ブートエントリについては、{{ic|GRUB_CMDLINE_LINUX}} だけが生成時に使われます。&lt;br /&gt;
&lt;br /&gt;
両方を使う必要はありませんが、上手く使えば便利です。例えば、{{ic|&amp;lt;nowiki&amp;gt;GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;resume=/dev/sdaX&amp;lt;/nowiki&amp;gt; quiet&amp;quot;}} ({{ic|sda&#039;&#039;&#039;X&#039;&#039;&#039;}} はスワップパーティション) を使ってハイバネーションの後の復帰を有効にすることができます。生成された recovery ブートエントリでは resume やメニューエントリからの起動中のカーネルメッセージを表示しない &#039;&#039;quiet&#039;&#039; は使われません。そして、他の (標準の) メニューエントリではオプションとして使われます。&lt;br /&gt;
&lt;br /&gt;
GRUB のリカバリエントリを生成するには {{ic|/etc/default/grub}} で {{ic|&amp;lt;nowiki&amp;gt;#GRUB_DISABLE_RECOVERY=true&amp;lt;/nowiki&amp;gt;}} をコメントアウトする必要があります。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|&amp;lt;nowiki&amp;gt;GRUB_CMDLINE_LINUX=&amp;quot;resume=/dev/disk/by-uuid/${swap_uuid}&amp;quot;&amp;lt;/nowiki&amp;gt;}} を使うこともできます ({{ic|${swap_uuid} }} は swap パーティションの [[永続的なブロックデバイスの命名|UUID]] に置き換えて下さい)。&lt;br /&gt;
&lt;br /&gt;
複数のエントリを使う時はダブルクォートの中でスペースで区切って下さい。resume と systemd の両方を使うなら次のようになります:&lt;br /&gt;
{{ic|&amp;lt;nowiki&amp;gt;GRUB_CMDLINE_LINUX=&amp;quot;resume=/dev/sdaX init=/usr/lib/systemd/systemd&amp;quot;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[カーネルパラメータ]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デュアルブート ===&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB に自動で他のシステムを検索してほしい場合は、{{Pkg|os-prober}} をインストールするとよいでしょう。}}&lt;br /&gt;
&lt;br /&gt;
==== /etc/grub.d/40_custom と grub-mkconfig を使って自動生成する ====&lt;br /&gt;
&lt;br /&gt;
他のエントリを追加する最適の方法は {{ic|/etc/grub.d/40_custom}} か {{ic|/boot/grub/custom.cfg}} を編集することです。{{ic|grub-mkconfig}} の実行時にこのファイルにエントリが自動で追加されます。&lt;br /&gt;
新しい行を追加した後、次を実行して {{ic|grub.cfg}} を生成・更新してください:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# grub-mkconfig -o /boot/grub/grub.cfg&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
UEFI-GPT モードでは:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# grub-mkconfig -o /boot/efi/EFI/GRUB/grub.cfg&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
例として、典型的な {{ic|/etc/grub.d/40_custom}} ファイルは以下のようになります。これは Microsoft Windows 8 がプリインストールされている [http://h10025.www1.hp.com/ewfrf/wc/product?cc=us&amp;amp;destPage=product&amp;amp;lc=en&amp;amp;product=5402703&amp;amp;tmp_docname= HP Pavilion 15-e056sl Notebook PC] にあわせて作成されています。それぞれの {{ic|menuentry}} は以下のエントリと同じような構造である必要があります。GRUB 内の UEFI パーティション {{ic|/dev/sda2}} は {{ic|hd0,gpt2}} や {{ic|ahci0,gpt2}} と記述するので注意してください (詳しくは[[#UEFI-GPT モードでインストールされた Windows のメニューエントリ|ここ]]を見て下さい)。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/grub.d/40_custom&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/grub.d/40_custom|&amp;lt;nowiki&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
exec tail -n +3 $0&lt;br /&gt;
# This file provides an easy way to add custom menu entries.&amp;amp;nbsp; Simply type the&lt;br /&gt;
# menu entries you want to add after this comment.&amp;amp;nbsp; Be careful not to change&lt;br /&gt;
# the &#039;exec tail&#039; line above.&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;HP / Microsoft Windows 8.1&amp;quot; {&lt;br /&gt;
	echo &amp;quot;Loading HP / Microsoft Windows 8.1...&amp;quot;&lt;br /&gt;
	insmod part_gpt&lt;br /&gt;
	insmod fat&lt;br /&gt;
	insmod search_fs_uuid&lt;br /&gt;
	insmod chain&lt;br /&gt;
	search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 763A-9CB6&lt;br /&gt;
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;HP / Microsoft Control Center&amp;quot; {&lt;br /&gt;
	echo &amp;quot;Loading HP / Microsoft Control Center...&amp;quot;&lt;br /&gt;
	insmod part_gpt&lt;br /&gt;
	insmod fat&lt;br /&gt;
	insmod search_fs_uuid&lt;br /&gt;
	insmod chain&lt;br /&gt;
	search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 763A-9CB6&lt;br /&gt;
	chainloader /EFI/HP/boot/bootmgfw.efi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;System shutdown&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System shutting down...&amp;quot;&lt;br /&gt;
	halt&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;System restart&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System rebooting...&amp;quot;&lt;br /&gt;
	reboot&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== GNU/Linux のメニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
他のディストリが {{ic|sda2}} パーティションに存在する場合:&lt;br /&gt;
&lt;br /&gt;
 menuentry &amp;quot;Other Linux&amp;quot; {&lt;br /&gt;
   set root=(hd0,2)&lt;br /&gt;
   linux /boot/vmlinuz (必要に応じて他のオプションを追加してください)&lt;br /&gt;
   initrd /boot/initrd.img (他のカーネルが使用している場合)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
====== 暗号化されている GNU/Linux のメニューエントリ ======&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;Other Linux (Encrypted)&amp;quot;{&lt;br /&gt;
      insmod luks&lt;br /&gt;
      cryptomount (hd0,2)&lt;br /&gt;
      set root=(crypto0)&lt;br /&gt;
      linux /boot/vmlinuz cryptdevice=/dev/sda2:cryptroot root=/dev/mapper/cryptroot (必要に応じて他のオプションを追加してください)&lt;br /&gt;
      initrd /boot/initrd.img (他のカーネルが使用している場合)&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== FreeBSD のメニューエントリ =====&lt;br /&gt;
以下の3つの方法はどれも UFS(v2) でシングルパーティションに FreeBSD がインストールされている必要があります。ネストされた BSD パーティションテーブルが {{ic|sda4}} にある場合:&lt;br /&gt;
&lt;br /&gt;
====== カーネルを直接ロードする ======&lt;br /&gt;
{{bc|1=&lt;br /&gt;
menuentry &#039;FreeBSD&#039; {&lt;br /&gt;
	insmod ufs2&lt;br /&gt;
	set root=&#039;hd0,gpt4,bsd1&#039;&lt;br /&gt;
	## or &#039;hd0,msdos4,bsd1&#039;, if using an IBM-PC (MS-DOS) style partition table&lt;br /&gt;
	kfreebsd /boot/kernel/kernel&lt;br /&gt;
	kfreebsd_loadenv /boot/device.hints&lt;br /&gt;
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s4a&lt;br /&gt;
	set kFreeBSD.vfs.root.mountfrom.options=rw&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
====== 埋め込まれたブートレコードをチェインロード ======&lt;br /&gt;
{{bc|1=&lt;br /&gt;
menuentry &#039;FreeBSD&#039; {&lt;br /&gt;
	insmod ufs2&lt;br /&gt;
	set root=&#039;hd0,gpt4,bsd1&#039;&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
====== 伝統的な BSD の 2nd stage ローダーを実行 ======&lt;br /&gt;
{{bc|1=&lt;br /&gt;
menuentry &#039;FreeBSD&#039; {&lt;br /&gt;
  insmod ufs2&lt;br /&gt;
  set root=&#039;(hd0,4)&#039;&lt;br /&gt;
  kfreebsd /boot/loader&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Windows XP のメニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
ここでは Windows のパーティションが {{ic|sda3}} にあると仮定しています。実際に windows があるパーティションではなく、インストール時に windows が作成したシステムの予約済みパーティションに set root と chainloader を設定する必要があります。あなたのシステムの予約済みパーティションが {{ic|sda3}} の場合:&lt;br /&gt;
&lt;br /&gt;
 # (2) Windows XP&lt;br /&gt;
 menuentry &amp;quot;Windows XP&amp;quot; {&lt;br /&gt;
   set root=&amp;quot;(hd0,3)&amp;quot;&lt;br /&gt;
   chainloader +1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Windows のブートローダーが GRUB とは完全に異なるハードドライブに存在する場合、Windows に GRUB が存在するのが最初のハードドライブだと信じこませる必要があるかもしれません。これは {{ic|drivemap}} を使ってできます。GRUB が {{ic|hd0}} に、Windows が {{ic|hd2}} にあるとするには、{{ic|set root}} の後に次を追加してください:&lt;br /&gt;
&lt;br /&gt;
 drivemap -s hd0 hd2&lt;br /&gt;
&lt;br /&gt;
===== UEFI-GPT モードでインストールされた Windows のメニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;${grub_platform}&amp;quot; == &amp;quot;efi&amp;quot; ]; then&lt;br /&gt;
   menuentry &amp;quot;Microsoft Windows Vista/7/8/8.1 UEFI-GPT&amp;quot; {&lt;br /&gt;
     insmod part_gpt&lt;br /&gt;
     insmod fat&lt;br /&gt;
     insmod search_fs_uuid&lt;br /&gt;
     insmod chain&lt;br /&gt;
     search --fs-uuid --set=root $hints_string $fs_uuid&lt;br /&gt;
     chainloader /EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
   }&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
{{ic|$hints_string}} と {{ic|$fs_uuid}} は以下の2つのコマンドで知ることができます。{{ic|$fs_uuid}} のコマンドは:&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=fs_uuid $esp/EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
 1ce5-7f28&lt;br /&gt;
&lt;br /&gt;
{{ic|$hints_string}} のコマンドは:&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=hints_string $esp/EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
 --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1&lt;br /&gt;
&lt;br /&gt;
これらの2つのコマンドは Windows が使っている ESP が {{ic|$esp}} にマウントされているということを前提にしています。場合によっては Windows の EFI ファイルのパスが異なっている可能性があります。&lt;br /&gt;
&lt;br /&gt;
===== &amp;quot;シャットダウン&amp;quot; メニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;System shutdown&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System shutting down...&amp;quot;&lt;br /&gt;
	halt&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== &amp;quot;再起動&amp;quot; メニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;System restart&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System rebooting...&amp;quot;&lt;br /&gt;
	reboot&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== &amp;quot;ファームウェア設定&amp;quot; メニューエントリ (UEFI のみ) =====&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;Firmware setup&amp;quot; {&lt;br /&gt;
	fwsetup&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== BIOS-MBR モードでインストールされた Windows =====&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB は {{ic|bootmgr}} の直接起動をサポートしており、もはや BIOS-MBR 環境で Windows を起動するためにパーティションブートセクタのチェインロードをする必要はありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|bootmgr}} が存在するのは&#039;&#039;&#039;システムパーティション&#039;&#039;&#039;であり、&amp;quot;実際に使っている&amp;quot; Windows のパーティション (一般的に C:) ではありません。{{ic|blkid}} で全ての UUID を表示した際、システムパーティションは {{ic|LABEL&amp;amp;#61;&amp;quot;SYSTEM RESERVED&amp;quot;}} もしくは {{ic|LABEL&amp;amp;#61;&amp;quot;SYSTEM&amp;quot;}} のパーティションであり容量は僅か 100 MB から 200 MB (Arch の boot パーティションとほぼ同じ大きさ) です。詳細は [[Wikipedia:System partition and boot partition]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
このセクションでは、あなたの Windows パーティションは {{ic|/dev/sda1}} だと仮定しています。違うパーティションを使っている場合は全ての {{ic|hd0,msdos1}} を修正しなくてはなりません。最初に、{{ic|bootmgr}} と関連ファイルがある Windows のシステムパーティションの NTFS ファイルシステムの UUID を見つけて下さい。例えば、Windows の {{ic|bootmgr}} が {{ic|/media/SYSTEM_RESERVED/bootmgr}} に存在する場合:&lt;br /&gt;
&lt;br /&gt;
Windows Vista/7/8 では:&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=fs_uuid /media/SYSTEM_RESERVED/bootmgr&lt;br /&gt;
 69B235F6749E84CE&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=hints_string /media/SYSTEM_RESERVED/bootmgr&lt;br /&gt;
 --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows XP では、上記のコマンドにある {{ic|bootmgr}} を {{ic|NTLDR}} に置き換えて下さい。さらに、SYSTEM_RESERVED パーティションは存在しない可能性があることに注意してください; あなたの Windows パーティション上に NTLDR ファイルがないか調べて下さい。}}&lt;br /&gt;
&lt;br /&gt;
次に、BIOS-MBR モードでインストールされた Windows (XP, Vista, 7, 8, 10) を起動するために下のコードを {{ic|/etc/grub.d/40_custom}} か {{ic|/boot/grub/custom.cfg}} に追加して、上で説明したように {{ic|grub-mkconfig}} を使って {{ic|grub.cfg}} を再生成してください:&lt;br /&gt;
&lt;br /&gt;
Windows Vista/7/8/8.1/10 では:&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;${grub_platform}&amp;quot; == &amp;quot;pc&amp;quot; ]; then&lt;br /&gt;
   menuentry &amp;quot;Microsoft Windows Vista/7/8/8.1/10 BIOS-MBR&amp;quot; {&lt;br /&gt;
     insmod part_msdos&lt;br /&gt;
     insmod ntfs&lt;br /&gt;
     insmod search_fs_uuid&lt;br /&gt;
     insmod ntldr     &lt;br /&gt;
     search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 69B235F6749E84CE&lt;br /&gt;
     ntldr /bootmgr&lt;br /&gt;
   }&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Windows XP では:&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;${grub_platform}&amp;quot; == &amp;quot;pc&amp;quot; ]; then&lt;br /&gt;
   menuentry &amp;quot;Microsoft Windows XP&amp;quot; {&lt;br /&gt;
     insmod part_msdos&lt;br /&gt;
     insmod ntfs&lt;br /&gt;
     insmod search_fs_uuid&lt;br /&gt;
     insmod ntldr     &lt;br /&gt;
     search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 69B235F6749E84CE&lt;br /&gt;
     ntldr /bootmgr&lt;br /&gt;
   }&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
上記で使っているパーティションの UUID の例である &#039;&#039;69B235F6749E84CE&#039;&#039; は {{ic|lsblk --fs}} コマンドで確認できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|たまに (Windows 8 で GRUB をインストールした場合など)、{{ic|\boot\bcd}} でエラーが起こって Windows を起動できなくなることがあります (エラーコード {{ic|0xc000000f}})。Windows の回復コンソール (インストールディスクから cmd) を使って以下を実行することで修復することが可能です:&lt;br /&gt;
 x:\&amp;gt; &amp;quot;bootrec.exe /fixboot&amp;quot; &lt;br /&gt;
 x:\&amp;gt; &amp;quot;bootrec.exe /RebuildBcd&amp;quot;.&lt;br /&gt;
{{ic|bootrec.exe /Fixmbr}} を使わないで下さい、GRUB が消去されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/grub.d/40_custom}} をテンプレートとして使って {{ic|/etc/grub.d/nn_custom}} を作成することができます。{{ic|nn}} は優先順位を定義し、スクリプトが実行される順番を示します。スクリプトが実行される順番で grub のブートメニューの場所が決まります。&lt;br /&gt;
&lt;br /&gt;
{{Note|最初に必要なスクリプトが実行されるように {{ic|nn}} は 06 よりも大きな値にするべきです。}}&lt;br /&gt;
&lt;br /&gt;
==== EasyBCD と NeoGRUB を使って Windows とデュアルブート ====&lt;br /&gt;
&lt;br /&gt;
現在 EasyBCD の NeoGRUB は GRUB のメニューフォーマットを認識しないので、{{ic|C:\NST\menu.lst}} ファイルの中身を以下のように置き換えることでチェインロードしてください:&lt;br /&gt;
&lt;br /&gt;
 default 0&lt;br /&gt;
 timeout 1&lt;br /&gt;
&lt;br /&gt;
 title       Chainload into GRUB v2&lt;br /&gt;
 root        (hd0,7)&lt;br /&gt;
 kernel      /boot/grub/i386-pc/core.img&lt;br /&gt;
&lt;br /&gt;
そして、{{ic|grub-mkconfig}} を使って {{ic|grub.cfg}} を再生成してください。&lt;br /&gt;
&lt;br /&gt;
==== parttool for hide/unhide ====&lt;br /&gt;
&lt;br /&gt;
{{ic|C:\}} ディスクを隠している Windows 9x がある場合、GRUB は {{ic|parttool}} を使ってディスクを隠したり表示したりすることができます。例えば、3つの Windows 9x インストールがあり3番目の {{ic|C:\}} ディスクを起動するには CLI に入り以下を実行してください:&lt;br /&gt;
 parttool hd0,1 hidden+ boot-&lt;br /&gt;
 parttool hd0,2 hidden+ boot-&lt;br /&gt;
 parttool hd0,3 hidden- boot+&lt;br /&gt;
 set root=hd0,3&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
=== LVM ===&lt;br /&gt;
&lt;br /&gt;
[[LVM]] を {{ic|/boot}} で使っている場合、メニューエントリの行の前に次を追加してください:&lt;br /&gt;
&lt;br /&gt;
 insmod lvm&lt;br /&gt;
&lt;br /&gt;
そしてメニューエントリで root を次のように指定してください:&lt;br /&gt;
&lt;br /&gt;
 set root=lvm/&#039;&#039;lvm_group_name&#039;&#039;-&#039;&#039;lvm_logical_boot_partition_name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
サンプル:&lt;br /&gt;
&lt;br /&gt;
 # (0) Arch Linux&lt;br /&gt;
 menuentry &amp;quot;Arch Linux&amp;quot; {&lt;br /&gt;
   insmod lvm&lt;br /&gt;
   set root=lvm/VolumeGroup-lv_boot&lt;br /&gt;
   # you can only set following two lines&lt;br /&gt;
   linux /vmlinuz-linux root=/dev/mapper/VolumeGroup-root ro&lt;br /&gt;
   initrd /initramfs-linux.img&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== RAID ===&lt;br /&gt;
&lt;br /&gt;
GRUB には RAID ボリュームの便利な制御機能があります。ボリュームをネイティブに指定できる {{ic|insmod mdraid09}} または {{ic|mdraid1x}} を追加する必要があります。例えば、{{ic|/dev/md0}} は次のようになります:&lt;br /&gt;
 set root=(md/0)&lt;br /&gt;
&lt;br /&gt;
一方パーティション済みの RAID ボリューム (例: {{ic|/dev/md0p1}}) は次のとおりです:&lt;br /&gt;
 set root=(md/0,1)&lt;br /&gt;
&lt;br /&gt;
RAID1 を GPT ef02/&#039;BIOS boot partition&#039; のドライブ上の、{{ic|/boot}} パーティション (もしくは RAID1 root パーティション上の {{ic|/boot}}) で使っている場合に grub をインストールするには、ドライブの両方で &#039;&#039;grub-install&#039;&#039; を実行するだけです。例:&lt;br /&gt;
 # grub-install --target=i386-pc --debug /dev/sda&lt;br /&gt;
 # grub-install --target=i386-pc --debug /dev/sdb&lt;br /&gt;
ここで {{ic|/boot}} がある RAID1 アレイは {{ic|/dev/sda}} と {{ic|/dev/sdb}} に収容されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB は2015年9月現在 [[Btrfs]] の RAID 0/1/10 からの起動をサポートしていますが、RAID 5/6 からの起動はサポートしていません。RAID 5/6 では GRUB によってサポートされている [[mdadm]] を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
=== 暗号化 ===&lt;br /&gt;
&lt;br /&gt;
==== Root パーティション ====&lt;br /&gt;
&lt;br /&gt;
ルートファイルシステムを暗号化して GRUB で使用するには、[[mkinitcpio]] に {{ic|encrypt}} フックまたは {{ic|sd-encrypt}} フック (systemd フックを使用している場合) を追加してください。詳しくは [[Dm-crypt/システム設定#mkinitcpio]] や [[Mkinitcpio#通常のフック]]を見てください。&lt;br /&gt;
&lt;br /&gt;
{{ic|encrypt}} フックを使う場合、{{ic|cryptdevice}} パラメータを {{ic|/etc/default/grub}} に追加してください。以下の例では、{{ic|sda2}} パーティションを {{ic|/dev/mapper/cryptroot}} として暗号化しています:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;cryptdevice=/dev/sda2:cryptroot&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|sd-encrypt}} フックを使用する場合、{{ic|luks.uuid}} を追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;luks.uuid=&#039;&#039;UUID&#039;&#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;UUID&#039;&#039; は LUKS で暗号化したデバイスの UUID に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/default/grub}} を修正したら、[[#メイン設定ファイルの生成|メイン設定ファイルの生成]]を忘れずにしてください。&lt;br /&gt;
&lt;br /&gt;
暗号化デバイスのブートローダー設定に関する詳細は、[[Dm-crypt/システム設定#ブートローダー]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/boot}} パーティションを暗号化したい場合、さらに設定が必要です。[[#Boot パーティション]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|GRUB Legacy の設定から更新する場合は、{{ic|/boot/grub/menu.lst.pacsave}} を確認して適切なデバイス・ラベルを加えて下さい。{{ic|kernel /vmlinuz-linux}} という文の後ろにあるはずです。}}&lt;br /&gt;
&lt;br /&gt;
==== Boot パーティション ====&lt;br /&gt;
&lt;br /&gt;
GRUB [https://www.gnu.org/software/grub/manual/grub.html#Simple-configuration パラメータ] {{ic|GRUB_ENABLE_CRYPTODISK}} を使うことで [[LUKS]] ブロックデバイスを開くときに GRUB にパスワードを要求させて、設定を読み込んでブロックデバイスから [[initramfs]] と[[カーネル]]をロードすることができます。このオプションは [[Dm-crypt/特記事項#暗号化されていない boot パーティションのセキュア化|boot パーティションが暗号化されてない]]という問題を解決します。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/default/grub}} に以下を追加することで機能が有効になります:&lt;br /&gt;
 GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
設定した後は {{ic|/boot}} をマウントしてから &#039;&#039;grub-mkconfig&#039;&#039; を実行して[[#メイン設定ファイルの生成|メイン設定ファイルを生成]]してください。&lt;br /&gt;
&lt;br /&gt;
以下のことに注意してください:&lt;br /&gt;
&lt;br /&gt;
* この機能を使うために {{ic|/boot}} を別パーティションにする必要はありません。システムの root {{ic|/}} ディレクトリツリー下に配置できます。ただし、どちらにしても起動するには二回パスフレーズを入力する必要があります。ひとつ目のパスワードは {{ic|/boot}} マウントポイントのロックを解除して、ふたつ目のパスワードは root ファイルシステムのロックを解除します。&lt;br /&gt;
&lt;br /&gt;
* {{ic|/boot}} マウントポイントも関連するシステムアップデートを実行するときは、暗号化された {{ic|/boot}} のロックが解除されて initramfs やカーネルによって再マウントされている必要があります。{{ic|/boot}} パーティションを分割している場合、{{ic|/etc/crypttab}} にエントリとキーファイルを追加することで再マウントさせることができます。[[Dm-crypt/システム設定#crypttab]] を参照。&lt;br /&gt;
&lt;br /&gt;
* 特殊なキーマップを使っている場合、デフォルトの GRUB では反映されていません。LUKS ブロックデバイスのロックを解除するためにパスフレーズを入力するときに問題になります。&lt;br /&gt;
&lt;br /&gt;
* パスワードを入力するプロンプトに問題が発生する場合 (cryptouuid や cryptodisk のエラー、あるいは &amp;quot;device not found&amp;quot;)、以下のように GRUB を再インストールしてみてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=$esp --bootloader-id=grub &#039;&#039;&#039;--modules=&amp;quot;part_gpt part_msdos&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== コマンドシェルを使う ==&lt;br /&gt;
&lt;br /&gt;
GRUB のモジュールを全て保存するには MBR は小さすぎるので、メニューと基本的なコマンドだけが MBR に入っています。GRUB の機能のほとんどは {{ic|/boot/grub}} 内のモジュールとして存在し、必要に応じて挿入されます。エラー状態になると (例: パーティションレイアウトが変更された場合) GRUB は起動に失敗します。このとき、コマンドシェルが表示されます。&lt;br /&gt;
&lt;br /&gt;
GRUB は複数のシェル・プロンプトを提供しています。メニューの読込に問題があってもブートローダがディスクを見つけられるときは、&amp;quot;normal&amp;quot; シェルが出ます:&lt;br /&gt;
 sh:grub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
深刻な問題があるときは (例: GRUB が必要なファイルを見つけられない)、代わりに &amp;quot;rescue&amp;quot; シェルが出ます:&lt;br /&gt;
 grub rescue&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rescue シェルは通常のシェルの制限されたサブセットで、使える機能が少なくなっています。rescue シェルが出てきた時は、まず &amp;quot;normal&amp;quot; モジュールの挿入を試して、&amp;quot;normal&amp;quot; シェルを起動してみて下さい:&lt;br /&gt;
 grub rescue&amp;gt; set prefix=(hdX,Y)/boot/grub&lt;br /&gt;
 grub rescue&amp;gt; insmod (hdX,Y)/boot/grub/i386-pc/normal.mod&lt;br /&gt;
 rescue:grub&amp;gt; normal&lt;br /&gt;
&lt;br /&gt;
=== ページャのサポート ===&lt;br /&gt;
&lt;br /&gt;
GRUB はページャをサポートしており長い出力をするコマンド ({{ic|help}} コマンドなど) を読むことができます。これは通常のシェルモードでしか動作せずレスキューモードでは使えません。ページャを有効にするには、GRUB コマンドシェルで次を入力して下さい:&lt;br /&gt;
 sh:grub&amp;gt; set pager=1&lt;br /&gt;
&lt;br /&gt;
=== コマンドシェル環境を使ってオペレーティングシステムを起動する ===&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; &lt;br /&gt;
&lt;br /&gt;
GRUB のコマンドシェル環境を使ってオペレーティングシステムを起動することが可能です。&lt;br /&gt;
通常は&#039;&#039;&#039;チェインロード&#039;&#039;&#039;を使ってドライブやパーティションから Windows / Linux を起動するということが考えられます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;チェインロード&#039;&#039;は現在のブートローダから別のブートローダをロードすることを意味します。&lt;br /&gt;
&lt;br /&gt;
他のブートローダはディスクの最初 (MBR) やパーティションの最初に埋め込むことができます。&lt;br /&gt;
&lt;br /&gt;
==== パーティションのチェインロード ====&lt;br /&gt;
&lt;br /&gt;
 set root=(hdX,Y)&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
X=0,1,2...&lt;br /&gt;
Y=1,2,3...&lt;br /&gt;
&lt;br /&gt;
例えば最初のハードディスクの最初のパーティションに保存された Windows をチェインロードするには:&lt;br /&gt;
&lt;br /&gt;
 set root=(hd0,1)&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
同じようにパーティションにインストールされた GRUB をチェインロードすることもできます。&lt;br /&gt;
&lt;br /&gt;
==== ディスクやドライブのチェインロード ====&lt;br /&gt;
&lt;br /&gt;
 set root=hdX&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
==== UEFI モードでインストールされた Windows/Linux のチェインロード ====&lt;br /&gt;
&lt;br /&gt;
 insmod ntfs&lt;br /&gt;
 set root=(hd0,gpt4)&lt;br /&gt;
 chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;insmod ntfs&#039;&#039; を使うことで ntfs ファイルシステムモジュールをロードして Windows をロードすることができます。上記の例では (hd0,gpt4) または /dev/sda4 が EFI System Partition (ESP) です。&#039;&#039;chainloader&#039;&#039; 行のエントリはチェインロードする .efi ファイルのパスを指定しています。&lt;br /&gt;
&lt;br /&gt;
==== 通常のロード ====&lt;br /&gt;
&lt;br /&gt;
[[#rescue コンソールを使う]] の例を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== rescue コンソールを使う ===&lt;br /&gt;
&lt;br /&gt;
まず [[#コマンドシェルを使う]] を見て下さい。標準シェルを有効にできない場合、ライブ CD や他のレスキューディスクを使って起動し、設定のエラーを直して GRUB を再インストールという方法があります。ただし、そのようなブートディスクはいつも使えるというわけではありません (もしくは必要ありません); レスキューコンソールは驚くほど堅牢です。&lt;br /&gt;
&lt;br /&gt;
GRUB rescue で利用できるコマンドには {{ic|insmod}}, {{ic|ls}}, {{ic|set}}, {{ic|unset}} があります。この例では {{ic|set}} と {{ic|insmod}} を使います。{{ic|set}} は変数を修正し {{ic|insmod}} は新しいモジュールを挿入して機能を追加します。&lt;br /&gt;
&lt;br /&gt;
始める前に、ユーザーは自分の {{ic|/boot}} パーティションの位置を知っていなければなりません (分割パーティションなのか、root 下のサブディレクトリなのか):&lt;br /&gt;
 grub rescue&amp;gt; set prefix=(hdX,Y)/boot/grub&lt;br /&gt;
&lt;br /&gt;
X は物理ドライブ番号、Y はパーティション番号に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|boot パーティションを分割している場合、パスから {{ic|/boot}} を省いて下さい (つまり、{{ic|1=set prefix=(hdX,Y)/grub}} と入力する)。}}&lt;br /&gt;
&lt;br /&gt;
コンソールの機能を拡張するために、{{ic|linux}} モジュールを挿入します:&lt;br /&gt;
 grub rescue&amp;gt; insmod i386-pc/linux.mod&lt;br /&gt;
&lt;br /&gt;
もしくは:&lt;br /&gt;
 grub rescue&amp;gt; insmod linux&lt;br /&gt;
&lt;br /&gt;
これで {{ic|linux}} と {{ic|initrd}} コマンドが使えます、これらのコマンドは慣れているはずです ([[#設定]] を見て下さい)。&lt;br /&gt;
&lt;br /&gt;
例えば、Arch Linux を起動:&lt;br /&gt;
 set root=(hd0,5)&lt;br /&gt;
 linux /boot/vmlinuz-linux root=/dev/sda5&lt;br /&gt;
 initrd /boot/initramfs-linux.img&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
boot パーティションを分割しているなら、行を変更する必要があります:&lt;br /&gt;
{{Note|上の prefix と同じような形式で boot パーティションを手動で指定する必要があります。}}&lt;br /&gt;
 set root=(hd0,5)&lt;br /&gt;
 linux (hdX,Y)/vmlinuz-linux root=/dev/sda6&lt;br /&gt;
 initrd (hdX,Y)/initramfs-linux.img&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|linux}} コマンドの実行中に {{ic|error: premature end of file /YOUR_KERNEL_NAME}} と表示される場合は、代わりに {{ic|linux16}} を使ってみて下さい。}}&lt;br /&gt;
&lt;br /&gt;
Arch Linux 環境のブートに成功したら、必要に応じて {{ic|grub.cfg}} を修正し GRUB を再インストールすることができます。&lt;br /&gt;
&lt;br /&gt;
GRUB を再インストールして問題を完全に修正するには、必要応じて {{ic|/dev/sda}} を変更します。詳しくは [[#インストール]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Intel BIOS が GPT をブートしない ===&lt;br /&gt;
&lt;br /&gt;
==== MBR ====&lt;br /&gt;
&lt;br /&gt;
Intel BIOS によっては起動時に最低でも1つ起動可能な MBR パーティションが必要なため、GPT でパーティションされたブートセットアップが起動できなくなることがあります。&lt;br /&gt;
&lt;br /&gt;
この問題は fdisk を使って GPT パーティションのひとつ (GRUB のために作成した 1007 KiB のパーティションが好ましい) を MBR でブータブルだと印をつけることで回避できます。fdisk を使って次のコマンドを実行してください: fdisk をインストールするディスクで起動し (例: {{ic|fdisk /dev/sda}})、{{ic|a}} を押してから数字を入力してブータブルにしたいパーティション (おそらく #1) を選択してください。最後に {{ic|w}} を押して変更を MBR に書き込みます。&lt;br /&gt;
&lt;br /&gt;
{{Note|ブータブルの設定は GParted ではなく、{{ic|fdisk}} などで行う必要があります。GParted は MBR で bootable フラグを設定しないからです。}}&lt;br /&gt;
&lt;br /&gt;
最新版の parted では {{ic|disk_toggle pmbr_boot}} オプションを使うことができます。実行後 Disk Flags に pmbr_boot と表示されることを確認してください。&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; disk_toggle pmbr_boot&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
詳細は [http://www.rodsbooks.com/gdisk/bios.html ここ] から見ることができます。&lt;br /&gt;
&lt;br /&gt;
==== EFI パス ====&lt;br /&gt;
&lt;br /&gt;
UEFI ファームウェアによっては UEFI NVRAM ブートエントリを表示する前に特定の場所にブータブルファイルを必要とします。この場合、{{ic|grub-install}} は {{ic|efibootmgr}} に GRUB をブートするエントリを追加するように指示しますが、VisualBIOS のブートオーダーセレクタではエントリが表示されません。解決方法は特定の場所にファイルを配置することです。EFI パーティションが {{ic|/boot/efi/}} の場合、以下のコマンドで解決します:&lt;br /&gt;
&lt;br /&gt;
 mkdir /boot/efi/EFI/boot&lt;br /&gt;
 cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi&lt;br /&gt;
&lt;br /&gt;
この解決方法は2014年1月、Intel DH87MC マザーボードのファームウェアで確認しました。&lt;br /&gt;
&lt;br /&gt;
=== デバッグメッセージを有効にする ===&lt;br /&gt;
&lt;br /&gt;
以下を {{ic|grub.cfg}} に追加してください:&lt;br /&gt;
 &lt;br /&gt;
 set pager=1&lt;br /&gt;
 set debug=all&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;No suitable mode found&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
メニューエントリのどれかを起動したときに以下のエラーが表示される場合:&lt;br /&gt;
&lt;br /&gt;
 error: no suitable mode found&lt;br /&gt;
 Booting however&lt;br /&gt;
&lt;br /&gt;
GRUB の正しいビデオモード ({{ic|gfxmode}}) を使って GRUB グラフィカルターミナル ({{ic|gfxterm}}) を初期化する必要があります。このビデオモードは &#039;gfxpayload&#039; を使って GRUB から linux カーネルに渡されます。UEFI 環境の場合、GRUB のビデオモードが初期化されないと、端末にカーネルのブートメッセージが (少なくとも KMS が有効になるまで) 全く表示されません。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/grub/unicode.pf2}} を ${GRUB_PREFIX_DIR} (BIOS と UEFI システムの場合 {{ic|/boot/grub/}}) にコピーしてください。GRUB UEFI をインストールしたときに {{ic|1=--boot-directory=$esp/EFI}} を設定したときは、ディレクトリは {{ic|$esp/EFI/grub/}} になります:&lt;br /&gt;
&lt;br /&gt;
 # cp /usr/share/grub/unicode.pf2 ${GRUB_PREFIX_DIR}&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/grub/unicode.pf2}} が存在しないときは、{{Pkg|bdf-unifont}} をインストールして、{{ic|unifont.pf2}} ファイルを作成し {{ic|${GRUB_PREFIX_DIR&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkfont -o unicode.pf2 /usr/share/fonts/misc/unifont.bdf&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|grub.cfg}} ファイルの中に、以下の行を追加して GRUB がカーネルに正しくビデオモードを渡すようにしてください。どちらかがないと黒画面 (出力なし) になりますが起動は問題なく (フリーズせずに) 進みます。&lt;br /&gt;
&lt;br /&gt;
BIOS システム:&lt;br /&gt;
&lt;br /&gt;
 insmod vbe&lt;br /&gt;
&lt;br /&gt;
UEFI システム:&lt;br /&gt;
&lt;br /&gt;
 insmod efi_gop&lt;br /&gt;
 insmod efi_uga&lt;br /&gt;
&lt;br /&gt;
その後以下のコードを追加してください (BIOS と UEFI 両方で共通):&lt;br /&gt;
&lt;br /&gt;
 insmod font&lt;br /&gt;
&lt;br /&gt;
 if loadfont ${prefix}/fonts/unicode.pf2&lt;br /&gt;
 then&lt;br /&gt;
     insmod gfxterm&lt;br /&gt;
     set gfxmode=auto&lt;br /&gt;
     set gfxpayload=keep&lt;br /&gt;
     terminal_output gfxterm&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
gfxterm (graphical terminal) が正しく動作すれば、{{ic|unicode.pf2}} フォントファイルは {{ic|${GRUB_PREFIX_DIR&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} にあるはずです。&lt;br /&gt;
&lt;br /&gt;
=== msdos-style エラーメッセージ ===&lt;br /&gt;
&lt;br /&gt;
 grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding will not be possible!&lt;br /&gt;
 grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.&lt;br /&gt;
             However, blocklists are UNRELIABLE and its use is discouraged.&lt;br /&gt;
 grub-setup: error: If you really want blocklists, use --force.&lt;br /&gt;
&lt;br /&gt;
このエラーは VMware コンテナに GRUB をインストールしようとすると起こることがあります。詳しくは [https://bbs.archlinux.org/viewtopic.php?pid=581760#p581760 ここ] を読んで下さい。最初のパーティションが MBR (ブロック 63) のすぐ後ろから始まっていて、最初のパーティションの前に通常の 1 MiB のスペース (2048 ブロック) がない場合に起こります。[[#Master Boot Record (MBR) 特有の手順]] を読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI ===&lt;br /&gt;
&lt;br /&gt;
==== よくあるインストール時のエラー ====&lt;br /&gt;
&lt;br /&gt;
* grub-install の実行時に sysfs や procfs に関する問題が表示される場合、{{ic|modprobe efivars}} を実行してください。[[Unified Extensible Firmware Interface#UEFI 変数]] を参照。&lt;br /&gt;
* {{ic|--target}} と {{ic|--directory}} オプションのどちらかがないと、{{ic|grub-install}} はどこにファームウェアをインストールすればいいのか決められません。そのような場合 {{ic|grub-install}} は {{ic|source_dir does not exist. Please specify --target or --directory}} というメッセージを表示します。&lt;br /&gt;
* grub-install を実行した後、パーティションが EFI パーティションではないというような表示がされる場合、おそらくパーティションが {{ic|Fat32}} ではありません。&lt;br /&gt;
&lt;br /&gt;
==== レスキューシェルが起動する ====&lt;br /&gt;
&lt;br /&gt;
GRUB がロードしたときにエラーを表示せずにレスキューシェルを起動する場合、おそらく {{ic|grub.cfg}} が存在しなかったり間違った場所に置かれていることが原因です。GRUB UEFI を {{ic|--boot-directory}} でインストールして {{ic|grub.cfg}} がなかったり、ブートパーティションのパーティション番号 ({{ic|grubx64.efi}} ファイルにハードコードされています) が変更されているときにこの問題が発生します。&lt;br /&gt;
&lt;br /&gt;
==== GRUB UEFI がロードされない ====&lt;br /&gt;
&lt;br /&gt;
EFI の動作の例:&lt;br /&gt;
{{hc|# efibootmgr -v|&lt;br /&gt;
BootCurrent: 0000&lt;br /&gt;
Timeout: 3 seconds&lt;br /&gt;
BootOrder: 0000,0001,0002&lt;br /&gt;
Boot0000* Grub	HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\efi\grub\grub.efi)&lt;br /&gt;
Boot0001* Shell	HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EfiShell.efi)&lt;br /&gt;
Boot0002* Festplatte	BIOS(2,0,00)P0: SAMSUNG HD204UI&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
画面が数秒間真っ暗になってその後次のブートオプションが試行される場合、[https://bbs.archlinux.org/viewtopic.php?pid=981560#p981560 この投稿]によると、GRUB を root パーティションに移動することで直るかもしれません。ブートオプションは削除して後でまた作成する必要があります。GRUB のエントリは次のようにしてください:&lt;br /&gt;
 Boot0000* Grub	HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grub.efi)&lt;br /&gt;
&lt;br /&gt;
=== Invalid signature ===&lt;br /&gt;
&lt;br /&gt;
(パーティションを再設定したりハードドライブを追加した後) Windows を起動しようとしたときに &amp;quot;invalid signature&amp;quot; エラーが起こる場合、GRUB のデバイス設定を移動（削除）して再設定してください:&lt;br /&gt;
 # mv /boot/grub/device.map /boot/grub/device.map-old&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
これで {{ic|grub-mkconfig}} は Windows を含む全てのブートオプションを記述したはずです。これで動作したら、{{ic|/boot/grub/device.map-old}} は削除してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動中にフリーズする ===&lt;br /&gt;
&lt;br /&gt;
GRUB がカーネルと initial ramdisk をロードした後、エラーを出さずにブートが固まる場合、{{ic|add_efi_memmap}} カーネルパラメータを取り除いてみてください。&lt;br /&gt;
&lt;br /&gt;
=== 他の OS から Arch が見つからない ===&lt;br /&gt;
&lt;br /&gt;
他のディストリビューションで {{ic|os-prober}} を使って Arch Linux を自動的に検索できないという報告が複数確認されています。この問題が発生する場合、{{ic|/etc/lsb-release}} をおくことで検知が改善されると報告されています。このファイルと更新ツールは[[公式リポジトリ]]にある {{pkg|lsb-release}} パッケージから利用可能です。&lt;br /&gt;
&lt;br /&gt;
=== メニューエントリが重複する ===&lt;br /&gt;
GRUB を新規インストールすると重複するメニューエントリが生成される可能性があります。これは grub-mkconfig が実行されたときに上流のデフォルトの {{ic|/etc/grub.d/10_linux}} スクリプトと Arch の {{ic|/etc/grub.d/10_archlinux}} スクリプトがメニューエントリを作成するためです。これを修正するには 10_linux スクリプトを無効にしてもう一度 grub-mkconfig コマンドを実行してください。&lt;br /&gt;
 # chmod -x /etc/grub.d/10_linux&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
=== chroot でインストールした時に警告が表示される ===&lt;br /&gt;
&lt;br /&gt;
chroot 環境で (例えばシステムのインストール中に) LVM システムに GRUB をインストールする場合、{{ic|/run/lvm/lvmetad.socket: connect failed: No such file or directory}} または {{ic|WARNING: failed to connect to lvmetad: No such file or directory. Falling back to internal scanning}} などの警告が表示されることがあります。これは {{ic|/run}} が chroot 中は利用できないのが原因です。これらの警告によってシステムが起動できなくなるということはないので、安心してインストールを続行してください。&lt;br /&gt;
&lt;br /&gt;
=== GRUB のロードが遅い ===&lt;br /&gt;
&lt;br /&gt;
ディスク容量が残りわずかの場合 GRUB がロードされるのにかなり時間がかかることがあります。起動が遅い場合 {{ic|/boot}} や {{ic|/}} に十分な空き容量があるか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== error: unknown filesystem ===&lt;br /&gt;
GRUB が {{ic|error: unknown filesystem}} と出力して起動しない理由はいくつか考えられます。[[UUID]] が正しいこと、全てのファイルシステムが問題なく、GRUB によってサポートされていることが確認できる場合、[[#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] がドライブの最初の 2TB の中にない可能性があります [https://bbs.archlinux.org/viewtopic.php?id=195948]。適当なパーティショニングツールを使ってパーティションが最初の 2TB 以内にあるようにして、GRUB を再インストール・再設定してください。&lt;br /&gt;
&lt;br /&gt;
=== grub-reboot で再設定されない ===&lt;br /&gt;
&lt;br /&gt;
GRUB は Btrfs のルートパーティションに書き込むを行うことができません [https://bbs.archlinux.org/viewtopic.php?id=166131]。grub-reboot を使って他のエントリを起動した場合、ディスク上の環境を更新することができなくなります。(ディストリビューションを切り替えるなどの場合に) 他のエントリから grub-reboot を実行するか他のファイルシステムを使ってください。{{ic|grub-editenv create}} を実行して {{ic|/etc/default/grub}} に {{ic|GRUB_DEFAULT&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を設定することでエントリをリセットできます (設定後は {{ic|grub-mkconfig -o /boot/grub/grub.cfg}} を行ってください)。&lt;br /&gt;
&lt;br /&gt;
=== Btrfs のせいでインストールができない ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを作成しないで Btrfs を使ってドライブをフォーマットしている場合 (例: {{ic|/dev/sdx}})、後からパーティションテーブルを書き込むと、Btrfs のフォーマットが一部残留します。ほとんどのユーティリティや OS は残留した Btrfs を認識できないため、GRUB は (たとえ --force が付けられていても) インストールを拒否します:&lt;br /&gt;
&lt;br /&gt;
 # grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..&lt;br /&gt;
 # grub-install: error: filesystem `btrfs&#039; doesn&#039;t support blocklists.&lt;br /&gt;
&lt;br /&gt;
ドライブを完全に消去してもいいですが、{{ic|wipefs -o 0x10040 /dev/sdx}} を使えばデータを残して Btrfs のスーパーブロックだけを消去することができます。&lt;br /&gt;
&lt;br /&gt;
=== Windows 8/10 が認識されない ===&lt;br /&gt;
&lt;br /&gt;
Windows 8/10 の &amp;quot;高速スタートアップ&amp;quot;, &amp;quot;ハイブリッドブート&amp;quot;, &amp;quot;Hiberboot&amp;quot; と呼ばれる設定を有効にしていると Windows のパーティションをマウントすることができません。そのため {{ic|grub-mkconfig}} が Windows を認識することができなくなります。Windows で設定を無効化することで GRUB のメニューに追加することができるようになるはずです。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* 公式 GRUB マニュアル - https://www.gnu.org/software/grub/manual/grub.html&lt;br /&gt;
* Ubuntu wiki の GRUB ページ - https://help.ubuntu.com/community/Grub2&lt;br /&gt;
* UEFI システム用にコンパイルする手順を説明している GRUB wiki ページ - https://help.ubuntu.com/community/UEFIBooting&lt;br /&gt;
* Wikipedia の [[Wikipedia:BIOS Boot partition|BIOS Boot partition]] ページ&lt;br /&gt;
* https://web.archive.org/web/20160424042444/http://members.iinet.net/~herman546/p20/GRUB2%20Configuration%20File%20Commands.html#Editing_etcgrub.d05_debian_theme - GRUB の設定方法の詳細な説明&lt;/div&gt;</summary>
		<author><name>Naoya</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GRUB&amp;diff=16647</id>
		<title>GRUB</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GRUB&amp;diff=16647"/>
		<updated>2020-07-07T09:38:49Z</updated>

		<summary type="html">&lt;p&gt;Naoya: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ブートローダー]]&lt;br /&gt;
[[ar:GRUB]]&lt;br /&gt;
[[cs:GRUB]]&lt;br /&gt;
[[de:GRUB]]&lt;br /&gt;
[[el:GRUB]]&lt;br /&gt;
[[en:GRUB]]&lt;br /&gt;
[[es:GRUB]]&lt;br /&gt;
[[fa:گراب]]&lt;br /&gt;
[[fr:GRUB]]&lt;br /&gt;
[[he:GRUB]]&lt;br /&gt;
[[id:GRUB]]&lt;br /&gt;
[[it:GRUB]]&lt;br /&gt;
[[nl:GRUB]]&lt;br /&gt;
[[pt:GRUB]]&lt;br /&gt;
[[ru:GRUB]]&lt;br /&gt;
[[tr:GRUB2]]&lt;br /&gt;
[[uk:GRUB]]&lt;br /&gt;
[[zh-hans:GRUB]]&lt;br /&gt;
[[zh-hant:GRUB]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|GRUB Legacy}}&lt;br /&gt;
{{Related|Arch ブートプロセス}}&lt;br /&gt;
{{Related|ブートローダー}}&lt;br /&gt;
{{Related|Master Boot Record}}&lt;br /&gt;
{{Related|GUID Partition Table}}&lt;br /&gt;
{{Related|Unified Extensible Firmware Interface}}&lt;br /&gt;
{{Related|GRUB/EFI サンプル}}&lt;br /&gt;
{{Related|GRUB/ヒントとテクニック}}&lt;br /&gt;
{{Related|マルチブート USB ドライブ}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://www.gnu.org/software/grub/ GRUB] は次世代の GRand Unified Bootloader です。GRUB Legacy の後継の研究開発プロジェクト [https://www.nongnu.org/pupa/ PUPA] から GRUB は作られています。全てを整理するため GRUB はスクラッチから書きなおされモジュール性とポータビリティを獲得しました [https://www.gnu.org/software/grub/grub-faq.html#q1]。&lt;br /&gt;
&lt;br /&gt;
== 前置き ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ブートローダー&#039;&#039;はコンピューターが起動した時に最初に走るソフトウェアプログラムです。Linux カーネルのロードとコントロールの移譲を担当しています。そして、カーネルはオペレーションシステムの他全てを初期化します。&#039;&#039;GRUB&#039;&#039; という名前は公式でソフトウェアのバージョン&#039;&#039;2&#039;&#039;を示しています、[https://www.gnu.org/software/grub/] を見て下さい。古いバージョンについての記事は [[GRUB Legacy]] を見てください。&lt;br /&gt;
&lt;br /&gt;
GRUB ではルートパーティションのファイルシステムについて以下の制限があります:&lt;br /&gt;
* &amp;lt;s&amp;gt;[[F2FS]] はサポートされていません。&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
サポートされていないファイルシステムをルートパーティションで使っている場合、{{ic|/boot}} パーティションを分割して、サポートされているファイルシステムでフォーマットする必要があります。また、GRUB の開発版 ({{aur|grub-git}}) はネイティブでサポートしている可能性があります。&lt;br /&gt;
&lt;br /&gt;
== BIOS システム ==&lt;br /&gt;
&lt;br /&gt;
=== GUID Partition Table (GPT) 特有の手順 ===&lt;br /&gt;
&lt;br /&gt;
GPT でパーティションされたシステムには {{ic|core.img}} を埋め込むための MBR の隙間の領域がないので (GPT のプライマリヘッダーやプライマリパーティションテーブルに使われます)、[[GUID Partition Table|BIOS-GPT]] の GRUB 設定では [https://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html BIOS boot partition] が必要になります。このパーティションは BIOS-GPT 環境の GRUB でだけ使われます。MBR パーティションではそのようなパーティションのタイプは存在しません (少なくとも GRUB にはありません)。システムが UEFI を使っている時も (ブートセクタの埋め込みがないので)、このパーティションは必要ありません。&lt;br /&gt;
&lt;br /&gt;
BIOS-GPT 設定では gdisk, cgdisk, GNU Parted などを使って、ディスクの最初にファイルシステムのない 1007 KiB のパーティションを作成してください。1007 KiB という容量 (と先の GPT の 17 KiB) によって次に続くパーティションを 1024 KiB に正しくアライメントすることができます。必要であれば、ディスクの他の場所にこのパーティションを配置することもできますが、先頭の 2TiB の領域内である必要があります。パーティションタイプは (c)gdisk では {{ic|ef02}} に GNU Parted では {{ic|set &#039;&#039;BOOT_PART_NUM&#039;&#039; bios_grub on}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
GPT パーティションはサポートしてないツールによって変更されるのを止めるための保護 MBR パーティションを作成します。この保護 MBR に cfdisk を使ってブータブルフラグを設定しないと、BIOS/EFI によっては起動しなくなる可能性があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|&amp;lt;nowiki&amp;gt;--target=i386-pc&amp;lt;/nowiki&amp;gt;}} を使って {{ic|grub-install}} の対象を {{ic|i386-pc}} に明示的に指定する必要があります。そうしないとあなたの設定が EFI-GPT ではないかと {{ic|grub-install}} が勘違いする可能性があるからです。&lt;br /&gt;
* このパーティションは {{ic|grub-install}} や {{ic|grub-setup}} を実行する前に作成しておく必要があります&lt;br /&gt;
* 他の全てのパーティションの後にこのパーティションを作成する場合、gdisk では容量の消費が一番少ない場所 (セクター 34-2047) にしか作成できません。なぜなら gdisk はパーティションを出来る限り 2048 セクター境界に自動アライメントするからです&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Master Boot Record (MBR) 特有の手順 ===&lt;br /&gt;
&lt;br /&gt;
通常 MBR でパーティションされた環境において [[Master Boot Record|MBR]] の後の隙間 (512バイトの MBR 領域の後ろで最初のパーティションの前) は 31 KiB になっていて、このパーティションテーブルでは DOS 互換のシリンダー・アライメントは問題になりません。しかしながら GRUB の {{ic|core.img}} 用に十分な領域を確保するため 1 から 2 MiB ほど MBR の後の領域をとることを推奨します ({{bug|24103}})。この領域を獲得したり他の 512 バイトでないセクターの問題を起こさないために ({{ic|core.img}} の埋め込みとは関係ありません) 1 MiB パーティション・アライメントをサポートしているパーティションツールを使うのが得策です。&lt;br /&gt;
&lt;br /&gt;
=== インストール ===&lt;br /&gt;
&lt;br /&gt;
{{Note|Arch ライブ CD から[[インストールガイド|初期設定]]を行っているときは、grub をインストールする前にインストールしたシステムに chroot してください。CD 自体の grub のインストールスクリプトを使うと {{ic|grub.cfg}} がおかしくなったりして、システムが起動しなくなる問題が発生する可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
[[公式リポジトリ]] にある {{Pkg|grub}} パッケージから GRUB を[[pacman|インストール]]できます。{{AUR|grub-legacy}} がインストールされている場合は置き換えられます。&lt;br /&gt;
&lt;br /&gt;
{{Note|パッケージをインストールするだけでは {{ic|/boot/grub/i386-pc/core.img}} ファイルや {{ic|/boot/grub/i386-pc}} 内の GRUB モジュールは更新されません。下で説明されているように {{ic|grub-install}} を使って手動でアップデートする必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== ブートファイルをインストール ====&lt;br /&gt;
&lt;br /&gt;
BIOS ブートで GRUB ブートファイルをインストールする方法は4つあります:&lt;br /&gt;
* [[#ディスクにインストールする]] (推奨)&lt;br /&gt;
* [[#USB スティックにインストール]] (リカバリ用)&lt;br /&gt;
* [[#パーティションやパーティションレスディスクにインストールする]] (非推奨)&lt;br /&gt;
* [[#core.img だけを生成する]] (一番安全な方法ですが、{{ic|/boot/grub/i386-pc/core.img}} をチェインロードするために [[GRUB Legacy]] や [[Syslinux]] など他の BIOS ブートローダーが必要になります)&lt;br /&gt;
&lt;br /&gt;
{{Note|https://www.gnu.org/software/grub/manual/html_node/BIOS-installation.html に詳しいドキュメントがあります。}}&lt;br /&gt;
&lt;br /&gt;
===== ディスクにインストールする =====&lt;br /&gt;
&lt;br /&gt;
{{Note|この方法は GRUB を (MBR か GPT で) パーティション済みのディスクにインストールして、GRUB ファイルを {{ic|/boot/grub}} に第1ステージコードを440バイトの MBR ブートコード領域にインストールする方法です (MBR パーティションテーブルとは違います)。パーティションレスディスク (super-floppy) については [[#パーティションやパーティションレスディスクにインストールする]] を参照してください。新しいドライブに移行させるときなど、&#039;&#039;grub-install&#039;&#039; で別の場所にファイルをインストールしたいときは [[#USB スティックにインストール|USB スティックにインストール]]に書かれているように {{ic|--boot-directory}} フラグを使ってください。}}&lt;br /&gt;
&lt;br /&gt;
440バイトの Master Boot Record ブートコード領域に GRUB をセットアップするには、{{ic|/boot/grub}} ディレクトリを作り、{{ic|/boot/grub/i386-pc/core.img}} ファイルを生成して、それを 31 KiB の (最低限の容量 - パーティションのアライメントによって変化します) MBR の後の領域 (もしくは GPT でパーティションされたディスクの場合 BIOS Boot Partition、parted では {{ic|bios_grub}} フラグ、gdisk では EF02 タイプコードで示される) に埋め込み、設定ファイルを生成します。次を実行してください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=i386-pc /dev/sd&#039;&#039;x&#039;&#039;&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/dev/sdx}} はインストール先に置き換えて下さい。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot}} に [[LVM]] を使っている場合は、複数の物理ディスクに GRUB をインストールすることができます。&lt;br /&gt;
&lt;br /&gt;
===== USB スティックにインストール =====&lt;br /&gt;
&lt;br /&gt;
USB スティックの一番目のパーティションが {{ic|/dev/sdy1}} で FAT32 である場合:&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/usb&lt;br /&gt;
 # mount /dev/sdy1 /mnt/usb&lt;br /&gt;
 # grub-install --target=i386-pc --debug --boot-directory=/mnt/usb/boot /dev/sdy&lt;br /&gt;
 # grub-mkconfig -o /mnt/usb/boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
{{ic|grub.cfg}} の設定のバックアップを作成 (任意):&lt;br /&gt;
&lt;br /&gt;
 # mkdir -p /mnt/usb/etc/default&lt;br /&gt;
 # cp /etc/default/grub /mnt/usb/etc/default&lt;br /&gt;
 # cp -a /etc/grub.d /mnt/usb/etc&lt;br /&gt;
&lt;br /&gt;
アンマウント:&lt;br /&gt;
&lt;br /&gt;
 # sync ; umount /mnt/usb&lt;br /&gt;
&lt;br /&gt;
===== パーティションやパーティションレスディスクにインストールする =====&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB は GRUB Legacy や Syslinux と同じようにパーティションのブートセクタやパーティションレスディスクへのインストールを推奨していません。この種のセットアップは破損しやすく (特にアップデート中)、Arch の開発陣によるサポートはされていません。}}&lt;br /&gt;
&lt;br /&gt;
パーティションブートセクタや、パーティションレスディスク (別名 superfloppy) やフロッピーディスクに grub をセットアップするには、以下を実行してください ({{ic|/boot}} パーティションを {{ic|/dev/sdaX}} として例にしています):&lt;br /&gt;
&lt;br /&gt;
 # chattr -i /boot/grub/i386-pc/core.img&lt;br /&gt;
 # grub-install --target=i386-pc --debug --force /dev/sdaX&lt;br /&gt;
 # chattr +i /boot/grub/i386-pc/core.img&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はインストール先に置き換えて下さい。&lt;br /&gt;
* {{ic|1=--target=i386-pc}} は {{ic|grub-install}} に BIOS システムだけにインストールすることを示します。{{ic|grub-install}} があいまいな動作をしないように常時使用することが推奨されています。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|--force}} オプションを使ってブロックリストを利用する必要があります {{ic|1=--grub-setup=/bin/true}} は使えません ({{ic|core.img}} を生成するだけと同じです)。&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} は以下のような警告を表示し、この方法で失敗するようなことについてヒントを与えます:&lt;br /&gt;
&lt;br /&gt;
 /sbin/grub-setup: warn: Attempting to install GRUB to a partitionless disk or to a partition. This is a BAD idea.&lt;br /&gt;
 /sbin/grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. &lt;br /&gt;
                         However, blocklists are UNRELIABLE and their use is discouraged.&lt;br /&gt;
&lt;br /&gt;
{{ic|--force}} がないと下のエラーが表示され {{ic|grub-setup}} はパーティションブートセクタにブートコードを設定しません:&lt;br /&gt;
 &lt;br /&gt;
 /sbin/grub-setup: error: will not proceed with blocklists&lt;br /&gt;
&lt;br /&gt;
{{ic|--force}} をつければ次のように表示されるはずです:&lt;br /&gt;
&lt;br /&gt;
 Installation finished. No error reported.&lt;br /&gt;
&lt;br /&gt;
デフォルトで {{ic|grub-setup}} がパーティションやパーティションレスディスクへのインストールをしないようになっている理由は、この場合に限って GRUB がパーティションのブートセクタにある埋め込みブロックリストを使って {{ic|/boot/grub/i386-pc/core.img}} ファイルと prefix ディレクトリ {{ic|/boot/grub}} を見つける必要があるからです。{{ic|core.img}} のセクタ位置はパーティション上の (ファイルのコピーや削除など) ファイルシステムに変更が加えられた時に変化してしまうことがあります。詳細は https://bugzilla.redhat.com/show_bug.cgi?id=728742 や https://bugzilla.redhat.com/show_bug.cgi?id=730915 を見て下さい。&lt;br /&gt;
&lt;br /&gt;
これを回避する方法は {{ic|/boot/grub/i386-pc/core.img}} に (上で説明しているように {{ic|chattr}} コマンドを使って) immutable フラグを設定することで、これによってディスク上の {{ic|core.img}} ファイルのセクタ位置が変化しなくなります。{{ic|/boot/grub/i386-pc/core.img}} に immutable フラグを設定するのは、GRUB をパーティションブートセクタやパーティションレスディスクにインストールするときだけ必要になることで、ブートセクタに埋め込まず MBR にインストールしたり {{ic|core.img}} だけを生成する時は必要ありません (上述)。&lt;br /&gt;
&lt;br /&gt;
残念ながら、エラーが表示されなかったとしても、作成される {{ic|grub.cfg}} ファイルには起動するための正しい UUID が含まれません。https://bbs.archlinux.org/viewtopic.php?pid=1294604#p1294604 を参照してください。この問題を修正するには以下のコマンドを実行してください:&lt;br /&gt;
&lt;br /&gt;
 # mount /dev/sdxY /mnt        #Your root partition.&lt;br /&gt;
 # mount /dev/sdxZ /mnt/boot  #Your boot partiton (if you have one).&lt;br /&gt;
 # arch-chroot /mnt&lt;br /&gt;
 # pacman -S linux&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
===== core.img だけを生成する =====&lt;br /&gt;
&lt;br /&gt;
GRUB のブートセクタコードを MBR, MBR の後の隙間またはパーティションのブートセクタに&#039;&#039;&#039;埋め込まずに&#039;&#039;&#039; {{ic|/boot/grub}} ディレクトリを作成して {{ic|/boot/grub/i386-pc/core.img}} ファイルを生成するには、{{ic|grub-install}} に {{ic|1=--grub-setup=/bin/true}} を加えて下さい:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=i386-pc --grub-setup=/bin/true --debug /dev/sda&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* {{ic|/dev/sda}} はインストール先に置き換えて下さい。&lt;br /&gt;
* {{ic|1=--target=i386-pc}} は {{ic|grub-install}} に BIOS システムだけにインストールすることを示します。{{ic|grub-install}} があいまいな動作をしないように常時使用することが推奨されています。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これで Linux カーネルやマルチブートカーネルとして GRUB Legacy や syslinux から GRUB の {{ic|core.img}} をチェインロードできます。&lt;br /&gt;
&lt;br /&gt;
== UEFI システム ==&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Unified Extensible Firmware Interface|UEFI]], [[GUID Partition Table|GPT]], [[ブートローダー]]のページをよく読んでおいてください。}}&lt;br /&gt;
&lt;br /&gt;
=== GPT と ESP があるかどうか確認する ===&lt;br /&gt;
&lt;br /&gt;
EFI を使って起動するにはディスク上に [[EFI System Partition]] (ESP) が必要になります。GPT は必ずしも必要ではありませんが、強く推奨されており、この記事では GPT を使う方法しか記述していません。Windows 8 など、既にオペレーティングシステムが動作している EFI が使えるコンピュータに Archlinux をインストールする場合、既に ESP は存在するはずです。GPT と ESP を確認するには、root で {{ic|parted}} を使って起動に使いたいディスクのパーティションテーブル (例: {{ic|/dev/sda}}) を表示して下さい。&lt;br /&gt;
&lt;br /&gt;
 # parted /dev/sda print&lt;br /&gt;
&lt;br /&gt;
GPT なら、&amp;quot;Partition Table: gpt&amp;quot; と表示されます。EFI なら、vfat/fat32 ファイルシステムで &#039;boot&#039; フラグが有効になっている小さな (512 MiB 以下) パーティションがあります。そのパーティション上には、&amp;quot;EFI&amp;quot; という名前のフォルダがあるはずです。これらの存在が確認できたのなら、それは ESP になります。そのパーティション番号を覚えておいて下さい。後で GRUB を ESP にインストールするときに使います。&lt;br /&gt;
&lt;br /&gt;
=== ESP を作成する ===&lt;br /&gt;
&lt;br /&gt;
ESP が存在しない場合、作成する必要があります。[[EFI システムパーティション]]の指示に従って ESP を作成してください。&lt;br /&gt;
&lt;br /&gt;
=== インストール ===&lt;br /&gt;
&lt;br /&gt;
{{Note|それぞれのマザーボードの製造者によって　UEFI は別々に実装されているということは有名です。GRUB や EFI が正しく動作しないという問題が起きたユーザーは下で説明されていること以外のハードウェア特有のケースについて詳しい手順を共有することが奨励されています。この記事では総合的なことしか書かれていないので、特別な場合については [[GRUB/EFI サンプル]]のページを見て下さい。}}&lt;br /&gt;
&lt;br /&gt;
下のコマンドでは GRUB を {{ic|x86_64-efi}} でインストールすると仮定しています (i686 環境用の {{ic|IA32-efi}} を使うのなら下のコマンドの {{ic|x86_64-efi}} を {{ic|i386-efi}} に置き換えて下さい)。&lt;br /&gt;
&lt;br /&gt;
[[Bash]] シェルにログインしていることを確認して下さい。例えば、Arch ISO から起動している場合:&lt;br /&gt;
&lt;br /&gt;
 # arch-chroot /mnt /bin/bash&lt;br /&gt;
&lt;br /&gt;
{{Pkg|grub}} と {{Pkg|efibootmgr}} パッケージをインストールしてください。&#039;&#039;GRUB&#039;&#039; はブートローダーであり、&#039;&#039;efibootmgr&#039;&#039; は {{ic|.efi}} ブータブルスタブを作成します (GRUB のインストールスクリプトによって使用されます)。&lt;br /&gt;
&lt;br /&gt;
以下の手順では GRUB UEFI アプリケーションを {{ic|&#039;&#039;$esp&#039;&#039;/EFI/grub}} にインストールして、モジュールを {{ic|/boot/grub/x86_64-efi}} にインストールします。そして、{{ic|grubx64.efi}} ブータブルスタブを {{ic|&#039;&#039;$esp&#039;&#039;/EFI/grub}} に配置します。&lt;br /&gt;
&lt;br /&gt;
ブートディレクトリとブートローダー ID を設定してインストールしてください。{{ic|$esp}} は efi パーティションに置き換えて下さい (通常は {{ic|/boot}}):&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=&#039;&#039;$esp&#039;&#039; --bootloader-id=&#039;&#039;grub&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{Tip|bootloader-id に {{ic|boot}} と指定した場合、EFI 変数がリセットされた場合やドライブを他のコンピュータに移した場合でもドライブから起動することができるようになります。通常は BIOS を使用する方法と同じようにドライブを選択することで使うことができます。Windows とデュアルブートする場合、Windows は EFI パーティションの EFI フォルダの中に boot という名前のフォルダを作成するので注意してください。このフォルダによって Windows の EFI ブートオプションが再作成されます。}}&lt;br /&gt;
&lt;br /&gt;
インストールが完了するとメインの GRUB ディレクトリが {{ic|/boot/grub/}} に作成されます。&lt;br /&gt;
&lt;br /&gt;
後で[[#設定|設定]]を変更した後は忘れずに[[#メイン設定ファイルの生成|メイン設定ファイルを生成]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ディストリビューションによっては {{ic|/boot/efi}} や {{ic|/boot/EFI}} ディレクトリが必要な場合がありますが、Arch では不要です。&lt;br /&gt;
* オプション {{ic|--efi-directory}} と {{ic|--bootloader-id}} は GRUB UEFI 専用です。{{ic|--efi-directory}} は ESP のマウントポイントを指定します。このオプションと同じものとして以前は {{ic|--root-directory}} が使われていました。&lt;br /&gt;
* GRUB を BIOS システムで設定するときと異なり {{ic|grub-install}} コマンドの最後に &amp;lt;device_path&amp;gt; オプション (例: {{ic|/dev/sda}}) を使わないことに注意してください。UEFI のブートローダーは MBR やパーティションのブートセクタを全く使わないので &amp;lt;device_path&amp;gt; が指定されてもインストールスクリプトはそれを無視します。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
問題が発生した場合は [[#UEFI]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== 特記事項 ===&lt;br /&gt;
&lt;br /&gt;
==== 他のインストール方法 ====&lt;br /&gt;
&lt;br /&gt;
GRUB のブートファイルを全て EFI System Partition の中に収めたい時は、{{ic|grub-install}} コマンドに {{ic|--boot-directory&amp;amp;#61;$esp}} を追加してください:&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=$esp --bootloader-id=grub --boot-directory=$esp --debug&lt;br /&gt;
&lt;br /&gt;
このコマンドによって GRUB モジュールは {{ic|$esp/grub}} に置かれます (このパスの最後の &#039;/grub&#039; はハードコードされています)。この方法を使うと、{{ic|grub.cfg}} も EFI System Partition 上に作る必要があり、設定するときに正しい位置を {{ic|grub-mkconfig}} に示す必要があります:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o $esp/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
設定の他のところは同じです。&lt;br /&gt;
&lt;br /&gt;
==== UEFI ファームウェアの応急処置 ====&lt;br /&gt;
UEFI ファームウェアによっては {{ic|.efi}} ブータブルスタブが特定の名前で特定の場所に配置されていることが必要とされます: {{ic|$esp/EFI/boot/bootx64.efi}} ({{ic|$esp}} は UEFI パーティションのマウントポイントに置き換えて下さい)。そうしておかないと場合によって起動できなくなってしまうことがあります。幸いに、これを必要としない他のファームウェアでは問題は起きません。&lt;br /&gt;
&lt;br /&gt;
応急処置を行うには、必要なディレクトリを作成して、それから grub の {{ic|.efi}} スタブをコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # mkdir $esp/EFI/boot&lt;br /&gt;
 # cp $esp/EFI/grub_uefi/grubx64.efi  $esp/EFI/boot/bootx64.efi&lt;br /&gt;
&lt;br /&gt;
==== ファームウェアのブートマネージャに GRUB エントリを作成する ====&lt;br /&gt;
&lt;br /&gt;
{{ic|grub-install}} は自動でブートマネージャにメニューエントリを作成しようとします。作成されないときは、{{ic|efibootmgr}} を使ってメニューエントリを作成してください。また、UEFI モードで CD/USB を起動できないような問題については [[Unified Extensible Firmware Interface#ISO から UEFI ブータブル USB を作成する|Unified Extensible Firmware Interface#ISO から UEFI ブータブル USB を作成する]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
==== GRUB Standalone ====&lt;br /&gt;
&lt;br /&gt;
{{Note|{{Pkg|grub}} パッケージには様々な grub-mkstandalone のフィックス (特に必須の {{ic|${cmdpath} }} サポート) が含まれていないのでスタンドアロンの GRUB EFI イメージでは {{AUR|grub-git}} パッケージを使って下さい。}}&lt;br /&gt;
&lt;br /&gt;
全てのモジュールを UEFI アプリケーション内の memdisk に埋め込んだ {{ic|grubx64_standalone.efi}} アプリケーションを作成することができ、これによって GRUB UEFI モジュールやその他関連ファイルが利用するディレクトリを別に持つ必要がなくなります。これを行うには {{Pkg|grub}} に含まれている {{ic|grub-mkstandalone}} コマンドを使います。&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;configfile ${cmdpath}/grub.cfg&#039; &amp;gt; /tmp/grub.cfg                                ## use single quotes, ${cmdpath}/grub.cfg should be present as it is&lt;br /&gt;
 # grub-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi --modules=&amp;quot;part_gpt part_msdos&amp;quot; --fonts=&amp;quot;unicode&amp;quot; --locales=&amp;quot;en@quot&amp;quot; --themes=&amp;quot;&amp;quot; -o &amp;quot;$esp/EFI/grub/grubx64_standalone.efi&amp;quot;  &amp;quot;boot/grub/grub.cfg=/tmp/grub.cfg&amp;quot; -v&lt;br /&gt;
&lt;br /&gt;
{{Note|オプション {{ic|1=--modules=&amp;quot;part_gpt part_msdos&amp;quot;}} (クォート付き) は {{ic|${cmdpath} }} 機能を正しく動作させるために必要です。}}&lt;br /&gt;
&lt;br /&gt;
それから GRUB の設定ファイルを {{ic|$esp/EFI/grub/grub.cfg}} にコピーして [[Unified Extensible Firmware Interface#efibootmgr|efibootmgr]] を使って {{ic|$esp/EFI/grub/grubx64_standalone.efi}} の UEFI Boot Manager エントリを作成してください。&lt;br /&gt;
&lt;br /&gt;
==== 技術的な情報 ====&lt;br /&gt;
&lt;br /&gt;
GRUB EFI のファイルはいつでも設定ファイルが {{ic|${prefix}/grub.cfg}} にあることを期待しています。しかしながらスタンドアロンの GRUB EFI ファイルでは、{{ic|${prefix} }} は tar アーカイブの中に置かれスタンドアロンの GRUB EFI ファイルそれ自体に埋め込まれます (GRUB ではクォートのない {{ic|&amp;quot;(memdisk)&amp;quot;}} で示される)。この tar アーカイブには通常の GRUB EFI インストールで {{ic|/boot/grub}} に保存される全てのファイルが含まれています。&lt;br /&gt;
&lt;br /&gt;
{{ic|/boot/grub}} の中身がスタンドアロンのイメージに埋め込まれることによって、全てにおいて実際の (外部的な) {{ic|/boot/grub}} を使うことはできなくなります。そのためスタンドアロンの GRUB EFI ファイルでは {{ic|1=${prefix}==(memdisk)/boot/grub}} とスタンドアロンの GRUB EFI ファイルは設定ファイルが {{ic|1=${prefix}/grub.cfg==(memdisk)/boot/grub/grub.cfg}} にあるとして読み込みます。&lt;br /&gt;
&lt;br /&gt;
このためスタンドアロンの GRUB EFI ファイルに同じディレクトリにある外部的 {{ic|grub.cfg}} を EFI ファイルとして読み込ませるには (GRUB では {{ic|${cmdpath} }} で示される)、GRUB に設定として {{ic|${cmdpath}/grub.cfg}} を使うように記述した {{ic|/tmp/grub.cfg}} を作る必要があります ({{ic|(memdisk)/boot/grub/grub.cfg}} の {{ic|configfile ${cmdpath}/grub.cfg}} コマンド)。それから grub-mkstandalone にこの {{ic|/tmp/grub.cfg}} ファイルを {{ic|${prefix}/grub.cfg}} (実際には {{ic|(memdisk)/boot/grub/grub.cfg}}) にコピーさせるためにオプション {{ic|1=&amp;quot;/boot/grub/grub.cfg=/tmp/grub.cfg&amp;quot;}} を使います。&lt;br /&gt;
&lt;br /&gt;
これでスタンドアロンの GRUB EFI ファイルと実際の {{ic|grub.cfg}} は EFI System Partition の中のディレクトリに (同じディレクトリである限り) 保存することが出来るようになり、持ち運びが容易になります。&lt;br /&gt;
&lt;br /&gt;
== メイン設定ファイルの生成 ==&lt;br /&gt;
&lt;br /&gt;
インストールした後は、メインの設定ファイル {{ic|grub.cfg}} を生成する必要があります。生成されるファイルは {{ic|/etc/default/grub}} の様々なオプションや {{ic|/etc/grub.d/}} のスクリプトによって設定されます。これについては [[#設定]] のセクションで説明しています。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/default/grub}} や {{ic|/etc/grub.d/*}} に変更を加えた後は {{ic|grub.cfg}} を再生成する必要があることを覚えておいて下さい。}}&lt;br /&gt;
{{Warning|パッケージバージョン 1:2.02.beta2-1 (2014-01-10) から grub-mkconfig は&#039;&#039;異常な&#039;&#039;設定ファイルを作成するようになっています。生成される {{ic|grub.cfg}} にはブートエントリが重複して含まれ、initramfs が見つからなかったりセルフコンパイルしたカーネルがメニューに表示されなかったりします ({{bug|38455}})。}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;grub-mkconfig&#039;&#039; ツールを使って {{ic|grub.cfg}} を生成してください:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* このファイルのパスは {{ic|/boot/grub/grub.cfg}} です、{{ic|/boot/grub/i386-pc/grub.cfg}} ではありません。&lt;br /&gt;
* EFI システムでは、{{ic|1=--boot-directory=$esp/EFI}} オプションを使って GRUB がインストールされた場合、{{ic|grub.cfg}} ファイルは {{ic|grubx64.efi}} と同じディレクトリにあるはずです。そうでないのなら、GRUB BIOS と同じように {{ic|grub.cfg}} ファイルは {{ic|/boot/grub/}} にあります。&lt;br /&gt;
* chroot や &#039;&#039;systemd-nspawn&#039;&#039; コンテナで &#039;&#039;grub-mkconfig&#039;&#039; を実行しようとした場合、&#039;&#039;grub-probe&#039;&#039; が &amp;quot;/dev/sdaX の正規パス&amp;quot; を取得できないといて動かないことがあります。この場合、[https://bbs.archlinux.org/viewtopic.php?pid&amp;amp;#61;1225067#p1225067 ここ]に記述されているように &#039;&#039;arch-chroot&#039;&#039; を使ってみて下さい。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
生成スクリプトはデフォルトで生成する設定に Arch Linux のメニューエントリを自動で追加します。しかしながら、他のオペレーティングシステムのエントリは設定しないといけません。BIOS システムでは {{Pkg|os-prober}} をインストールすれば、マシンにインストールされている他のオペレーティングシステムを検知して、それぞれのエントリを {{ic|grub.cfg}} に追加することができます。インストールされていれば、&#039;&#039;grub-mkconfig&#039;&#039; の実行時に os-prober が起動します。高度な設定は [[#デュアルブート]] を見てください。[[マルチブート USB ドライブ#ブートエントリ]]も参照。&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
このセクションでは {{ic|/etc/default/grub}} 設定ファイルの編集についてだけ扱っています。他のオプションは [[GRUB/ヒントとテクニック]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/etc/default/grub}} に変更を加えた後は必ず[[#メイン設定ファイルの生成|メイン設定ファイルの再生成]]を行なって下さい。}}&lt;br /&gt;
&lt;br /&gt;
=== 追加引数 ===&lt;br /&gt;
&lt;br /&gt;
カスタムの追加引数を Linux イメージに渡すために、{{ic|/etc/default/grub}} で {{ic|GRUB_CMDLINE_LINUX}} と {{ic|GRUB_CMDLINE_LINUX_DEFAULT}} 変数を設定することができます。この2つは {{ic|grub.cfg}} を生成するときに互いに標準のブートエントリに追加されます。&#039;&#039;recovery&#039;&#039; ブートエントリについては、{{ic|GRUB_CMDLINE_LINUX}} だけが生成時に使われます。&lt;br /&gt;
&lt;br /&gt;
両方を使う必要はありませんが、上手く使えば便利です。例えば、{{ic|&amp;lt;nowiki&amp;gt;GRUB_CMDLINE_LINUX_DEFAULT=&amp;quot;resume=/dev/sdaX&amp;lt;/nowiki&amp;gt; quiet&amp;quot;}} ({{ic|sda&#039;&#039;&#039;X&#039;&#039;&#039;}} はスワップパーティション) を使ってハイバネーションの後の復帰を有効にすることができます。生成された recovery ブートエントリでは resume やメニューエントリからの起動中のカーネルメッセージを表示しない &#039;&#039;quiet&#039;&#039; は使われません。そして、他の (標準の) メニューエントリではオプションとして使われます。&lt;br /&gt;
&lt;br /&gt;
GRUB のリカバリエントリを生成するには {{ic|/etc/default/grub}} で {{ic|&amp;lt;nowiki&amp;gt;#GRUB_DISABLE_RECOVERY=true&amp;lt;/nowiki&amp;gt;}} をコメントアウトする必要があります。&lt;br /&gt;
&lt;br /&gt;
また、{{ic|&amp;lt;nowiki&amp;gt;GRUB_CMDLINE_LINUX=&amp;quot;resume=/dev/disk/by-uuid/${swap_uuid}&amp;quot;&amp;lt;/nowiki&amp;gt;}} を使うこともできます ({{ic|${swap_uuid} }} は swap パーティションの [[永続的なブロックデバイスの命名|UUID]] に置き換えて下さい)。&lt;br /&gt;
&lt;br /&gt;
複数のエントリを使う時はダブルクォートの中でスペースで区切って下さい。resume と systemd の両方を使うなら次のようになります:&lt;br /&gt;
{{ic|&amp;lt;nowiki&amp;gt;GRUB_CMDLINE_LINUX=&amp;quot;resume=/dev/sdaX init=/usr/lib/systemd/systemd&amp;quot;&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
詳しくは[[カーネルパラメータ]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== デュアルブート ===&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB に自動で他のシステムを検索してほしい場合は、{{Pkg|os-prober}} をインストールするとよいでしょう。}}&lt;br /&gt;
&lt;br /&gt;
==== /etc/grub.d/40_custom と grub-mkconfig を使って自動生成する ====&lt;br /&gt;
&lt;br /&gt;
他のエントリを追加する最適の方法は {{ic|/etc/grub.d/40_custom}} か {{ic|/boot/grub/custom.cfg}} を編集することです。{{ic|grub-mkconfig}} の実行時にこのファイルにエントリが自動で追加されます。&lt;br /&gt;
新しい行を追加した後、次を実行して {{ic|grub.cfg}} を生成・更新してください:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# grub-mkconfig -o /boot/grub/grub.cfg&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
UEFI-GPT モードでは:&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;# grub-mkconfig -o /boot/efi/EFI/GRUB/grub.cfg&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
例として、典型的な {{ic|/etc/grub.d/40_custom}} ファイルは以下のようになります。これは Microsoft Windows 8 がプリインストールされている [http://h10025.www1.hp.com/ewfrf/wc/product?cc=us&amp;amp;destPage=product&amp;amp;lc=en&amp;amp;product=5402703&amp;amp;tmp_docname= HP Pavilion 15-e056sl Notebook PC] にあわせて作成されています。それぞれの {{ic|menuentry}} は以下のエントリと同じような構造である必要があります。GRUB 内の UEFI パーティション {{ic|/dev/sda2}} は {{ic|hd0,gpt2}} や {{ic|ahci0,gpt2}} と記述するので注意してください (詳しくは[[#UEFI-GPT モードでインストールされた Windows のメニューエントリ|ここ]]を見て下さい)。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/etc/grub.d/40_custom&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/grub.d/40_custom|&amp;lt;nowiki&amp;gt;#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
exec tail -n +3 $0&lt;br /&gt;
# This file provides an easy way to add custom menu entries.&amp;amp;nbsp; Simply type the&lt;br /&gt;
# menu entries you want to add after this comment.&amp;amp;nbsp; Be careful not to change&lt;br /&gt;
# the &#039;exec tail&#039; line above.&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;HP / Microsoft Windows 8.1&amp;quot; {&lt;br /&gt;
	echo &amp;quot;Loading HP / Microsoft Windows 8.1...&amp;quot;&lt;br /&gt;
	insmod part_gpt&lt;br /&gt;
	insmod fat&lt;br /&gt;
	insmod search_fs_uuid&lt;br /&gt;
	insmod chain&lt;br /&gt;
	search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 763A-9CB6&lt;br /&gt;
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;HP / Microsoft Control Center&amp;quot; {&lt;br /&gt;
	echo &amp;quot;Loading HP / Microsoft Control Center...&amp;quot;&lt;br /&gt;
	insmod part_gpt&lt;br /&gt;
	insmod fat&lt;br /&gt;
	insmod search_fs_uuid&lt;br /&gt;
	insmod chain&lt;br /&gt;
	search --fs-uuid --no-floppy --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2 763A-9CB6&lt;br /&gt;
	chainloader /EFI/HP/boot/bootmgfw.efi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;System shutdown&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System shutting down...&amp;quot;&lt;br /&gt;
	halt&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
menuentry &amp;quot;System restart&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System rebooting...&amp;quot;&lt;br /&gt;
	reboot&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== GNU/Linux のメニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
他のディストリが {{ic|sda2}} パーティションに存在する場合:&lt;br /&gt;
&lt;br /&gt;
 menuentry &amp;quot;Other Linux&amp;quot; {&lt;br /&gt;
   set root=(hd0,2)&lt;br /&gt;
   linux /boot/vmlinuz (必要に応じて他のオプションを追加してください)&lt;br /&gt;
   initrd /boot/initrd.img (他のカーネルが使用している場合)&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
====== 暗号化されている GNU/Linux のメニューエントリ ======&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;Other Linux (Encrypted)&amp;quot;{&lt;br /&gt;
      insmod luks&lt;br /&gt;
      cryptomount (hd0,2)&lt;br /&gt;
      set root=(crypto0)&lt;br /&gt;
      linux /boot/vmlinuz cryptdevice=/dev/sda2:cryptroot root=/dev/mapper/cryptroot (必要に応じて他のオプションを追加してください)&lt;br /&gt;
      initrd /boot/initrd.img (他のカーネルが使用している場合)&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== FreeBSD のメニューエントリ =====&lt;br /&gt;
以下の3つの方法はどれも UFS(v2) でシングルパーティションに FreeBSD がインストールされている必要があります。ネストされた BSD パーティションテーブルが {{ic|sda4}} にある場合:&lt;br /&gt;
&lt;br /&gt;
====== カーネルを直接ロードする ======&lt;br /&gt;
{{bc|1=&lt;br /&gt;
menuentry &#039;FreeBSD&#039; {&lt;br /&gt;
	insmod ufs2&lt;br /&gt;
	set root=&#039;hd0,gpt4,bsd1&#039;&lt;br /&gt;
	## or &#039;hd0,msdos4,bsd1&#039;, if using an IBM-PC (MS-DOS) style partition table&lt;br /&gt;
	kfreebsd /boot/kernel/kernel&lt;br /&gt;
	kfreebsd_loadenv /boot/device.hints&lt;br /&gt;
	set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s4a&lt;br /&gt;
	set kFreeBSD.vfs.root.mountfrom.options=rw&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
====== 埋め込まれたブートレコードをチェインロード ======&lt;br /&gt;
{{bc|1=&lt;br /&gt;
menuentry &#039;FreeBSD&#039; {&lt;br /&gt;
	insmod ufs2&lt;br /&gt;
	set root=&#039;hd0,gpt4,bsd1&#039;&lt;br /&gt;
	chainloader +1&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
====== 伝統的な BSD の 2nd stage ローダーを実行 ======&lt;br /&gt;
{{bc|1=&lt;br /&gt;
menuentry &#039;FreeBSD&#039; {&lt;br /&gt;
  insmod ufs2&lt;br /&gt;
  set root=&#039;(hd0,4)&#039;&lt;br /&gt;
  kfreebsd /boot/loader&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== Windows XP のメニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
ここでは Windows のパーティションが {{ic|sda3}} にあると仮定しています。実際に windows があるパーティションではなく、インストール時に windows が作成したシステムの予約済みパーティションに set root と chainloader を設定する必要があります。あなたのシステムの予約済みパーティションが {{ic|sda3}} の場合:&lt;br /&gt;
&lt;br /&gt;
 # (2) Windows XP&lt;br /&gt;
 menuentry &amp;quot;Windows XP&amp;quot; {&lt;br /&gt;
   set root=&amp;quot;(hd0,3)&amp;quot;&lt;br /&gt;
   chainloader +1&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Windows のブートローダーが GRUB とは完全に異なるハードドライブに存在する場合、Windows に GRUB が存在するのが最初のハードドライブだと信じこませる必要があるかもしれません。これは {{ic|drivemap}} を使ってできます。GRUB が {{ic|hd0}} に、Windows が {{ic|hd2}} にあるとするには、{{ic|set root}} の後に次を追加してください:&lt;br /&gt;
&lt;br /&gt;
 drivemap -s hd0 hd2&lt;br /&gt;
&lt;br /&gt;
===== UEFI-GPT モードでインストールされた Windows のメニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;${grub_platform}&amp;quot; == &amp;quot;efi&amp;quot; ]; then&lt;br /&gt;
   menuentry &amp;quot;Microsoft Windows Vista/7/8/8.1 UEFI-GPT&amp;quot; {&lt;br /&gt;
     insmod part_gpt&lt;br /&gt;
     insmod fat&lt;br /&gt;
     insmod search_fs_uuid&lt;br /&gt;
     insmod chain&lt;br /&gt;
     search --fs-uuid --set=root $hints_string $fs_uuid&lt;br /&gt;
     chainloader /EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
   }&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
{{ic|$hints_string}} と {{ic|$fs_uuid}} は以下の2つのコマンドで知ることができます。{{ic|$fs_uuid}} のコマンドは:&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=fs_uuid $esp/EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
 1ce5-7f28&lt;br /&gt;
&lt;br /&gt;
{{ic|$hints_string}} のコマンドは:&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=hints_string $esp/EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
 --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1&lt;br /&gt;
&lt;br /&gt;
これらの2つのコマンドは Windows が使っている ESP が {{ic|$esp}} にマウントされているということを前提にしています。場合によっては Windows の EFI ファイルのパスが異なっている可能性があります。&lt;br /&gt;
&lt;br /&gt;
===== &amp;quot;シャットダウン&amp;quot; メニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;System shutdown&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System shutting down...&amp;quot;&lt;br /&gt;
	halt&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== &amp;quot;再起動&amp;quot; メニューエントリ =====&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;System restart&amp;quot; {&lt;br /&gt;
	echo &amp;quot;System rebooting...&amp;quot;&lt;br /&gt;
	reboot&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== &amp;quot;ファームウェア設定&amp;quot; メニューエントリ (UEFI のみ) =====&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;menuentry &amp;quot;Firmware setup&amp;quot; {&lt;br /&gt;
	fwsetup&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
===== BIOS-MBR モードでインストールされた Windows =====&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB は {{ic|bootmgr}} の直接起動をサポートしており、もはや BIOS-MBR 環境で Windows を起動するためにパーティションブートセクタのチェインロードをする必要はありません。}}&lt;br /&gt;
&lt;br /&gt;
{{Warning|{{ic|bootmgr}} が存在するのは&#039;&#039;&#039;システムパーティション&#039;&#039;&#039;であり、&amp;quot;実際に使っている&amp;quot; Windows のパーティション (一般的に C:) ではありません。{{ic|blkid}} で全ての UUID を表示した際、システムパーティションは {{ic|LABEL&amp;amp;#61;&amp;quot;SYSTEM RESERVED&amp;quot;}} もしくは {{ic|LABEL&amp;amp;#61;&amp;quot;SYSTEM&amp;quot;}} のパーティションであり容量は僅か 100 MB から 200 MB (Arch の boot パーティションとほぼ同じ大きさ) です。詳細は [[Wikipedia:System partition and boot partition]] を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
このセクションでは、あなたの Windows パーティションは {{ic|/dev/sda1}} だと仮定しています。違うパーティションを使っている場合は全ての {{ic|hd0,msdos1}} を修正しなくてはなりません。最初に、{{ic|bootmgr}} と関連ファイルがある Windows のシステムパーティションの NTFS ファイルシステムの UUID を見つけて下さい。例えば、Windows の {{ic|bootmgr}} が {{ic|/media/SYSTEM_RESERVED/bootmgr}} に存在する場合:&lt;br /&gt;
&lt;br /&gt;
Windows Vista/7/8 では:&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=fs_uuid /media/SYSTEM_RESERVED/bootmgr&lt;br /&gt;
 69B235F6749E84CE&lt;br /&gt;
&lt;br /&gt;
 # grub-probe --target=hints_string /media/SYSTEM_RESERVED/bootmgr&lt;br /&gt;
 --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1&lt;br /&gt;
&lt;br /&gt;
{{Note|Windows XP では、上記のコマンドにある {{ic|bootmgr}} を {{ic|NTLDR}} に置き換えて下さい。さらに、SYSTEM_RESERVED パーティションは存在しない可能性があることに注意してください; あなたの Windows パーティション上に NTLDR ファイルがないか調べて下さい。}}&lt;br /&gt;
&lt;br /&gt;
次に、BIOS-MBR モードでインストールされた Windows (XP, Vista, 7, 8, 10) を起動するために下のコードを {{ic|/etc/grub.d/40_custom}} か {{ic|/boot/grub/custom.cfg}} に追加して、上で説明したように {{ic|grub-mkconfig}} を使って {{ic|grub.cfg}} を再生成してください:&lt;br /&gt;
&lt;br /&gt;
Windows Vista/7/8/8.1/10 では:&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;${grub_platform}&amp;quot; == &amp;quot;pc&amp;quot; ]; then&lt;br /&gt;
   menuentry &amp;quot;Microsoft Windows Vista/7/8/8.1/10 BIOS-MBR&amp;quot; {&lt;br /&gt;
     insmod part_msdos&lt;br /&gt;
     insmod ntfs&lt;br /&gt;
     insmod search_fs_uuid&lt;br /&gt;
     insmod ntldr     &lt;br /&gt;
     search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 69B235F6749E84CE&lt;br /&gt;
     ntldr /bootmgr&lt;br /&gt;
   }&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Windows XP では:&lt;br /&gt;
&lt;br /&gt;
 if [ &amp;quot;${grub_platform}&amp;quot; == &amp;quot;pc&amp;quot; ]; then&lt;br /&gt;
   menuentry &amp;quot;Microsoft Windows XP&amp;quot; {&lt;br /&gt;
     insmod part_msdos&lt;br /&gt;
     insmod ntfs&lt;br /&gt;
     insmod search_fs_uuid&lt;br /&gt;
     insmod ntldr     &lt;br /&gt;
     search --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 69B235F6749E84CE&lt;br /&gt;
     ntldr /bootmgr&lt;br /&gt;
   }&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
上記で使っているパーティションの UUID の例である &#039;&#039;69B235F6749E84CE&#039;&#039; は {{ic|lsblk --fs}} コマンドで確認できます。&lt;br /&gt;
&lt;br /&gt;
{{Note|たまに (Windows 8 で GRUB をインストールした場合など)、{{ic|\boot\bcd}} でエラーが起こって Windows を起動できなくなることがあります (エラーコード {{ic|0xc000000f}})。Windows の回復コンソール (インストールディスクから cmd) を使って以下を実行することで修復することが可能です:&lt;br /&gt;
 x:\&amp;gt; &amp;quot;bootrec.exe /fixboot&amp;quot; &lt;br /&gt;
 x:\&amp;gt; &amp;quot;bootrec.exe /RebuildBcd&amp;quot;.&lt;br /&gt;
{{ic|bootrec.exe /Fixmbr}} を使わないで下さい、GRUB が消去されてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/grub.d/40_custom}} をテンプレートとして使って {{ic|/etc/grub.d/nn_custom}} を作成することができます。{{ic|nn}} は優先順位を定義し、スクリプトが実行される順番を示します。スクリプトが実行される順番で grub のブートメニューの場所が決まります。&lt;br /&gt;
&lt;br /&gt;
{{Note|最初に必要なスクリプトが実行されるように {{ic|nn}} は 06 よりも大きな値にするべきです。}}&lt;br /&gt;
&lt;br /&gt;
==== EasyBCD と NeoGRUB を使って Windows とデュアルブート ====&lt;br /&gt;
&lt;br /&gt;
現在 EasyBCD の NeoGRUB は GRUB のメニューフォーマットを認識しないので、{{ic|C:\NST\menu.lst}} ファイルの中身を以下のように置き換えることでチェインロードしてください:&lt;br /&gt;
&lt;br /&gt;
 default 0&lt;br /&gt;
 timeout 1&lt;br /&gt;
&lt;br /&gt;
 title       Chainload into GRUB v2&lt;br /&gt;
 root        (hd0,7)&lt;br /&gt;
 kernel      /boot/grub/i386-pc/core.img&lt;br /&gt;
&lt;br /&gt;
そして、{{ic|grub-mkconfig}} を使って {{ic|grub.cfg}} を再生成してください。&lt;br /&gt;
&lt;br /&gt;
==== parttool for hide/unhide ====&lt;br /&gt;
&lt;br /&gt;
{{ic|C:\}} ディスクを隠している Windows 9x がある場合、GRUB は {{ic|parttool}} を使ってディスクを隠したり表示したりすることができます。例えば、3つの Windows 9x インストールがあり3番目の {{ic|C:\}} ディスクを起動するには CLI に入り以下を実行してください:&lt;br /&gt;
 parttool hd0,1 hidden+ boot-&lt;br /&gt;
 parttool hd0,2 hidden+ boot-&lt;br /&gt;
 parttool hd0,3 hidden- boot+&lt;br /&gt;
 set root=hd0,3&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
=== LVM ===&lt;br /&gt;
&lt;br /&gt;
[[LVM]] を {{ic|/boot}} で使っている場合、メニューエントリの行の前に次を追加してください:&lt;br /&gt;
&lt;br /&gt;
 insmod lvm&lt;br /&gt;
&lt;br /&gt;
そしてメニューエントリで root を次のように指定してください:&lt;br /&gt;
&lt;br /&gt;
 set root=lvm/&#039;&#039;lvm_group_name&#039;&#039;-&#039;&#039;lvm_logical_boot_partition_name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
サンプル:&lt;br /&gt;
&lt;br /&gt;
 # (0) Arch Linux&lt;br /&gt;
 menuentry &amp;quot;Arch Linux&amp;quot; {&lt;br /&gt;
   insmod lvm&lt;br /&gt;
   set root=lvm/VolumeGroup-lv_boot&lt;br /&gt;
   # you can only set following two lines&lt;br /&gt;
   linux /vmlinuz-linux root=/dev/mapper/VolumeGroup-root ro&lt;br /&gt;
   initrd /initramfs-linux.img&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== RAID ===&lt;br /&gt;
&lt;br /&gt;
GRUB には RAID ボリュームの便利な制御機能があります。ボリュームをネイティブに指定できる {{ic|insmod mdraid09}} または {{ic|mdraid1x}} を追加する必要があります。例えば、{{ic|/dev/md0}} は次のようになります:&lt;br /&gt;
 set root=(md/0)&lt;br /&gt;
&lt;br /&gt;
一方パーティション済みの RAID ボリューム (例: {{ic|/dev/md0p1}}) は次のとおりです:&lt;br /&gt;
 set root=(md/0,1)&lt;br /&gt;
&lt;br /&gt;
RAID1 を GPT ef02/&#039;BIOS boot partition&#039; のドライブ上の、{{ic|/boot}} パーティション (もしくは RAID1 root パーティション上の {{ic|/boot}}) で使っている場合に grub をインストールするには、ドライブの両方で &#039;&#039;grub-install&#039;&#039; を実行するだけです。例:&lt;br /&gt;
 # grub-install --target=i386-pc --debug /dev/sda&lt;br /&gt;
 # grub-install --target=i386-pc --debug /dev/sdb&lt;br /&gt;
ここで {{ic|/boot}} がある RAID1 アレイは {{ic|/dev/sda}} と {{ic|/dev/sdb}} に収容されます。&lt;br /&gt;
&lt;br /&gt;
{{Note|GRUB は2015年9月現在 [[Btrfs]] の RAID 0/1/10 からの起動をサポートしていますが、RAID 5/6 からの起動はサポートしていません。RAID 5/6 では GRUB によってサポートされている [[mdadm]] を使ってください。}}&lt;br /&gt;
&lt;br /&gt;
=== 暗号化 ===&lt;br /&gt;
&lt;br /&gt;
==== Root パーティション ====&lt;br /&gt;
&lt;br /&gt;
ルートファイルシステムを暗号化して GRUB で使用するには、[[mkinitcpio]] に {{ic|encrypt}} フックまたは {{ic|sd-encrypt}} フック (systemd フックを使用している場合) を追加してください。詳しくは [[Dm-crypt/システム設定#mkinitcpio]] や [[Mkinitcpio#通常のフック]]を見てください。&lt;br /&gt;
&lt;br /&gt;
{{ic|encrypt}} フックを使う場合、{{ic|cryptdevice}} パラメータを {{ic|/etc/default/grub}} に追加してください。以下の例では、{{ic|sda2}} パーティションを {{ic|/dev/mapper/cryptroot}} として暗号化しています:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;cryptdevice=/dev/sda2:cryptroot&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|sd-encrypt}} フックを使用する場合、{{ic|luks.uuid}} を追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/default/grub|2=&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;quot;luks.uuid=&#039;&#039;UUID&#039;&#039;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;UUID&#039;&#039; は LUKS で暗号化したデバイスの UUID に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/default/grub}} を修正したら、[[#メイン設定ファイルの生成|メイン設定ファイルの生成]]を忘れずにしてください。&lt;br /&gt;
&lt;br /&gt;
暗号化デバイスのブートローダー設定に関する詳細は、[[Dm-crypt/システム設定#ブートローダー]]を見て下さい。&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|/boot}} パーティションを暗号化したい場合、さらに設定が必要です。[[#Boot パーティション]]を見てください。}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|GRUB Legacy の設定から更新する場合は、{{ic|/boot/grub/menu.lst.pacsave}} を確認して適切なデバイス・ラベルを加えて下さい。{{ic|kernel /vmlinuz-linux}} という文の後ろにあるはずです。}}&lt;br /&gt;
&lt;br /&gt;
==== Boot パーティション ====&lt;br /&gt;
&lt;br /&gt;
GRUB [https://www.gnu.org/software/grub/manual/grub.html#Simple-configuration パラメータ] {{ic|GRUB_ENABLE_CRYPTODISK}} を使うことで [[LUKS]] ブロックデバイスを開くときに GRUB にパスワードを要求させて、設定を読み込んでブロックデバイスから [[initramfs]] と[[カーネル]]をロードすることができます。このオプションは [[Dm-crypt/特記事項#暗号化されていない boot パーティションのセキュア化|boot パーティションが暗号化されてない]]という問題を解決します。&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/default/grub}} に以下を追加することで機能が有効になります:&lt;br /&gt;
 GRUB_ENABLE_CRYPTODISK=y&lt;br /&gt;
設定した後は {{ic|/boot}} をマウントしてから &#039;&#039;grub-mkconfig&#039;&#039; を実行して[[#メイン設定ファイルの生成|メイン設定ファイルを生成]]してください。&lt;br /&gt;
&lt;br /&gt;
以下のことに注意してください:&lt;br /&gt;
&lt;br /&gt;
* この機能を使うために {{ic|/boot}} を別パーティションにする必要はありません。システムの root {{ic|/}} ディレクトリツリー下に配置できます。ただし、どちらにしても起動するには二回パスフレーズを入力する必要があります。ひとつ目のパスワードは {{ic|/boot}} マウントポイントのロックを解除して、ふたつ目のパスワードは root ファイルシステムのロックを解除します。&lt;br /&gt;
&lt;br /&gt;
* {{ic|/boot}} マウントポイントも関連するシステムアップデートを実行するときは、暗号化された {{ic|/boot}} のロックが解除されて initramfs やカーネルによって再マウントされている必要があります。{{ic|/boot}} パーティションを分割している場合、{{ic|/etc/crypttab}} にエントリとキーファイルを追加することで再マウントさせることができます。[[Dm-crypt/システム設定#crypttab]] を参照。&lt;br /&gt;
&lt;br /&gt;
* 特殊なキーマップを使っている場合、デフォルトの GRUB では反映されていません。LUKS ブロックデバイスのロックを解除するためにパスフレーズを入力するときに問題になります。&lt;br /&gt;
&lt;br /&gt;
* パスワードを入力するプロンプトに問題が発生する場合 (cryptouuid や cryptodisk のエラー、あるいは &amp;quot;device not found&amp;quot;)、以下のように GRUB を再インストールしてみてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-install --target=x86_64-efi --efi-directory=$esp --bootloader-id=grub &#039;&#039;&#039;--modules=&amp;quot;part_gpt part_msdos&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== コマンドシェルを使う ==&lt;br /&gt;
&lt;br /&gt;
GRUB のモジュールを全て保存するには MBR は小さすぎるので、メニューと基本的なコマンドだけが MBR に入っています。GRUB の機能のほとんどは {{ic|/boot/grub}} 内のモジュールとして存在し、必要に応じて挿入されます。エラー状態になると (例: パーティションレイアウトが変更された場合) GRUB は起動に失敗します。このとき、コマンドシェルが表示されます。&lt;br /&gt;
&lt;br /&gt;
GRUB は複数のシェル・プロンプトを提供しています。メニューの読込に問題があってもブートローダがディスクを見つけられるときは、&amp;quot;normal&amp;quot; シェルが出ます:&lt;br /&gt;
 sh:grub&amp;gt;&lt;br /&gt;
&lt;br /&gt;
深刻な問題があるときは (例: GRUB が必要なファイルを見つけられない)、代わりに &amp;quot;rescue&amp;quot; シェルが出ます:&lt;br /&gt;
 grub rescue&amp;gt;&lt;br /&gt;
&lt;br /&gt;
rescue シェルは通常のシェルの制限されたサブセットで、使える機能が少なくなっています。rescue シェルが出てきた時は、まず &amp;quot;normal&amp;quot; モジュールの挿入を試して、&amp;quot;normal&amp;quot; シェルを起動してみて下さい:&lt;br /&gt;
 grub rescue&amp;gt; set prefix=(hdX,Y)/boot/grub&lt;br /&gt;
 grub rescue&amp;gt; insmod (hdX,Y)/boot/grub/i386-pc/normal.mod&lt;br /&gt;
 rescue:grub&amp;gt; normal&lt;br /&gt;
&lt;br /&gt;
=== ページャのサポート ===&lt;br /&gt;
&lt;br /&gt;
GRUB はページャをサポートしており長い出力をするコマンド ({{ic|help}} コマンドなど) を読むことができます。これは通常のシェルモードでしか動作せずレスキューモードでは使えません。ページャを有効にするには、GRUB コマンドシェルで次を入力して下さい:&lt;br /&gt;
 sh:grub&amp;gt; set pager=1&lt;br /&gt;
&lt;br /&gt;
=== コマンドシェル環境を使ってオペレーティングシステムを起動する ===&lt;br /&gt;
&lt;br /&gt;
 grub&amp;gt; &lt;br /&gt;
&lt;br /&gt;
GRUB のコマンドシェル環境を使ってオペレーティングシステムを起動することが可能です。&lt;br /&gt;
通常は&#039;&#039;&#039;チェインロード&#039;&#039;&#039;を使ってドライブやパーティションから Windows / Linux を起動するということが考えられます。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;チェインロード&#039;&#039;は現在のブートローダから別のブートローダをロードすることを意味します。&lt;br /&gt;
&lt;br /&gt;
他のブートローダはディスクの最初 (MBR) やパーティションの最初に埋め込むことができます。&lt;br /&gt;
&lt;br /&gt;
==== パーティションのチェインロード ====&lt;br /&gt;
&lt;br /&gt;
 set root=(hdX,Y)&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
X=0,1,2...&lt;br /&gt;
Y=1,2,3...&lt;br /&gt;
&lt;br /&gt;
例えば最初のハードディスクの最初のパーティションに保存された Windows をチェインロードするには:&lt;br /&gt;
&lt;br /&gt;
 set root=(hd0,1)&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
同じようにパーティションにインストールされた GRUB をチェインロードすることもできます。&lt;br /&gt;
&lt;br /&gt;
==== ディスクやドライブのチェインロード ====&lt;br /&gt;
&lt;br /&gt;
 set root=hdX&lt;br /&gt;
 chainloader +1&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
==== UEFI モードでインストールされた Windows/Linux のチェインロード ====&lt;br /&gt;
&lt;br /&gt;
 insmod ntfs&lt;br /&gt;
 set root=(hd0,gpt4)&lt;br /&gt;
 chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;insmod ntfs&#039;&#039; を使うことで ntfs ファイルシステムモジュールをロードして Windows をロードすることができます。上記の例では (hd0,gpt4) または /dev/sda4 が EFI System Partition (ESP) です。&#039;&#039;chainloader&#039;&#039; 行のエントリはチェインロードする .efi ファイルのパスを指定しています。&lt;br /&gt;
&lt;br /&gt;
==== 通常のロード ====&lt;br /&gt;
&lt;br /&gt;
[[#rescue コンソールを使う]] の例を見て下さい。&lt;br /&gt;
&lt;br /&gt;
=== rescue コンソールを使う ===&lt;br /&gt;
&lt;br /&gt;
まず [[#コマンドシェルを使う]] を見て下さい。標準シェルを有効にできない場合、ライブ CD や他のレスキューディスクを使って起動し、設定のエラーを直して GRUB を再インストールという方法があります。ただし、そのようなブートディスクはいつも使えるというわけではありません (もしくは必要ありません); レスキューコンソールは驚くほど堅牢です。&lt;br /&gt;
&lt;br /&gt;
GRUB rescue で利用できるコマンドには {{ic|insmod}}, {{ic|ls}}, {{ic|set}}, {{ic|unset}} があります。この例では {{ic|set}} と {{ic|insmod}} を使います。{{ic|set}} は変数を修正し {{ic|insmod}} は新しいモジュールを挿入して機能を追加します。&lt;br /&gt;
&lt;br /&gt;
始める前に、ユーザーは自分の {{ic|/boot}} パーティションの位置を知っていなければなりません (分割パーティションなのか、root 下のサブディレクトリなのか):&lt;br /&gt;
 grub rescue&amp;gt; set prefix=(hdX,Y)/boot/grub&lt;br /&gt;
&lt;br /&gt;
X は物理ドライブ番号、Y はパーティション番号に置き換えてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|boot パーティションを分割している場合、パスから {{ic|/boot}} を省いて下さい (つまり、{{ic|1=set prefix=(hdX,Y)/grub}} と入力する)。}}&lt;br /&gt;
&lt;br /&gt;
コンソールの機能を拡張するために、{{ic|linux}} モジュールを挿入します:&lt;br /&gt;
 grub rescue&amp;gt; insmod i386-pc/linux.mod&lt;br /&gt;
&lt;br /&gt;
もしくは:&lt;br /&gt;
 grub rescue&amp;gt; insmod linux&lt;br /&gt;
&lt;br /&gt;
これで {{ic|linux}} と {{ic|initrd}} コマンドが使えます、これらのコマンドは慣れているはずです ([[#設定]] を見て下さい)。&lt;br /&gt;
&lt;br /&gt;
例えば、Arch Linux を起動:&lt;br /&gt;
 set root=(hd0,5)&lt;br /&gt;
 linux /boot/vmlinuz-linux root=/dev/sda5&lt;br /&gt;
 initrd /boot/initramfs-linux.img&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
boot パーティションを分割しているなら、行を変更する必要があります:&lt;br /&gt;
{{Note|上の prefix と同じような形式で boot パーティションを手動で指定する必要があります。}}&lt;br /&gt;
 set root=(hd0,5)&lt;br /&gt;
 linux (hdX,Y)/vmlinuz-linux root=/dev/sda6&lt;br /&gt;
 initrd (hdX,Y)/initramfs-linux.img&lt;br /&gt;
 boot&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|linux}} コマンドの実行中に {{ic|error: premature end of file /YOUR_KERNEL_NAME}} と表示される場合は、代わりに {{ic|linux16}} を使ってみて下さい。}}&lt;br /&gt;
&lt;br /&gt;
Arch Linux 環境のブートに成功したら、必要に応じて {{ic|grub.cfg}} を修正し GRUB を再インストールすることができます。&lt;br /&gt;
&lt;br /&gt;
GRUB を再インストールして問題を完全に修正するには、必要応じて {{ic|/dev/sda}} を変更します。詳しくは [[#インストール]] を見て下さい。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Intel BIOS が GPT をブートしない ===&lt;br /&gt;
&lt;br /&gt;
==== MBR ====&lt;br /&gt;
&lt;br /&gt;
Intel BIOS によっては起動時に最低でも1つ起動可能な MBR パーティションが必要なため、GPT でパーティションされたブートセットアップが起動できなくなることがあります。&lt;br /&gt;
&lt;br /&gt;
この問題は fdisk を使って GPT パーティションのひとつ (GRUB のために作成した 1007 KiB のパーティションが好ましい) を MBR でブータブルだと印をつけることで回避できます。fdisk を使って次のコマンドを実行してください: fdisk をインストールするディスクで起動し (例: {{ic|fdisk /dev/sda}})、{{ic|a}} を押してから数字を入力してブータブルにしたいパーティション (おそらく #1) を選択してください。最後に {{ic|w}} を押して変更を MBR に書き込みます。&lt;br /&gt;
&lt;br /&gt;
{{Note|ブータブルの設定は GParted ではなく、{{ic|fdisk}} などで行う必要があります。GParted は MBR で bootable フラグを設定しないからです。}}&lt;br /&gt;
&lt;br /&gt;
最新版の parted では {{ic|disk_toggle pmbr_boot}} オプションを使うことができます。実行後 Disk Flags に pmbr_boot と表示されることを確認してください。&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; disk_toggle pmbr_boot&lt;br /&gt;
 # parted /dev/sd&#039;&#039;x&#039;&#039; print&lt;br /&gt;
&lt;br /&gt;
詳細は [http://www.rodsbooks.com/gdisk/bios.html ここ] から見ることができます。&lt;br /&gt;
&lt;br /&gt;
==== EFI パス ====&lt;br /&gt;
&lt;br /&gt;
UEFI ファームウェアによっては UEFI NVRAM ブートエントリを表示する前に特定の場所にブータブルファイルを必要とします。この場合、{{ic|grub-install}} は {{ic|efibootmgr}} に GRUB をブートするエントリを追加するように指示しますが、VisualBIOS のブートオーダーセレクタではエントリが表示されません。解決方法は特定の場所にファイルを配置することです。EFI パーティションが {{ic|/boot/efi/}} の場合、以下のコマンドで解決します:&lt;br /&gt;
&lt;br /&gt;
 mkdir /boot/efi/EFI/boot&lt;br /&gt;
 cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi&lt;br /&gt;
&lt;br /&gt;
この解決方法は2014年1月、Intel DH87MC マザーボードのファームウェアで確認しました。&lt;br /&gt;
&lt;br /&gt;
=== デバッグメッセージを有効にする ===&lt;br /&gt;
&lt;br /&gt;
以下を {{ic|grub.cfg}} に追加してください:&lt;br /&gt;
 &lt;br /&gt;
 set pager=1&lt;br /&gt;
 set debug=all&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;No suitable mode found&amp;quot; エラー ===&lt;br /&gt;
&lt;br /&gt;
メニューエントリのどれかを起動したときに以下のエラーが表示される場合:&lt;br /&gt;
&lt;br /&gt;
 error: no suitable mode found&lt;br /&gt;
 Booting however&lt;br /&gt;
&lt;br /&gt;
GRUB の正しいビデオモード ({{ic|gfxmode}}) を使って GRUB グラフィカルターミナル ({{ic|gfxterm}}) を初期化する必要があります。このビデオモードは &#039;gfxpayload&#039; を使って GRUB から linux カーネルに渡されます。UEFI 環境の場合、GRUB のビデオモードが初期化されないと、端末にカーネルのブートメッセージが (少なくとも KMS が有効になるまで) 全く表示されません。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/grub/unicode.pf2}} を ${GRUB_PREFIX_DIR} (BIOS と UEFI システムの場合 {{ic|/boot/grub/}}) にコピーしてください。GRUB UEFI をインストールしたときに {{ic|1=--boot-directory=$esp/EFI}} を設定したときは、ディレクトリは {{ic|$esp/EFI/grub/}} になります:&lt;br /&gt;
&lt;br /&gt;
 # cp /usr/share/grub/unicode.pf2 ${GRUB_PREFIX_DIR}&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/share/grub/unicode.pf2}} が存在しないときは、{{Pkg|bdf-unifont}} をインストールして、{{ic|unifont.pf2}} ファイルを作成し {{ic|${GRUB_PREFIX_DIR&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} にコピーしてください:&lt;br /&gt;
&lt;br /&gt;
 # grub-mkfont -o unicode.pf2 /usr/share/fonts/misc/unifont.bdf&lt;br /&gt;
&lt;br /&gt;
次に、{{ic|grub.cfg}} ファイルの中に、以下の行を追加して GRUB がカーネルに正しくビデオモードを渡すようにしてください。どちらかがないと黒画面 (出力なし) になりますが起動は問題なく (フリーズせずに) 進みます。&lt;br /&gt;
&lt;br /&gt;
BIOS システム:&lt;br /&gt;
&lt;br /&gt;
 insmod vbe&lt;br /&gt;
&lt;br /&gt;
UEFI システム:&lt;br /&gt;
&lt;br /&gt;
 insmod efi_gop&lt;br /&gt;
 insmod efi_uga&lt;br /&gt;
&lt;br /&gt;
その後以下のコードを追加してください (BIOS と UEFI 両方で共通):&lt;br /&gt;
&lt;br /&gt;
 insmod font&lt;br /&gt;
&lt;br /&gt;
 if loadfont ${prefix}/fonts/unicode.pf2&lt;br /&gt;
 then&lt;br /&gt;
     insmod gfxterm&lt;br /&gt;
     set gfxmode=auto&lt;br /&gt;
     set gfxpayload=keep&lt;br /&gt;
     terminal_output gfxterm&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
gfxterm (graphical terminal) が正しく動作すれば、{{ic|unicode.pf2}} フォントファイルは {{ic|${GRUB_PREFIX_DIR&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;}} にあるはずです。&lt;br /&gt;
&lt;br /&gt;
=== msdos-style エラーメッセージ ===&lt;br /&gt;
&lt;br /&gt;
 grub-setup: warn: This msdos-style partition label has no post-MBR gap; embedding will not be possible!&lt;br /&gt;
 grub-setup: warn: Embedding is not possible. GRUB can only be installed in this setup by using blocklists.&lt;br /&gt;
             However, blocklists are UNRELIABLE and its use is discouraged.&lt;br /&gt;
 grub-setup: error: If you really want blocklists, use --force.&lt;br /&gt;
&lt;br /&gt;
このエラーは VMware コンテナに GRUB をインストールしようとすると起こることがあります。詳しくは [https://bbs.archlinux.org/viewtopic.php?pid=581760#p581760 ここ] を読んで下さい。最初のパーティションが MBR (ブロック 63) のすぐ後ろから始まっていて、最初のパーティションの前に通常の 1 MiB のスペース (2048 ブロック) がない場合に起こります。[[#Master Boot Record (MBR) 特有の手順]] を読んで下さい。&lt;br /&gt;
&lt;br /&gt;
=== UEFI ===&lt;br /&gt;
&lt;br /&gt;
==== よくあるインストール時のエラー ====&lt;br /&gt;
&lt;br /&gt;
* grub-install の実行時に sysfs や procfs に関する問題が表示される場合、{{ic|modprobe efivars}} を実行してください。[[Unified Extensible Firmware Interface#UEFI 変数]] を参照。&lt;br /&gt;
* {{ic|--target}} と {{ic|--directory}} オプションのどちらかがないと、{{ic|grub-install}} はどこにファームウェアをインストールすればいいのか決められません。そのような場合 {{ic|grub-install}} は {{ic|source_dir does not exist. Please specify --target or --directory}} というメッセージを表示します。&lt;br /&gt;
* grub-install を実行した後、パーティションが EFI パーティションではないというような表示がされる場合、おそらくパーティションが {{ic|Fat32}} ではありません。&lt;br /&gt;
&lt;br /&gt;
==== レスキューシェルが起動する ====&lt;br /&gt;
&lt;br /&gt;
GRUB がロードしたときにエラーを表示せずにレスキューシェルを起動する場合、おそらく {{ic|grub.cfg}} が存在しなかったり間違った場所に置かれていることが原因です。GRUB UEFI を {{ic|--boot-directory}} でインストールして {{ic|grub.cfg}} がなかったり、ブートパーティションのパーティション番号 ({{ic|grubx64.efi}} ファイルにハードコードされています) が変更されているときにこの問題が発生します。&lt;br /&gt;
&lt;br /&gt;
==== GRUB UEFI がロードされない ====&lt;br /&gt;
&lt;br /&gt;
EFI の動作の例:&lt;br /&gt;
{{hc|# efibootmgr -v|&lt;br /&gt;
BootCurrent: 0000&lt;br /&gt;
Timeout: 3 seconds&lt;br /&gt;
BootOrder: 0000,0001,0002&lt;br /&gt;
Boot0000* Grub	HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\efi\grub\grub.efi)&lt;br /&gt;
Boot0001* Shell	HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\EfiShell.efi)&lt;br /&gt;
Boot0002* Festplatte	BIOS(2,0,00)P0: SAMSUNG HD204UI&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
画面が数秒間真っ暗になってその後次のブートオプションが試行される場合、[https://bbs.archlinux.org/viewtopic.php?pid=981560#p981560 この投稿]によると、GRUB を root パーティションに移動することで直るかもしれません。ブートオプションは削除して後でまた作成する必要があります。GRUB のエントリは次のようにしてください:&lt;br /&gt;
 Boot0000* Grub	HD(1,800,32000,23532fbb-1bfa-4e46-851a-b494bfe9478c)File(\grub.efi)&lt;br /&gt;
&lt;br /&gt;
=== Invalid signature ===&lt;br /&gt;
&lt;br /&gt;
(パーティションを再設定したりハードドライブを追加した後) Windows を起動しようとしたときに &amp;quot;invalid signature&amp;quot; エラーが起こる場合、GRUB のデバイス設定を移動（削除）して再設定してください:&lt;br /&gt;
 # mv /boot/grub/device.map /boot/grub/device.map-old&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
これで {{ic|grub-mkconfig}} は Windows を含む全てのブートオプションを記述したはずです。これで動作したら、{{ic|/boot/grub/device.map-old}} は削除してください。&lt;br /&gt;
&lt;br /&gt;
=== 起動中にフリーズする ===&lt;br /&gt;
&lt;br /&gt;
GRUB がカーネルと initial ramdisk をロードした後、エラーを出さずにブートが固まる場合、{{ic|add_efi_memmap}} カーネルパラメータを取り除いてみてください。&lt;br /&gt;
&lt;br /&gt;
=== 他の OS から Arch が見つからない ===&lt;br /&gt;
&lt;br /&gt;
他のディストリビューションで {{ic|os-prober}} を使って Arch Linux を自動的に検索できないという報告が複数確認されています。この問題が発生する場合、{{ic|/etc/lsb-release}} をおくことで検知が改善されると報告されています。このファイルと更新ツールは[[公式リポジトリ]]にある {{pkg|lsb-release}} パッケージから利用可能です。&lt;br /&gt;
&lt;br /&gt;
=== メニューエントリが重複する ===&lt;br /&gt;
GRUB を新規インストールすると重複するメニューエントリが生成される可能性があります。これは grub-mkconfig が実行されたときに上流のデフォルトの {{ic|/etc/grub.d/10_linux}} スクリプトと Arch の {{ic|/etc/grub.d/10_archlinux}} スクリプトがメニューエントリを作成するためです。これを修正するには 10_linux スクリプトを無効にしてもう一度 grub-mkconfig コマンドを実行してください。&lt;br /&gt;
 # chmod -x /etc/grub.d/10_linux&lt;br /&gt;
 # grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
=== chroot でインストールした時に警告が表示される ===&lt;br /&gt;
&lt;br /&gt;
chroot 環境で (例えばシステムのインストール中に) LVM システムに GRUB をインストールする場合、{{ic|/run/lvm/lvmetad.socket: connect failed: No such file or directory}} または {{ic|WARNING: failed to connect to lvmetad: No such file or directory. Falling back to internal scanning}} などの警告が表示されることがあります。これは {{ic|/run}} が chroot 中は利用できないのが原因です。これらの警告によってシステムが起動できなくなるということはないので、安心してインストールを続行してください。&lt;br /&gt;
&lt;br /&gt;
=== GRUB のロードが遅い ===&lt;br /&gt;
&lt;br /&gt;
ディスク容量が残りわずかの場合 GRUB がロードされるのにかなり時間がかかることがあります。起動が遅い場合 {{ic|/boot}} や {{ic|/}} に十分な空き容量があるか確認してください。&lt;br /&gt;
&lt;br /&gt;
=== error: unknown filesystem ===&lt;br /&gt;
GRUB が {{ic|error: unknown filesystem}} と出力して起動しない理由はいくつか考えられます。[[UUID]] が正しいこと、全てのファイルシステムが問題なく、GRUB によってサポートされていることが確認できる場合、[[#GUID Partition Table (GPT) 特有の手順|BIOS Boot Partition]] がドライブの最初の 2TB の中にない可能性があります [https://bbs.archlinux.org/viewtopic.php?id=195948]。適当なパーティショニングツールを使ってパーティションが最初の 2TB 以内にあるようにして、GRUB を再インストール・再設定してください。&lt;br /&gt;
&lt;br /&gt;
=== grub-reboot で再設定されない ===&lt;br /&gt;
&lt;br /&gt;
GRUB は Btrfs のルートパーティションに書き込むを行うことができません [https://bbs.archlinux.org/viewtopic.php?id=166131]。grub-reboot を使って他のエントリを起動した場合、ディスク上の環境を更新することができなくなります。(ディストリビューションを切り替えるなどの場合に) 他のエントリから grub-reboot を実行するか他のファイルシステムを使ってください。{{ic|grub-editenv create}} を実行して {{ic|/etc/default/grub}} に {{ic|GRUB_DEFAULT&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;0}} を設定することでエントリをリセットできます (設定後は {{ic|grub-mkconfig -o /boot/grub/grub.cfg}} を行ってください)。&lt;br /&gt;
&lt;br /&gt;
=== Btrfs のせいでインストールができない ===&lt;br /&gt;
&lt;br /&gt;
パーティションテーブルを作成しないで Btrfs を使ってドライブをフォーマットしている場合 (例: {{ic|/dev/sdx}})、後からパーティションテーブルを書き込むと、Btrfs のフォーマットが一部残留します。ほとんどのユーティリティや OS は残留した Btrfs を認識できないため、GRUB は (たとえ --force が付けられていても) インストールを拒否します:&lt;br /&gt;
&lt;br /&gt;
 # grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels. This is not supported yet..&lt;br /&gt;
 # grub-install: error: filesystem `btrfs&#039; doesn&#039;t support blocklists.&lt;br /&gt;
&lt;br /&gt;
ドライブを完全に消去してもいいですが、{{ic|wipefs -o 0x10040 /dev/sdx}} を使えばデータを残して Btrfs のスーパーブロックだけを消去することができます。&lt;br /&gt;
&lt;br /&gt;
=== Windows 8/10 が認識されない ===&lt;br /&gt;
&lt;br /&gt;
Windows 8/10 の &amp;quot;高速スタートアップ&amp;quot;, &amp;quot;ハイブリッドブート&amp;quot;, &amp;quot;Hiberboot&amp;quot; と呼ばれる設定を有効にしていると Windows のパーティションをマウントすることができません。そのため {{ic|grub-mkconfig}} が Windows を認識することができなくなります。Windows で設定を無効化することで GRUB のメニューに追加することができるようになるはずです。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* 公式 GRUB マニュアル - https://www.gnu.org/software/grub/manual/grub.html&lt;br /&gt;
* Ubuntu wiki の GRUB ページ - https://help.ubuntu.com/community/Grub2&lt;br /&gt;
* UEFI システム用にコンパイルする手順を説明している GRUB wiki ページ - https://help.ubuntu.com/community/UEFIBooting&lt;br /&gt;
* Wikipedia の [[Wikipedia:BIOS Boot partition|BIOS Boot partition]] ページ&lt;br /&gt;
* https://web.archive.org/web/20160424042444/http://members.iinet.net/~herman546/p20/GRUB2%20Configuration%20File%20Commands.html#Editing_etcgrub.d05_debian_theme - GRUB の設定方法の詳細な説明&lt;/div&gt;</summary>
		<author><name>Naoya</name></author>
	</entry>
</feed>