UEFI启动文件bootx64.efi的定制
本帖最后由 hilsonma 于 2019-7-21 05:36 编辑
现在UEFI平台的启动,一般都是UEFI引导第一个FAT分区或FAT32分区的 \efi\boot\bootx64.efi ,再由bootx64.efi 启动操作系统。
要想启动多系统,比如要启动PE,其中一个办法就是定制bootx64.efi 。
下面分享一个定制bootx64.efi 的方法。
首先,到Pauly的贴子 【XORBOOT Uefi: 多系统引导程序】 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=157812 下载XorBootUx64
下载解压后运行XorBootUx64
点击 UEFI启动序列管理
再点击 导出XorBoot.efi
选择 BootX64.efi
在弹出的另存为 窗口中选择一个文件夹,点击保存,这个文件夹中就会生成一个 bootx64.efi
接下来的提示 “要添加到...吗?” 点是,点确定,勾选 下一次启动该项目,点 保存当前启动项设置
关闭 UEFI启动序列 窗口
点击 新建菜单 ,会弹出 XORBOOT菜单编辑 窗口,并自动生成一个菜单供预览
点击 保存,将菜单文件命名为xorboot.xor 并保存到上面生成的bootx64.efi 所在的分区,文件夹为 \efi\xorboot\
关闭 XORBOOT菜单编辑 窗口
点击 打开菜单,找到刚才保存的xorboot菜单,点击其中某个菜单项,就可以定义你想要的启动,也可以添加/删除/移动 菜单项。在全局设置里可以设置菜单停留的时间。
菜单修改好之后,重启,如果出现你编辑过的xorboot菜单,就OK了。
如果没有出现xorboot菜单,可能你的主板不支持从你存放xorboot.xor的分区启动,检查这个分区是不是FAT分区,不是的话用diskgenius检查你的硬盘有没有FAT分区,没有就在硬盘后面新建一个,要求是主分区,并且将分区参数改为EF,然后将启动文件 bootx64.efi 放到这个分区的 \efi\boot\ ,将菜单文件 xorboot.xor 放到这个分区的 \efi\xorboot\ ,重新启动后就会出现xorboot菜单。
注意,如果开启了安全启动(secureboot)的话要关掉,因为这个bootx64.efi是不能过安全启动的。
=============
过安全启动的定制
=============
方法来自 wintoflash 的贴子:安全启动环境下启动任意未签名EFI的方法 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413396
xorboot启动文件 \efi\boot\bootx64.efi 改名为 grubfmx64.efi
将附件解压得到的4个文件放到 \efi\boot\
secureboot.7z(528.04 KB, 下载次数: 329)
重新启动后首先会进入 Shim 验证失败的界面
按任意键进入导入证书的界面
选择 Enroll key from disk
找到 GRUBFM.cer
选择 Continue
选择 Yes
在之后的菜单中选择 Reboot ,重启计算机。
注意:压缩文件里面的 EFI 文件不可改名,不可以放到其他文件夹下,不可修改内容,否则无效。GRUBFM.cer 为证书文件,可以改名,不可修改内容。
导入证书后会保存在nvram中,只要不清nvram,以后启动不再出现验证失败画面,直接过安全启动。
注意现在 \efi\boot\bootx64.efi 不再是xorboot生成的启动文件,而是Shim的主程序,xorboot生成的启动文件已更名为grubfmx64.efi (Shim+mok启动方案必须是这个名字才能引导成功)。
除了使用xorboot定制外,还可以使用grub2, refind等工具,使用grub2定制请参考http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413597