我已经关注了这个指导关于如何设置 Arch Linux 双启动。但是,仅在启动时获得“macOS”选项,选择该选项后会显示以下错误:
Error loading \System\Library\CoreServices\boot.efi: Unsupported
Failed to execute macOS (\System\Library\CoreServices\boot.efi): Unsupported
再次重试 macOS 启动后,我再也没有看到 Arch Linux 启动选项。我的boot.efi
是:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt5'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt5' --hint-bios=hd0,gpt5 --hint-efi=hd0,gpt5 --hint-baremetal=ahci0,gpt5 a4d89761-6298-4e27-99c9-0d86bb1c8aa2
else
search --no-floppy --fs-uuid --set=root a4d89761-6298-4e27-99c9-0d86bb1c8aa2
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
还有我的分区:
设备 | 尺寸 | 类型 |
---|---|---|
/dev/sda1 | 200M | 电喷系统 |
/dev/sda2 | 116.8G | 苹果APFS |
/dev/sda3 | 128M | 苹果 HFS/HFS+ |
/dev/sda4 | 256M | Linux 文件系统(引导) |
/dev/sda5 | 116.4G | Linux 文件系统(根) |
知道为什么 Arch 启动选项不显示吗?
答案1
您似乎错过了某个步骤或以某种方式误解了某个步骤。
您在问题中发布了一个文本文件,声称它是您的boot.efi
.但该文件应该是二进制文件。您发布的内容看起来像是 grub 菜单配置文件。
根据您链接的教程,应使用以下命令生成此文件:
grub-mkconfig -o boot/grub/grub.cfg
grub-mkstandalone -o boot.efi -d usr/lib/grub/x86_64-efi -O x86_64-efi -C xz boot/grub/grub.cfg
这里第二步grub-mkstandalone -o boot.efi ...
应该生成二进制文件并放入您的 EFI 目录中。这不应该是一个文本文件。
答案2
听起来问题是您的 Mac 无法识别您的引导加载程序文件。您链接的指南是 2013 年的,所以它有点过时了 - 确实不需要单独的 /boot 分区,因此您应该在安装时删除 /dev/sda4 并将 Mac 的 EFI 挂载为 /boot
mkdir /mnt/boot && mount /dev/sda1 /mnt/boot
/EFI/BOOT/BOOTX64.EFI
此外,您可以使用带有 systemd-boot 的原生 Apple EFI 引导加载程序,而不是使用 GRUB,因为它的二进制文件默认安装到本地 EFI 系统分区 ( )。正常安装后,安装systemd-boot
bootctl --path=/boot install
并重新启动。
答案3
如果你想安装 arch ,请访问https://archlinux.org/您将找到更新的信息以及更多所需的信息。但是,您应该在“mkinitcpio -p linux”之前安装“hfsprogs”[1]
1-https://wiki.archlinux.org/index.php/Mac
2-https://wiki.archlinux.org/index.php/MacBookPro7,1
如果您能够登录 Mac,请安装 rEFInd 并让它搜索已安装的操作系统。
3-https://www.rodsbooks.com/refind/installing.html
请务必备份您的数据。