「GRUB/EFI サンプル」の版間の差分
(同期) |
|||
30行目: | 30行目: | ||
# cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/efi/shellx64.efi |
# 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 パーティションが {{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 |
||
80行目: | 80行目: | ||
* Navigate to the 'Boot' section and adjust the boot order to with the "Arch Linux (grub manually added)" being the one on the SSD. |
* 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 to this entry and enjoy. |
* Boot to this entry and enjoy. |
||
+ | |||
+ | {{Note|上記の手順は今では必要ない場合が多く、{{ic|efibootmgr -d}} でエントリを作成できます。}} |
||
=== M5A97=== |
=== M5A97=== |
||
116行目: | 118行目: | ||
where {{ic|fs0}} is the mapping corresponding to the UEFI System Partition and {{ic|3}} is the zero based boot entry index. |
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 |
+ | {{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: |
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 |
||
== HP == |
== HP == |
||
=== EliteBook 840 G1 === |
=== EliteBook 840 G1 === |
||
− | 詳しくは [[ |
+ | 詳しくは [[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 ファミリー === |
||
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. |
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. |
||
− | * |
+ | * {{ic|grub-efi-x86_64}} パッケージを使うかわりに {{ic|grub-efi-i386}} を使用してください。 |
* 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: |
* 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|fs0:\EFI\arch_grub\boot.efi}} |
{{ic|fs0:\EFI\arch_grub\boot.efi}} |
||
140行目: | 152行目: | ||
=== K450 IdeaCentre === |
=== K450 IdeaCentre === |
||
− | + | 起動するには "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 |
|
− | + | # mkdir /boot/efi/EFI/Boot |
|
− | + | # 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 |
||
+ | |||
+ | == VirtualBox == |
||
+ | [[VirtualBox#EFI モードでインストール]]を参照。 |
||
− | # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Red Hat Enterprise Linux" --recheck --debug |
2016年3月4日 (金) 00:52時点における版
関連記事
マザーボードメーカーによって UEFI はバラバラに実装されていることはよく知られています。このページの目的は efi モードで GRUB をインストール・リストするときに使用するハードウェア特有の手順を示すことです。
目次
Apple Mac EFI システム
Mac 一般
Mac OS X の中から bless コマンドを使って grubx64.efi
をデフォルトのブートオプションに設定してください。パソコンに Linux しかインストールしていない場合は、Mac OS X のインストールディスクを起動して、そこからターミナルを起動することもできます。ターミナルから、ディレクトリを作成して 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 を参照。
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
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.
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)"
where fs1
is the mapping corresponding to the UEFI System Partition and \EFI\arch_grub\grubx64.efi
is the the from the --bootloader-id
from the grub-install
command above.
This will temporarily add a UEFI boot option for the next boot to get into Arch. Once in Arch, modprobe efivars
and confirm that efibootmgr
creates no errors (no errors meaning you successfully booted in UEFI mode). Then GRUB#UEFI systems can be performed again and should successfully permanently add a boot entry in the UEFI menu.
ux32vd
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.
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
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 ファミリー
- 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).
FROM WITHIN THE 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
The EFI partition should be contain just two files:
/Shell.efi /EFI/arch/grubx64.efi
- Reboot and enter the BIOS (the Delete key will do this).
- Using the arrow keys, move to the 'exit' menu and drop down to the EFI shell.
- Add an entry for Arch to the menu. Below is an example, see the UEFI#Launching UEFI Shell article for more.
FROM WITHIN THE EFI SHELL
Shell> bcfg boot dump -v Shell> bcfg boot add 1 fs0:\EFI\arch\grubx64.efi "Arch Linux (grub manually added)" Shell> exit
- 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 to this entry and enjoy.
M5A97
Finish the standard Arch install procedures, making sure that you install grub and partition your boot hard disk as GPT.
From GRUB#UEFI systems:
The UEFI system partition will need to be mounted at /boot/efi/
for the GRUB install script to detect it:
# mkdir -p /boot/efi # mount -t vfat /dev/sdXY /boot/efi
Where X is your boot hard disk and Y is the efi partition you created earlier.
Install GRUB UEFI application to /boot/efi/EFI/arch_grub
and its modules to /boot/grub/x86_64-efi
using:
# 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
Generate a configuration for GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
Then copy the modified UEFI Shell v2 binary UefiShellX64.efi into your ESP root.
# cp ~/Shell2/UefiShellX64.efi /mnt/boot/efi/shellx64.efi
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.
Shell> bcfg boot add 3 fs0:\EFI\Arch_Grub\grubx64.efi "Arch_Grub"
where fs0
is the mapping corresponding to the UEFI System Partition and 3
is the zero based boot entry index.
To list the current boot entries you can run:
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
HP
EliteBook 840 G1
詳しくは HP EliteBook 840 G1#UEFI の設定を見て下さい。
Intel
S5400 ファミリー
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.
grub-efi-x86_64
パッケージを使うかわりにgrub-efi-i386
を使用してください。- The
bcfg
command is not available for pre-UEFI (v2.0) firmware. Astartup.nsh
file can be used on the root of the EFI partition containing the path to the bootloader. For example:
fs0:\EFI\arch_grub\boot.efi
has to be placed in the startup.nsh
file on the root of the EFI partition.
- The
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
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