这是我当前的 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
以上是我从 Mac OS X 上的“分区检查器”获得的信息。情况如下:
分区 2:我安装了 Mac OS X 10.7 分区 4:我安装了 Windows 8 Release Preview 分区 6:我安装了 Arch(无引导加载程序)
我已经安装了 rEFIt。
这是我能做的:
- 使用 rEFIt 启动 Mac 和 Windows。
- 启动我的 USB 驱动器上的 Arch 设置并 chroot 到已安装的系统。
这是我无法做到的:
- 启动已安装的 Arch 系统和/或安装引导加载程序。
所以我基本上需要安装一个引导加载程序。我按照 Arch 手册中的说明进行操作,但安装 grub-bios 和 grub-efi-x86_64 不起作用。
安装 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
我的基本问题是我有哪些选项可以设置我的三重启动...因为我快完成了。
附言 我是否可以直接从 rEFIt 启动?就像我通过指定 root、kernel 和 initrd 参数从 grub 启动一样?
答案1
您不需要在这里为 Arch 安装引导程序。EFISTUB
已经在内核中存在很长时间了。您可以直接从 rEFIt 启动它,尽管您确实应该使用 rEFInd。另外,请停止使用 GRUB 2,尤其是盲目使用。
- 将 Linux 内核映像和 initramfs(假设您正在进行 initramfs 启动,但如果您真的知道自己在做什么,可能就不是这样了)放在 ESP 上。
配置您最终选择的任何 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 } }
进行相应调整。
在盲目遵循说明之前,请先了解什么是引导加载程序和引导管理器。以下是一些关于 EFI 的建议阅读材料
- http://www.rodsbooks.com/efi-bootloaders/principles.html
- http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/efi-boot-process.html
- http://www.rodsbooks.com/efi-bootloaders/efistub.html
- http://www.rodsbooks.com/efi-bootloaders/index.html
- http://www.rodsbooks.com/bios2uefi/index.html
efivars
Arch Linux 已经很久没有使用它了。它甚至不在原有的内核配置中。efivarfs
无论如何都应该已经安装好了。