通过正常流程安装了 Arch
/dev/sda1 作为 ESP 挂载在 /boot , /boot/EFI/grub/grub.efi 存在
启动管理方式为 grub + efibootmgr
每次关机之后,都必须手动选择 boot from file,然后选择 grub.efi, 无法自动加载 Arch 的引导
请问这种情况可能是哪里出了问题,应该怎么解决
1 julyclyde 2017-03-10 21:33:26 +08:00 /boot/EFI/ 必须是 FAT (或者叫 EFI )格式的分区 |
![]() | 2 takeoffyoung OP @julyclyde /boot/EFI 必须是一个分区么? |
![]() | 3 takeoffyoung OP @julyclyde 是不是应该直接把 sda1 挂载到 /boot/EFI 而不是挂载到 /boot ? |
![]() | 4 takeoffyoung OP |
![]() | 5 takeoffyoung OP |
![]() | 6 takeoffyoung OP <img src="http://p1.bqimg.com/567571/7031e2eda763f710.png" /> |
![]() | 7 yunshansimon 2017-03-10 22:15:34 +08:00 via iPad 使用 UEFI 磁盘必须整个用 gpt 分区格式。建立一个 fat 格式的分区, label 是 EFI ,加可引导标识 bootable 。把编译好的 efi 文件放到分区的根目录就好了。如果有配置文件,放到编译 efi 文件时设定的目录,一般跟 efi 文件放一起,或者放 /grub 目录下( EFI 的分区)。内核命令行设定加载 root 分区。 |
![]() | 8 kokutou 2017-03-10 22:23:04 +08:00 /boot/EFI/boot/bootx64.efi 有吗? bios 是先找这个文件。。。 |
![]() | 9 kokutou 2017-03-10 22:24:39 +08:00 grub 按照 arch wiki 上的 uefi 的命令装,我实体机装过。没问题。 grub 安装的时候有参数指定复制的引导文件类型,和目标位置。 |
10 julyclyde 2017-03-10 23:07:26 +08:00 /boot 如果是独立 FAT 分区也可以;最低要求是 /boot/EFI/ 是独立分区 centos 安装程序如果检测到不合适的情况会提示;其它发行版不了解是否会 |
![]() | 11 takeoffyoung OP |
![]() | 12 takeoffyoung OP @julyclyde 我的做法是,/boot 是独立分区,不清楚 efibootmgr 生成的 efi 文件应该指定在哪里才能在开机的时候读取到呢? |
![]() | 13 kokutou 2017-03-10 23:36:22 +08:00 @takeoffyoung #11 https://wiki.archlinux.org/index.php/GRUB#UEFI_systems # grub-install --target=x86_64-efi --efi-directory=esp_mount --bootloader-id=grub UEFI firmware workaround 《《《《《《 # mkdir esp/EFI/boot # cp esp/EFI/grub_uefi/grubx64.efi esp/EFI/boot/bootx64.efi |
![]() | 14 takeoffyoung OP @kokutou 似乎并没有解决问题。 我还是先去仔细了解一下原理再去解决这个问题吧 |
15 Biggulu 2017-03-11 10:10:45 +08:00 /boot/EFI/boot/bootx64.efi vbox 识别的引导路径是这个,检查下你的文件名还有路径 |
16 julyclyde 2017-03-11 11:23:16 +08:00 @takeoffyoung 不止是独立的问题,关键是要 FAT 格式,才能被 UEFI 识别 |
![]() | 17 takeoffyoung OP |
18 Biggulu 2017-03-11 17:09:07 +08:00 @takeoffyoung 贴下 sda1 的格式类型,还有 bootx64.efi 的文件信息看看 |
![]() | 19 takeoffyoung OP  |