在 Mac Book 上三次启动 [几乎就在那里];引导加载程序问题

use*_*367 5 bootloader grub arch-linux macbook-pro uefi

这是我当前的 GPT/MBR 分区表:

Current GPT partition table:
 #      Start LBA      End LBA  Type
 1             40       409639  EFI System (FAT)
 2         409640    663646255  Mac OS X HFS+
 3      663646256    664915791  Mac OS X Boot
 4      664915968   1164914687  Basic Data
 5     1164914688   1169649663  Linux Swap
 6     1169649664   1465149134  Unknown

Current MBR partition table:
 # A    Start LBA      End LBA  Type
 1              1       409639  ee  EFI Protective
 2         409640    663646255  af  Mac OS X HFS+
 3      663646256    664915791  ab  Mac OS X Boot
 4 *    664915968   1164914687  07  NTFS/HPFS
Run Code Online (Sandbox Code Playgroud)

以上是我从 Mac OS X 上的“分区检查器”中获得的信息。情况如下:

分区 2:我安装了 Mac OS X 10.7 分区4:我安装了 Windows 8 Release Preview 分区6:我安装了 Arch(没有引导加载程序)

我已经安装了 rEFIt。

这就是我能做的:

  1. 使用 rEFIt 启动到 Mac 和 Windows。
  2. 启动到我的 USB 驱动器上的 Arch 设置,然后 chroot 进入已安装的系统。

这是我无法做到的:

  1. 引导到已安装的 Arch 系统和/或安装引导加载程序。

所以我基本上需要的是安装一个引导加载程序。我按照 Arch 手册中给出的说明进行操作,但同时安装 grub-bios 和 grub-efi-x86_64 不起作用。

  1. 安装 grub-bios 会出现错误“无法识别 /dev/sda 上的文件系统”,而 grub-efi-x86_64 会出现错误,提示“致命:无法打开 sysfs 或 procfs 目录以访问 EFI 变量”。以 root 身份尝试“modprobe efivars”。我试过了mod probe efivars,但这对情况没有帮助。运行命令时出现上述错误:

    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck

我的基本问题是我有哪些选项可以设置我的三重启动..因为我快到了。

PS 我可以简单地从 rEFIt 启动吗?就像我如何通过指定 root、kernel 和 initrd 参数从 grub 中做到这一点一样?

pil*_*ona 0

您不需要在此处安装 Arch 的引导加载程序。EFISTUB已经在内核中存在很长时间了。您可以直接从 rEFIt 启动它,但您确实应该使用 rEFInd。另外,请停止使用GRUB 2,尤其是盲目使用。

  1. 将 linux 内核映像和 initramfs(假设您正在 initramfs 引导,但如果您真的知道自己在做什么,则可能不知道)放在 ESP 上。
  2. 配置您最终选择的任何 EFI 启动管理器,还允许您选择启动 Arch Linux。在我的/EFI/archlinux/archlinux.conf(从Mac上看,没有单独的ESP,文件包含在/EFI/refind/refind.conf)中,我有类似以下内容的内容。

    menuentry "Arch Linux custom kernel" {
        icon EFI/refind/icons/os_arch.png
        loader EFI/archlinux/vmlinuz-linux
        initrd EFI/archlinux/initramfs-linux.img
        options "root=/dev/mapper/fastvg-rootlv ro"
    
        submenuentry "fallback" {
            initrd EFI/archlinux/initramfs-linux-fallback.img
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

相应地进行调整。

在盲目遵循说明之前,请先了解引导加载程序和引导管理器是什么。以下是有关 EFI 的一些建议阅读内容

efivarsArch Linux 已经有相当长的时间没有使用了。它甚至不在库存内核配置中。efivarfs无论如何应该已经安装了。