「GRUB/EFI サンプル」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:ブートローダー en:GRUB/EFI examples {{Related articles start}} {{Related|GRUB}} {{Related articles end}} マザーボードメーカーによっ...」)
 
(同期)
 
(同じ利用者による、間の4版が非表示)
1行目: 1行目:
 
[[Category:ブートローダー]]
 
[[Category:ブートローダー]]
 
[[en:GRUB/EFI examples]]
 
[[en:GRUB/EFI examples]]
  +
[[zh-hans:GRUB/EFI examples]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|GRUB}}
 
{{Related|GRUB}}
8行目: 9行目:
   
 
== Apple Mac EFI システム ==
 
== Apple Mac EFI システム ==
  +
=== Mac 一般 ===
 
  +
macOS の中から bless コマンドを使って {{ic|grubx64.efi}} をデフォルトのブートオプションに設定してください。パソコンに Linux しかインストールしていない場合は、macOS のインストールディスクを起動して、そこからターミナルを起動することもできます。ターミナルから、ディレクトリを作成して EFI System Partition をマウントしてください:
Use bless command from within Mac OS X to set {{ic|grubx64.efi}} as the default boot option. You can also boot from the Mac OS X install disc and launch a Terminal there if you only have Linux installed. In the Terminal, create a directory and mount the EFI System Partition:
 
   
 
# cd /Volumes
 
# cd /Volumes
15行目: 16行目:
 
# mount -t msdos /dev/disk0s1 /Volumes/efi
 
# mount -t msdos /dev/disk0s1 /Volumes/efi
   
  +
そして {{ic|grub.efi}} と EFI パーティションを指定して bless を実行してデフォルトのブートオプションに設定します。
Then run bless on {{ic|grub.efi}} and on the EFI partition to set them as the default boot options.
 
   
 
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot
 
# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot
 
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot
 
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot
   
More info at https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29.
+
詳しくは https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29 を参照。
   
  +
{{Note|
{{Note|TODO: GRUB upstream Bazaar mactel branch http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes. No further update from grub developers.}}
 
  +
* GRUB の上流の Bazaar には mactel ブランチ http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes がありますが、GRUB の開発者によるアップデートはもはやされていません。
{{Note|TODO: Experimental "bless" utility for Linux by Fedora developers - {{AUR|mactel-boot}}. Requires more testing.}}
 
  +
* Fedora の開発者による Linux 用の実験的な "bless" ユーティリティとして {{AUR|mactel-boot}} があります。テストが必要です。}}
   
 
== Asus ==
 
== Asus ==
29行目: 31行目:
 
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi
 
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi
   
After this launch the UEFI Shell from the UEFI setup/menu (in ASUS UEFI BIOS, switch to advanced mode, press Exit in the top right corner and choose "Launch EFI shell from filesystem device"). The GRUB2 menu will show up and you can boot into your system. Afterwards you can use efibootmgr to setup a menu entry, for example if you have the uefi partition in /dev/sda1: (read [[Unified_Extensible_Firmware_Interface]])
+
上記のコマンドを実行した後、UEFI セットアップ/メニューから UEFI Shell を起動してください (ASUS UEFI BIOS の場合、アドバンスモードに切り替えて、右上の Exit を押してから "Launch EFI shell from filesystem device" を選択します)GRUB2 のメニューが表示されるのでシステムを起動することができます。その後、efibootmgr を使ってメニューエントリを設定することが可能です。例えば uefi パーティションが {{ic|/dev/sda1}} の場合 ([[Unified_Extensible_Firmware_Interface]] を参照):
   
 
efibootmgr -c -g -d /dev/sda -p 1 -w -L "Arch Linux (GRUB)" -l /EFI/arch_grub/grubx64.efi
 
efibootmgr -c -g -d /dev/sda -p 1 -w -L "Arch Linux (GRUB)" -l /EFI/arch_grub/grubx64.efi
   
