通过正常流程安装了 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 ![]( http://imgur.com/a/joHJ7)
|