MacbookAir '11 上的 Arch/OSX 双启动

MacbookAir '11 上的 Arch/OSX 双启动

我已经关注了这个指导关于如何设置 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

请务必备份您的数据。

相关内容