If your motherboard has no such option (or even if it does), you can use UEFI shell ([[Unified_Extensible_Firmware_Interface#UEFI_Shell]]) to create a UEFI boot option for the Arch partition temporarily.
+
マザーボードにオプションが存在しない場合、UEFI シェル ([[Unified_Extensible_Firmware_Interface#UEFI_シェル]]) を使って一時的に Arch パーティションの UEFI ブートオプションを作成できます。
   
  +
EFI シェルを起動したら、以下のようにして UEFI ブートメニューエントリを追加:
Once you boot into the EFI shell, add a UEFI boot menu entry:
 
 
Shell> bcfg boot add 0 fs1:\EFI\arch_grub\grubx64.efi "Arch Linux (GRUB2)"
 
Shell> bcfg boot add 0 fs1:\EFI\arch_grub\grubx64.efi "Arch Linux (GRUB2)"
where {{ic|fs1}} is the mapping corresponding to the UEFI System Partition and {{ic|\EFI\arch_grub\grubx64.efi}} is the the from the {{ic|--bootloader-id}} from the {{ic|grub-install}} command above.
+
{{ic|fs1}} UEFI システムパーティションに、{{ic|\EFI\arch_grub\grubx64.efi}} {{ic|grub-install}} コマンドの {{ic|--bootloader-id}} の値に置き換えてください。
   
  +
一時的に UEFI ブートオプションが追加され Arch を起動できます。Arch を起動したら、{{ic|efivars}} を modprobe して {{ic|efibootmgr}} が何もエラーを返さないことを確認してください (UEFI モードで起動していることを確認)。それから [[GRUB#UEFI システム]]に書かれていることをもういちど実行すれば UEFI メニューに永続的にブートエントリが追加されます。
This will temporarily add a UEFI boot option for the next boot to get into Arch. Once in Arch, modprobe {{ic|efivars}} and confirm that {{ic|efibootmgr}} creates no errors (no errors meaning you successfully booted in UEFI mode). Then [[GRUB#UEFI systems 2|GRUB#UEFI systems]] can be performed again and should successfully permanently add a boot entry in the UEFI menu.
 
   
 
=== ux32vd ===
 
=== ux32vd ===
   
  +
{{Note|EFI ブートエントリが正しく設定されていない場合 BIOS は GPT ディスクからの起動を許可しません。その場合 BIOS からディスクが確認できません。EFI ブートエントリを正しく作成すれば解決します。}}
'''N.B.:''' The BIOS does not allow computer to boot from GPT disk if there is no properly set-up EFI boot entry.
 
The disk even may not be seen in BIOS in this case. The fix is to make a proper efi boot entry.
 
   
  +
マシンを MBR から起動した場合、grub-install (あるいは efibootmgr) が以下のエラーで efi ブートエントリの作成に失敗します:
There is a caveat. If the machine was booted from MBR then grub-install (or efibootmgr) will fail to create
 
the efi boot entry with the following error:
 
   
 
EFI variables are not supported on this system
 
EFI variables are not supported on this system
 
   
  +
EFI でマシンを起動してブートエントリを作成する必要があります。Z68 ファミリーと同じ方法で起動できます。起動できたら grub-install や efibootmgr でブートエントリを作成することが可能になります。
You first need to boot the machine with EFI and then create the boot entry. This can be done the way described for Z68 Family: by copying /boot/efi/EFI/arch_grub/grubx64.efi into /boot/efi/shellx64.efi and selecting "Launch EFI shell from filesystem device".
 
After successful boot it is possible to create a boot entry using grub-install or efibootmgr.
 
   
 
=== P8Z77 ファミリー ===
 
=== P8Z77 ファミリー ===
  +
*ライブメディアを起動して chroot してください。
*Boot to live media and chroot into the target system.
 
*Make sure that a 100 MB fat32 partition is marked as "EFI System" (gdisk terminology uses hex code ef00).
+
*100 MB fat32 パーティションが "EFI System" になっていることを確認 (gdisk では十六進コード ef00 が使われます)
   
{{Note|If you get the message WARNING: Not enough clusters for a 32 bit FAT!, reduce cluster size with mkfs.vfat -s2 -F32 ... otherwise the partition may be unreadable by UEFI.}}
+
{{Note|{{ic|WARNING: Not enough clusters for a 32 bit FAT!}} というメッセージが表示される場合、{{ic|mkfs.vfat -s2 -F32}} でクラスタサイズを小さくしてください。そうしないと UEFI からパーティションを読み込めなくなります。}}
  +
* chroot の中から以下を実行:
'''FROM WITHIN THE CHROOT'''
 
 
# mount -t vfat /dev/sdXY /boot/efi
 
# mount -t vfat /dev/sdXY /boot/efi
 
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --recheck
 
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --recheck
67行目: 65行目:
 
# umount /boot/efi
 
# umount /boot/efi
   
  +
EFI パーティションには以下の2つのファイルがあるはずです:
The EFI partition should be contain just two files:
 
 
/Shell.efi
 
/Shell.efi
 
/EFI/arch/grubx64.efi
 
/EFI/arch/grubx64.efi
  +
*再起動して BIOS を起動 (Delete キーで BIOS が開きます)。
*Reboot and enter the BIOS (the Delete key will do this).
 
  +
*方向キーを使って 'exit' メニューに移動して EFI シェルを起動。
*Using the arrow keys, move to the 'exit' menu and drop down to the EFI shell.
 
  +
* Arch のエントリをメニューに追加します。詳しくは [[UEFI#UEFI シェルの起動]]を見てください。
*Add an entry for Arch to the menu. Below is an example, see the [[UEFI#Launching UEFI Shell]] article for more.
 
  +
* EFI シェルの中から以下を実行:
'''FROM WITHIN THE EFI SHELL'''
 
 
Shell> bcfg boot dump -v
 
Shell> bcfg boot dump -v
 
Shell> bcfg boot add 1 fs0:\EFI\arch\grubx64.efi "Arch Linux (grub manually added)"
 
Shell> bcfg boot add 1 fs0:\EFI\arch\grubx64.efi "Arch Linux (grub manually added)"
 
Shell> exit
 
Shell> exit
  +
* マシンを再起動して BIOS を開いてください。
* Reboot the machine and enter the BIOS.
 
* Navigate to the 'Boot' section and adjust the boot order to with the "Arch Linux (grub manually added)" being the one on the SSD.
+
* 'Boot' セクションからブート順序を変更して "Arch Linux (grub manually added)" を一番最初にしてください。
  +
* エントリを起動してください。
* Boot to this entry and enjoy.
 
  +
  +
{{Note|上記の手順は今では必要ない場合が多く、{{ic|efibootmgr -d}} でエントリを作成できます。}}
   
 
=== M5A97===
 
=== M5A97===
  +
標準の Arch のインストールが完了したら、{{Pkg|grub}} をインストールしてハードディスクを GPT としてパーティションしてください。
Finish the standard Arch install procedures, making sure that you install {{Pkg|grub}} and partition your boot hard disk as GPT.
 
   
From [[GRUB#UEFI systems 2|GRUB#UEFI systems]]:
+
[[GRUB#UEFI システム]]より:
   
  +
UEFI システムパーティションは GRUB のインストールスクリプトから認識されるように {{ic|/boot/efi/}} にマウントする必要があります:
The UEFI system partition will need to be mounted at {{ic|/boot/efi/}} for the GRUB install script to detect it:
 
   
 
# mkdir -p /boot/efi
 
# mkdir -p /boot/efi
 
# mount -t vfat /dev/sdXY /boot/efi
 
# mount -t vfat /dev/sdXY /boot/efi
   
  +
X は起動するハードディスクの番号に、Y は先に作成した EFI パーティションに置き換えてください。
Where X is your boot hard disk and Y is the efi partition you created earlier.
 
   
Install GRUB UEFI application to {{ic|/boot/efi/EFI/arch_grub}} and its modules to {{ic|/boot/grub/x86_64-efi}} using:
+
GRUB UEFI アプリケーションを {{ic|/boot/efi/EFI/arch_grub}} に、モジュールを {{ic|/boot/grub/x86_64-efi}} にインストール:
   
 
# modprobe dm-mod
 
# modprobe dm-mod
100行目: 100行目:
 
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
 
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
   
  +
GRUB の設定を作成:
Generate a configuration for GRUB
 
   
 
# grub-mkconfig -o /boot/grub/grub.cfg
 
# grub-mkconfig -o /boot/grub/grub.cfg
   
Then copy the [http://dl.dropbox.com/u/17629062/Shell2.zip modified UEFI Shell v2 binary] UefiShellX64.efi into your ESP root.
+
[http://dl.dropbox.com/u/17629062/Shell2.zip modified UEFI Shell v2 バイナリ] UefiShellX64.efi ESP のルートディレクトリにコピー:
   
 
# cp ~/Shell2/UefiShellX64.efi /mnt/boot/efi/shellx64.efi
 
# cp ~/Shell2/UefiShellX64.efi /mnt/boot/efi/shellx64.efi
   
  +
シェルアプリケーションが必要になるのは efibootmgr コマンドが grub-install の中で失敗するからです (特にエラーは吐きません)。
The reason that we need this shell application is that the efibootmgr command will fail silently during grub-install.
 
   
After this launch the UEFI Shell from the UEFI setup/menu (in ASUS UEFI BIOS, switch to advanced mode, press Exit in the top right corner and choose "Launch EFI shell from filesystem device"). The UEFI shell will show up. From here we need to add our GRUB UEFI app to the bootloader.
+
その後 UEFI セットアップ/メニューから UEFI Shell を起動してください (ASUS UEFI BIOS では、アドバンスモードに切り替えて、右上の Exit を押して "Launch EFI shell from filesystem device" を選択します)UEFI シェルが表示されます。そこから GRUB UEFI アプリをブートローダーに追加してください:
   
 
Shell> bcfg boot add 3 fs0:\EFI\Arch_Grub\grubx64.efi "Arch_Grub"
 
Shell> bcfg boot add 3 fs0:\EFI\Arch_Grub\grubx64.efi "Arch_Grub"
   
  +
{{ic|fs0}} は UEFI システムパーティションのマッピングに置き換えてください。{{ic|3}} はゼロ始まりのブートエントリのインデックスです。
where {{ic|fs0}} is the mapping corresponding to the UEFI System Partition and {{ic|3}} is the zero based boot entry index.
 
   
{{Note|UEFI Shell commands usually support {{ic|-b}} option which makes output pause after each page. {{ic|map}} lists recognized filesystems ({{ic|fs0}}, ...) and data storage devices ({{ic|blk0}}, ...). Run {{ic|help -b}} to list available commands. [[Unified_Extensible_Firmware_Interface#Important_UEFI_Shell_Commands]]}}
+
{{Note|大抵の UEFI Shell コマンドは {{ic|-b}} オプションをサポートしており、ページの後に出力を停止することができます。{{ic|map}} は認識されているファイルシステム ({{ic|fs0}}, ...) とデータストレージデバイス ({{ic|blk0}}, ...) を表示します。利用可能なコマンドを確認したいときは {{ic|help -b}} を実行してください。[[Unified_Extensible_Firmware_Interface#重要な UEFI シェルコマンド]]も参照。}}
   
  +
現在存在するブートエントリのリストを確認するには:
To list the current boot entries you can run:
 
   
 
Shell> bcfg boot dump -v
 
Shell> bcfg boot dump -v
  +
  +
== Asrock ==
  +
=== Z97M Pro4 ===
  +
Asus Z68 ファミリーの手順と似ています。Z97M Pro4 BIOS P1.90 で確認済みです。
  +
  +
# cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/shellx64.efi
  +
  +
上記のコマンドを実行した後、UEFI セットアップ/メニューから UEFI シェルを起動してください (ASROCK の UEFI BIOS では、Exit タブを開いて "Launch EFI Shell From Filesystem Device" を選択します)。GRUB2 のメニューが表示され、システムを起動することができます。その後、efibootmgr を使ってメニューエントリを設定することが可能です。例えば uefi パーティションが {{ic|/dev/sda1}} にある場合 ([[Unified Extensible Firmware Interface]] を参照):
  +
  +
# efibootmgr -c -g -d /dev/sda -p 1 -w -L "Arch Linux (GRUB)" -l /EFI/grub/grubx64.efi
  +
  +
== Dell ==
  +
=== PowerEdge T30 ===
  +
Dell の UEFI 実装は GRUB をロードするのに[[GRUB#UEFI ファームウェアの応急処置|ファイルの名前を変更]]する必要があります。そうしないと "no OS found" 画面が表示されます。
  +
  +
== MSI ==
  +
=== B250M PRO-VH ===
  +
  +
MSI 製の B250M PRO-VH マザーボードは GRUB がインストールする場所とは別のところに EFI プログラムを必要とします。[[GRUB]] をインストールした後に以下のコマンドを実行してください:
  +
  +
# mkdir /boot/EFI/BOOT
  +
# cp /boot/EFI/grub/grubx64.efi /boot/EFI/BOOT/shellx64.efi
  +
  +
{{Note|上記のコマンドは他の MSI マザーボードでも使える可能性があります。}}
   
 
== HP ==
 
== HP ==
 
=== EliteBook 840 G1 ===
 
=== EliteBook 840 G1 ===
詳しくは [[en2:HP_EliteBook_840_G1#UEFI_Setup|HP_EliteBook_840_G1#UEFI_Setup]] を見て下さい。
+
詳しくは [[HP EliteBook 840 G1#UEFI の設定]]を見て下さい。
   
  +
{{Note|上のリンクで書かれていることは他の HP のノートパソコンにも適用できます。}}
{{Note|The procedures in the link above probably also work for a range of other HP models.}}
 
   
 
== Intel ==
 
== Intel ==
 
=== S5400 ファミリー ===
 
=== S5400 ファミリー ===
  +
このボードは BIOS と EFI モードのどちらかで起動します。BIOS モードでは MBR でパーティションされたハードドライブが必要で EFI では GPT ハードドライブが必要です。Intel の EFI v1.10 の仕様に従っており、i386 しか使えません。UEFI における通常のインストールの手順に従ってよいですが、以下の例外が存在します。
This board can run in BIOS or in EFI mode. BIOS mode requires an MBR-partitioned hard drive, EFI a GPT hard drive. Please note that this board operates on the Intel EFI v1.10 specification, and is i386 only. The normal procedure for UEFI installation can be followed, with the exception of the following changes.
 
* Instead of using the {{ic|grub-efi-x86_64}} package, {{ic|grub-efi-i386}} has to be used
+
* {{ic|grub-efi-x86_64}} パッケージを使うかわりに {{ic|grub-efi-i386}} を使用してください。
  +
* UEFI (v2.0) 以前のファームウェアでは {{ic|bcfg}} コマンドが使えません。EFI パーティションのルートディレクトリにある {{ic|startup.nsh}} ファイルを使ってブートローダーのパスを指定してください。例えば {{ic|fs0:\EFI\arch_grub\boot.efi}} を {{ic|startup.nsh}} ファイルの中に記述してください。
* The {{ic|bcfg}} command is not available for pre-UEFI (v2.0) firmware. A {{ic|startup.nsh}} file can be used on the root of the EFI partition containing the path to the bootloader. For example:
 
  +
* {{ic|grub.cfg}} ファイルは GRUB の EFI ファイルと同じディレクトリに配置してください。そうしないと GRUB からファイルを認識できずシェルが起動します。
{{ic|fs0:\EFI\arch_grub\boot.efi}}
 
has to be placed in the {{ic|startup.nsh}} file on the root of the EFI partition.
 
* The {{ic|grub.cfg}} file has to be placed in the same directory as the grub EFI file, otherwise grub will not find it and enter the interactive shell
 
   
 
== Lenovo ==
 
== Lenovo ==
 
=== K450 IdeaCentre ===
 
=== K450 IdeaCentre ===
   
The "EFI System" partition requires the file {{ic|EFI\Boot\bootx64.efi}} to be present in order to boot, otherwise you will receive "Error 1962: No operating system found. Boot sequence will automatically repeat." Assuming the "EFI System" partition is mounted on {{ic|/boot/efi}}:
+
起動するには "EFI System" パーティションに {{ic|EFI\Boot\bootx64.efi}} ファイルが必要です。ファイルが存在しない場合、"Error 1962: No operating system found. Boot sequence will automatically repeat." と表示されます。"EFI System" パーティションを {{ic|/boot/efi}} にマウントしている場合:
   
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug
+
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug
# mkdir /boot/efi/EFI/Boot
+
# mkdir /boot/efi/EFI/Boot
# touch /boot/efi/EFI/Boot/bootx64.efi
+
# touch /boot/efi/EFI/Boot/bootx64.efi
   
  +
上記は UEFI 実装のバグに対処する回避策です。
This is a workaround for what is likely a bug in the UEFI implementation.
 
   
 
=== M92p ThinkCentre ===
 
=== M92p ThinkCentre ===
   
  +
efi ラベルによるホワイトリストが存在します。"Red Hat Enterprise Linux" という名前のラベルからしか起動しません。ブートローダー id をそれに合わせて指定するようにしてください:
This system whitelists efi labels. It will only boot from a label called "Red Hat Enterprise Linux". So specify the bootloader id appropriately:
 
  +
  +
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Red Hat Enterprise Linux" --recheck --debug
  +
  +
=== X270 Thinkpad ===
  +
  +
X270 では[[GRUB#UEFI ファームウェアの応急処置|パスの修正]]が必要になります:
  +
  +
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub
  +
# mkdir /boot/efi/EFI/boot
  +
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi
  +
  +
== VirtualBox ==
   
  +
[[VirtualBox#EFI モードでインストール]]を参照。
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Red Hat Enterprise Linux" --recheck --debug
 

2018年3月11日 (日) 22:08時点における最新版

関連記事

マザーボードメーカーによって UEFI はバラバラに実装されていることはよく知られています。このページの目的は efi モードで GRUB をインストール・リストするときに使用するハードウェア特有の手順を示すことです。

Apple Mac EFI システム

macOS の中から bless コマンドを使って grubx64.efi をデフォルトのブートオプションに設定してください。パソコンに Linux しかインストールしていない場合は、macOS のインストールディスクを起動して、そこからターミナルを起動することもできます。ターミナルから、ディレクトリを作成して EFI System Partition をマウントしてください:

# cd /Volumes
# mkdir efi
# mount -t msdos /dev/disk0s1 /Volumes/efi

そして grub.efi と EFI パーティションを指定して bless を実行してデフォルトのブートオプションに設定します。

# bless --folder=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot
# bless --mount=/Volumes/efi --file=/Volumes/efi/efi/arch_grub/grubx64.efi --setBoot

詳しくは https://help.ubuntu.com/community/UEFIBooting#Apple_Mac_EFI_systems_.28both_EFI_architecture.29 を参照。

ノート:
  • GRUB の上流の Bazaar には mactel ブランチ http://bzr.savannah.gnu.org/lh/grub/branches/mactel/changes がありますが、GRUB の開発者によるアップデートはもはやされていません。
  • Fedora の開発者による Linux 用の実験的な "bless" ユーティリティとして mactel-bootAUR があります。テストが必要です。

Asus

Z68 ファミリーと U47 ファミリー

# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi

上記のコマンドを実行した後、UEFI セットアップ/メニューから UEFI Shell を起動してください (ASUS の UEFI BIOS の場合、アドバンスモードに切り替えて、右上の Exit を押してから "Launch EFI shell from filesystem device" を選択します)。GRUB2 のメニューが表示されるのでシステムを起動することができます。その後、efibootmgr を使ってメニューエントリを設定することが可能です。例えば uefi パーティションが /dev/sda1 の場合 (Unified_Extensible_Firmware_Interface を参照):

efibootmgr -c -g -d /dev/sda -p 1 -w -L "Arch Linux (GRUB)" -l /EFI/arch_grub/grubx64.efi

マザーボードにオプションが存在しない場合、UEFI シェル (Unified_Extensible_Firmware_Interface#UEFI_シェル) を使って一時的に Arch パーティションの UEFI ブートオプションを作成できます。

EFI シェルを起動したら、以下のようにして UEFI ブートメニューエントリを追加:

Shell> bcfg boot add 0 fs1:\EFI\arch_grub\grubx64.efi "Arch Linux (GRUB2)"

fs1 は UEFI システムパーティションに、\EFI\arch_grub\grubx64.efigrub-install コマンドの --bootloader-id の値に置き換えてください。

一時的に UEFI ブートオプションが追加され Arch を起動できます。Arch を起動したら、efivars を modprobe して efibootmgr が何もエラーを返さないことを確認してください (UEFI モードで起動していることを確認)。それから GRUB#UEFI システムに書かれていることをもういちど実行すれば UEFI メニューに永続的にブートエントリが追加されます。

ux32vd

ノート: EFI ブートエントリが正しく設定されていない場合 BIOS は GPT ディスクからの起動を許可しません。その場合 BIOS からディスクが確認できません。EFI ブートエントリを正しく作成すれば解決します。

マシンを MBR から起動した場合、grub-install (あるいは efibootmgr) が以下のエラーで efi ブートエントリの作成に失敗します:

EFI variables are not supported on this system

EFI でマシンを起動してブートエントリを作成する必要があります。Z68 ファミリーと同じ方法で起動できます。起動できたら grub-install や efibootmgr でブートエントリを作成することが可能になります。

P8Z77 ファミリー

  • ライブメディアを起動して chroot してください。
  • 100 MB の fat32 パーティションが "EFI System" になっていることを確認 (gdisk では十六進コード ef00 が使われます)。
ノート: WARNING: Not enough clusters for a 32 bit FAT! というメッセージが表示される場合、mkfs.vfat -s2 -F32 でクラスタサイズを小さくしてください。そうしないと UEFI からパーティションを読み込めなくなります。
  • chroot の中から以下を実行:
# mount -t vfat /dev/sdXY /boot/efi
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
# wget https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi
# umount /boot/efi

EFI パーティションには以下の2つのファイルがあるはずです:

/Shell.efi
/EFI/arch/grubx64.efi
  • 再起動して BIOS を起動 (Delete キーで BIOS が開きます)。
  • 方向キーを使って 'exit' メニューに移動して EFI シェルを起動。
  • Arch のエントリをメニューに追加します。詳しくは UEFI#UEFI シェルの起動を見てください。
  • EFI シェルの中から以下を実行:
Shell> bcfg boot dump -v
Shell> bcfg boot add 1 fs0:\EFI\arch\grubx64.efi "Arch Linux (grub manually added)"
Shell> exit
  • マシンを再起動して BIOS を開いてください。
  • 'Boot' セクションからブート順序を変更して "Arch Linux (grub manually added)" を一番最初にしてください。
  • エントリを起動してください。
ノート: 上記の手順は今では必要ない場合が多く、efibootmgr -d でエントリを作成できます。

M5A97

標準の Arch のインストールが完了したら、grub をインストールしてハードディスクを GPT としてパーティションしてください。

GRUB#UEFI システムより:

UEFI システムパーティションは GRUB のインストールスクリプトから認識されるように /boot/efi/ にマウントする必要があります:

# mkdir -p /boot/efi
# mount -t vfat /dev/sdXY /boot/efi

X は起動するハードディスクの番号に、Y は先に作成した EFI パーティションに置き換えてください。

GRUB UEFI アプリケーションを /boot/efi/EFI/arch_grub に、モジュールを /boot/grub/x86_64-efi にインストール:

# modprobe dm-mod
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
# mkdir -p /boot/grub/locale
# cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

GRUB の設定を作成:

# grub-mkconfig -o /boot/grub/grub.cfg

modified UEFI Shell v2 バイナリ の UefiShellX64.efi を ESP のルートディレクトリにコピー:

# cp ~/Shell2/UefiShellX64.efi /mnt/boot/efi/shellx64.efi

シェルアプリケーションが必要になるのは efibootmgr コマンドが grub-install の中で失敗するからです (特にエラーは吐きません)。

その後 UEFI セットアップ/メニューから UEFI Shell を起動してください (ASUS の UEFI BIOS では、アドバンスモードに切り替えて、右上の Exit を押して "Launch EFI shell from filesystem device" を選択します)。UEFI シェルが表示されます。そこから GRUB の UEFI アプリをブートローダーに追加してください:

Shell> bcfg boot add 3 fs0:\EFI\Arch_Grub\grubx64.efi "Arch_Grub"

fs0 は UEFI システムパーティションのマッピングに置き換えてください。3 はゼロ始まりのブートエントリのインデックスです。

ノート: 大抵の UEFI Shell コマンドは -b オプションをサポートしており、ページの後に出力を停止することができます。map は認識されているファイルシステム (fs0, ...) とデータストレージデバイス (blk0, ...) を表示します。利用可能なコマンドを確認したいときは help -b を実行してください。Unified_Extensible_Firmware_Interface#重要な UEFI シェルコマンドも参照。

現在存在するブートエントリのリストを確認するには:

Shell> bcfg boot dump -v

Asrock

Z97M Pro4

Asus Z68 ファミリーの手順と似ています。Z97M Pro4 BIOS P1.90 で確認済みです。

# cp /boot/efi/EFI/grub/grubx64.efi /boot/efi/shellx64.efi

上記のコマンドを実行した後、UEFI セットアップ/メニューから UEFI シェルを起動してください (ASROCK の UEFI BIOS では、Exit タブを開いて "Launch EFI Shell From Filesystem Device" を選択します)。GRUB2 のメニューが表示され、システムを起動することができます。その後、efibootmgr を使ってメニューエントリを設定することが可能です。例えば uefi パーティションが /dev/sda1 にある場合 (Unified Extensible Firmware Interface を参照):

# efibootmgr -c -g -d /dev/sda -p 1 -w -L "Arch Linux (GRUB)" -l /EFI/grub/grubx64.efi

Dell

PowerEdge T30

Dell の UEFI 実装は GRUB をロードするのにファイルの名前を変更する必要があります。そうしないと "no OS found" 画面が表示されます。

MSI

B250M PRO-VH

MSI 製の B250M PRO-VH マザーボードは GRUB がインストールする場所とは別のところに EFI プログラムを必要とします。GRUB をインストールした後に以下のコマンドを実行してください:

# mkdir /boot/EFI/BOOT
# cp /boot/EFI/grub/grubx64.efi /boot/EFI/BOOT/shellx64.efi
ノート: 上記のコマンドは他の MSI マザーボードでも使える可能性があります。

HP

EliteBook 840 G1

詳しくは HP EliteBook 840 G1#UEFI の設定を見て下さい。

ノート: 上のリンクで書かれていることは他の HP のノートパソコンにも適用できます。

Intel

S5400 ファミリー

このボードは BIOS と EFI モードのどちらかで起動します。BIOS モードでは MBR でパーティションされたハードドライブが必要で EFI では GPT ハードドライブが必要です。Intel の EFI v1.10 の仕様に従っており、i386 しか使えません。UEFI における通常のインストールの手順に従ってよいですが、以下の例外が存在します。

  • grub-efi-x86_64 パッケージを使うかわりに grub-efi-i386 を使用してください。
  • UEFI (v2.0) 以前のファームウェアでは bcfg コマンドが使えません。EFI パーティションのルートディレクトリにある startup.nsh ファイルを使ってブートローダーのパスを指定してください。例えば fs0:\EFI\arch_grub\boot.efistartup.nsh ファイルの中に記述してください。
  • grub.cfg ファイルは GRUB の EFI ファイルと同じディレクトリに配置してください。そうしないと GRUB からファイルを認識できずシェルが起動します。

Lenovo

K450 IdeaCentre

起動するには "EFI System" パーティションに EFI\Boot\bootx64.efi ファイルが必要です。ファイルが存在しない場合、"Error 1962: No operating system found. Boot sequence will automatically repeat." と表示されます。"EFI System" パーティションを /boot/efi にマウントしている場合:

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --recheck --debug
# mkdir /boot/efi/EFI/Boot
# touch /boot/efi/EFI/Boot/bootx64.efi

上記は UEFI 実装のバグに対処する回避策です。

M92p ThinkCentre

efi ラベルによるホワイトリストが存在します。"Red Hat Enterprise Linux" という名前のラベルからしか起動しません。ブートローダー id をそれに合わせて指定するようにしてください:

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Red Hat Enterprise Linux" --recheck --debug

X270 Thinkpad

X270 ではパスの修正が必要になります:

 # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub
 # mkdir /boot/efi/EFI/boot
 # cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/EFI/boot/bootx64.efi

VirtualBox

VirtualBox#EFI モードでインストールを参照。