无忧启动论坛

 找回密码
 注册
搜索

UEFI下关于USB设备的默认引导文件

查看数: 25524 | 评论数: 72 | 收藏 8
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-4-26 15:31

正文摘要:

本帖最后由 liuzhaoyzz 于 2020-4-26 15:54 编辑 一个优盘是MBR分区,只有一个激活的FAT32主分区,里面有efi引导文件。 G:\EFI ├─boot │      bootx64.efi │     &nb ...

回复

gbzx 发表于 2020-12-29 22:32:17
hilsonma 发表于 2020-12-29 16:47
你的是技嘉主板,优先 \EFI\Microsoft\Boot\bootmgfw.efi (Windows Boot Manger),没有bootmgfw.efi的 ...

应该是跟你说的一样,我用bootice工具查过,二个启动项对应不同文件夹的启动文件
hilsonma 发表于 2020-12-29 20:13:28
cchessbd 发表于 2020-12-29 18:16
这个应该是uefi固件对应的启动文件不一样。bootmgr.efi为(usb)硬盘类启动文件,与windows bootmanager启动 ...

其实关于uefi默认引导文件的问题已经多次反复回贴讨论,
也可参考我53楼的总结
还有疑问的建议耐心通读一次所有回贴,有不同经历体验的再发贴。
cchessbd 发表于 2020-12-29 18:16:03
本帖最后由 cchessbd 于 2020-12-29 18:21 编辑

这个应该是uefi固件对应的启动文件不一样。bootmgr.efi为(usb)硬盘类启动文件,与windows bootmanager启动项对应。u盘/光盘启动(模拟软盘)则对应bootx64.efi。uefi会启动相应的文件。至于删除后再添加,没试过这样干。
总之,移动硬盘uefi启动,你把他当做本地硬盘就行。当然,他启动bootmgr.efi后,好像会直接启动本地硬盘的windows。所以我猜,如果把bootmgr.efi替换为bootx64.efi,应该可以达到一样的从u盘启动的效果。当然我并没有这样试验。我大部分时间都是从bios启动。uefi启动仅测试了u盘,以及量产光驱。

点评

其实关于uefi默认引导文件的问题已经多次反复回贴讨论, 也可参考我53楼的总结 还有疑问的建议耐心通读一次所有回贴,有不同经历体验的再发贴。  详情 回复 发表于 2020-12-29 20:13
hilsonma 发表于 2020-12-29 16:47:06
本帖最后由 hilsonma 于 2020-12-29 16:50 编辑
gbzx 发表于 2020-12-20 11:54
我的电脑只要保留任何一个都能启动

你的是技嘉主板,优先 \EFI\Microsoft\Boot\bootmgfw.efi (Windows Boot Manger),没有bootmgfw.efi的情况下也接受 \EFI\Boot\bootx64.efi (UEFI OS)

你可以尝试将efi分区里的 \EFI\Boot\bootx64.efi 改名,然后重启,这时选择 UEFI OS 应该会无法启动。选择其他选项启动后,使用bootice等工具将 UEFI OS 启动项删掉,这时再将 \EFI\Boot\bootx64.efi 恢复回来,再重启,就不会生成 UEFI OS 这个启动项了 (因为已经有了bootmgfw.efi).

如果这时再将efi分区的 \EFI\Microsoft\Boot\bootmgfw.efi 改名,重启后就会出现 UEFI OS 启动项,因为这时没有了bootmgfw.efi ,所以固件重新识别 bootx64.efi 为UEFI OS。

改的时候要确保有 \EFI\Microsoft\Boot\bootmgfw.efi 或 \EFI\Boot\bootx64.efi 其中一个存在,不然会无法启动,发生这种情形的话就只能使用U盘启动后恢复这两个文件至少恢复其中一个。

点评

应该是跟你说的一样,我用bootice工具查过,二个启动项对应不同文件夹的启动文件  详情 回复 发表于 2020-12-29 22:32
gbzx 发表于 2020-12-20 11:54:23
liuzhaoyzz 发表于 2020-4-26 16:50
有没有网友碰到必须要\EFI\Microsoft\Boot\bootmgfw.efi才能启动的?就是不要这个就无法启动。
不能从ef ...

我的电脑只要保留任何一个都能启动

点评

你的是技嘉主板,优先 \EFI\Microsoft\Boot\bootmgfw.efi (Windows Boot Manger),没有bootmgfw.efi的情况下也接受 \EFI\Boot\bootx64.efi (UEFI OS) 你可以尝试将efi分区里的 \EFI\Boot\bootx64.efi 改名,  详情 回复 发表于 2020-12-29 16:47
xciao 发表于 2020-12-3 20:22:54

确实烦人还么有快捷的信任按钮,麻烦得很
2011whp 发表于 2020-12-3 13:50:47
本帖最后由 2011whp 于 2020-12-6 10:02 编辑

微软    会不会把 系统安装在 esp分区,尤其是ARM版(猜测 比如  win10X 的第三个版本)



2011whp 发表于 2020-12-3 12:31:52
这个问题  只能说是  微软店大,人家已经和 uefi  并行了

也就是 bios 预启动 包含两个方案:1.  uefi标准的,这个检测U盘的,  2.  微软的方案,这个只检测内部存储的

微软方案,我的验证是这样的: bios→  bcd (实际是一个分部设定)→bootmgfw
                  只是从表象上看是:bios→bootmgfw
2011cwj6958 发表于 2020-12-1 15:21:25
本帖最后由 2011cwj6958 于 2020-12-1 15:35 编辑

bootx64.efi启动不了是没有安全认证,关闭安全启动或者导入证书就可以  有安全认证是可以启动
相当一部分主板硬盘没有Windows 系统,就会启动bootx64.efi  有Windows系统就会优先启动  微软太霸道了,总是win系统优先,就算是修改UEFI引导序列,一旦运行win系统,win系统又是第一启动
liuzhaoyzz 发表于 2020-11-30 16:29:28
本帖最后由 liuzhaoyzz 于 2020-11-30 16:34 编辑
xianglang 发表于 2020-11-30 16:02
还真是这样,硬盘上直接只认微软的,根本不认BOOTX64这个——不过我是在安装了 Windows 系统的硬盘上试, ...

19楼
http://bbs.wuyou.net/forum.php?m ... 7060&fromuid=298214

对于本地硬盘,一般地来说应该不会不认bootx64.efi,只是有个优先级的问题。如果没有bootmgfw.efi,但是存在bootx64.efi,主板也会自动识别bootx64.efi并添加到引导序列中,要知道除了microsoft的bootmgfw.efi,bootx64.efi也是UEFI在硬盘引导的规范之中,除非主板不支持、不兼容UEFI规范,这种可能性有,但是不大,比如wintoflash说的,微软的surface平板,还有hilsonma说到的例子,就只认微软他自己的bootmgfw.efi,不会自动识别bootx64.efi,这样的例子我感觉还是不多。当然大家讨论的都是自动添加的情况,手工添加UEFI引导序列另当别论。

点评

没有Windows 系统,就会启动bootx64.efi 有Windows系统就会优先启动 硬盘微软太霸道了,相当一部分主板总是win系统优先,就算是修改UEFI引导序列,一旦运行win系统,win系统又是第一启动  详情 回复 发表于 2020-12-1 15:21
xianglang 发表于 2020-11-30 16:02:06
hilsonma 发表于 2020-11-29 19:08
你没仔细阅读我们之前的贴子内容

还真是这样,硬盘上直接只认微软的,根本不认BOOTX64这个——不过我是在安装了 Windows 系统的硬盘上试,不知道全新硬盘会不会是这样。

点评

19楼 http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=420214&pid=4047060&fromuid=298214 应该不会不认bootx64.efi,只是有个优先级的问题。如果没有bootmgfw.efi,但是存在bootx64.efi,主板  详情 回复 发表于 2020-11-30 16:29
hilsonma 发表于 2020-11-29 19:08:28
xianglang 发表于 2020-11-29 18:04
我特意试了下,U 盘 EFI 分区里有 /EFI/MICROSOFT/BOOT/BOOTMGFW.EFI 文件,但是当将 /EFI/BOOT/BOOTX64.EF ...

你没仔细阅读我们之前的贴子内容

点评

还真是这样,硬盘上直接只认微软的,根本不认BOOTX64这个——不过我是在安装了 Windows 系统的硬盘上试,不知道全新硬盘会不会是这样。  详情 回复 发表于 2020-11-30 16:02
hilsonma 发表于 2020-11-29 19:03:19
ko20010214 发表于 2020-11-29 12:34
谢谢你的回复。解答很详尽。
现在有另一个问题,Ia32环境怎么启动G4E呢?
bootia32.efi应该用谁来替代 ...

ia32平台使用g4e的ia32版本 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=421866
但不知yaya现在有没有继续这个版本,因为确实用的机会不多,你可以到该贴跟yaya互动。
xianglang 发表于 2020-11-29 18:04:36
我特意试了下,U 盘 EFI 分区里有 /EFI/MICROSOFT/BOOT/BOOTMGFW.EFI 文件,但是当将 /EFI/BOOT/BOOTX64.EFI 文件改名不存在时,选择这个 U 盘启动就会弹回启动设备选择对话框,可见在没有安装 Windows 系统修改过 UEFI 启动内容的磁盘(硬盘、U盘、光盘等),还是默认只是搜寻 /EFI/BOOT/BOOTX64.EFI 而非微软之类其他名字的 EFI 文件。

点评

你没仔细阅读我们之前的贴子内容 [attachimg]469451[/attachimg]  详情 回复 发表于 2020-11-29 19:08
ko20010214 发表于 2020-11-29 12:34:33
hilsonma 发表于 2020-11-28 16:28
光盘中需要软盘镜像来实现UEFI引导

要用g4e代替光盘的引导文件操作如下:

谢谢你的回复。解答很详尽。
现在有另一个问题,Ia32环境怎么启动G4E呢?
bootia32.efi应该用谁来替代呢

点评

ia32平台使用g4e的ia32版本 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=421866 但不知yaya现在有没有继续这个版本,因为确实用的机会不多,你可以到该贴跟yaya互动。  详情 回复 发表于 2020-11-29 19:03
hilsonma 发表于 2020-11-28 16:28:05
ko20010214 发表于 2020-11-28 13:54
光盘中需要哪些文件才能实现UEFI引导?
如果要用G4E代替光盘的引导文件要怎么操作?
我直接把G4E的bootx6 ...

光盘中需要软盘镜像来实现UEFI引导

要用g4e代替光盘的引导文件操作如下:
先在光盘待打包的目录中找到软盘镜像,一般是efi.img或efisys.bin之类的文件
使用winimage之类的工具将g4e的bootx64.efi 替换到这个镜像里的 \efi\boot\bootx64.efi
在光盘待打包的目录里放入 efi\grub\menu.lst
如果是图形模式还要放入字体文件 efi\grub\unifont.hex.gz
将待打包的目录重新打包成iso文件

直接把bootx64.efi当成no_emul.01是没法启动的,no_emul.01是由iso制作软件根据软盘镜像自动生成的,一般不要手动更改。

替换到efi.img里后可以启动但菜单缺少英文字母显示,可尝试将yaya提供的字体文件放到光盘目录 \efi\grub中

no_emul.00的大小只有2048字节,那是只将grldr的前面的2048字节写到光盘引导 no_emul.00 中,这个no_emul.00会引导光盘根目录的grldr,并显示内置菜单,或者根据内置菜单的定义查找相应的外部菜单再显示。

no_emul.01的大小是efi.img的大小,是的,这才是正确的,iso制作软件会把efi.img写到iso的no_emul.01,而会把grldr的前面一部分(一般建议是4扇区)写到no_emul.00

删除了booti32.efi 用小的bootx64.efi替换掉大的,img文件反而变大,那是你使用的软件的设置问题。
比如winimage,可能原先的大小是非标格式,把空闲空间压缩了,而你操作的时候是不压缩空闲空间,使用标准的1.44M或2.88M,这样,不管里面的文件大小,img文件都固定是1.44M或2.88M

点评

谢谢你的回复。解答很详尽。 现在有另一个问题,Ia32环境怎么启动G4E呢? bootia32.efi应该用谁来替代呢  详情 回复 发表于 2020-11-29 12:34
liuzhaoyzz 发表于 2020-11-28 15:00:14
ko20010214 发表于 2020-11-28 13:54
光盘中需要哪些文件才能实现UEFI引导?
如果要用G4E代替光盘的引导文件要怎么操作?
我直接把G4E的bootx6 ...

很久没用过实体光驱进行引导了。所以回答不了你的问题。
ko20010214 发表于 2020-11-28 13:54:04
本帖最后由 ko20010214 于 2020-11-28 14:30 编辑

光盘中需要哪些文件才能实现UEFI引导?
如果要用G4E代替光盘的引导文件要怎么操作?
我直接把G4E的bootx64.efi当作no_emul.01 没法启动。把它替换掉efi.img里的bootx64.efi可以启动我的Grub4Efi的菜单。但还是和VM里一样,菜单缺少英文字母显示……
而且 1. 我看no_emul.00的大小也只有2048字节,并不是GRLDR的332292字节,但在BIOS引导时可以正确出来我那个定制的内置菜单。这是不是说明它只写了4个扇区的数据,指向了根目录下的GRLDR,从而引导了它?
        2. 我看no_emul.01的大小倒是有2949120字节,这是我这个替换了bootx64.efi的EFI.img文件的大小。

另一奇怪的事是,我删除了booti32.efi,而且我的bootx64.efi才401K,替换掉那个1M多的文件,怎么IMG文件反而变大了?原来是2322432字节。

点评

光盘中需要软盘镜像来实现UEFI引导 要用g4e代替光盘的引导文件操作如下: 先在光盘待打包的目录中找到软盘镜像,一般是efi.img或efisys.bin之类的文件 使用winimage之类的工具将g4e的bootx64.efi 替换到这个镜  详情 回复 发表于 2020-11-28 16:28
很久没用过实体光驱进行引导了。所以回答不了你的问题。  详情 回复 发表于 2020-11-28 15:00
江南一根葱 发表于 2020-11-22 13:51:31
很多时候移动硬盘启会认成是本地硬盘,uefi时代估计也还有“可移动磁盘”的概念
以前量产u盘,不是有量产成“可移动磁盘”和量产成“本地盘”吗,
我估计就是这个原因。
还有就是,我发现有的主板同样也认ntfs里的efi
进士小站 发表于 2020-11-22 09:01:56
hilsonma 发表于 2020-11-21 16:46
UEFI论坛的创始者可参见 https://www.uefi.org/members
可分三类:硬件商、软件商、固件商。
软件商只有 ...

感谢分享
学习了
可以试试多引导
hilsonma 发表于 2020-11-21 16:46:00
UEFI论坛的创始者可参见 https://www.uefi.org/members
可分三类:硬件商、软件商、固件商。
软件商只有一家:Microsoft
所以UEFI默认硬盘上的引导文件为 \EFI\Microsoft\Boot\bootmgfw.efi ,识别为Windows Boot Manager

UEFI默认U盘上的引导文件为 \EFI\Boot\bootx64.efi (64位平台,其他平台类推,如bootia32.efi等。)

有的主板在硬盘找不到 \EFI\Microsoft\Boot\bootmgfw.efi 时也会识别 \EFI\Boot\bootx64.efi 为 UEFI OS (64位平台,其他平台下的文件名依此类推,同U盘一样。)

有的主板则完全由用户指定硬盘上的引导文件,需要在UEFI画面中设置。

至于UEFI引导文件所在的分区,一般要求FAT分区,也有的主板支持NTFS分区等。

以上所述,都是由固件决定的,所以只要搞掂固件就可以自主更改。

点评

学习了。感谢指点。  发表于 2020-11-28 13:48
感谢分享 学习了 可以试试多引导  详情 回复 发表于 2020-11-22 09:01
hilsonma 发表于 2020-11-5 15:38:51
窄口牛 发表于 2020-11-5 09:30
直达楼层
我是说有方法可以让自己凌驾于微软默认路径之上,搞明白知会一下,我没能力搞明白,你试试。

主板固件允许你搞才有得搞,主板固件不允许的话你必须先刷固件。刷固件我不懂,不敢搞。

我目前接触过的电脑就只有dell 是可以而且好象也必须是手动添加启动项的,当然也是可以调整优先使用自己添加的启动项的。
窄口牛 发表于 2020-11-5 10:04:50
OpenCore,好像是开源软件,基于c和c++夹杂了py。
开源地址
那看哪位看懂的研究吧。
liuzhaoyzz 发表于 2020-11-5 09:55:42
窄口牛 发表于 2020-11-5 09:30
直达楼层
我是说有方法可以让自己凌驾于微软默认路径之上,搞明白知会一下,我没能力搞明白,你试试。

搞不懂这个,搞不过微软。
窄口牛 发表于 2020-11-5 09:30:09
直达楼层
我是说有方法可以让自己凌驾于微软默认路径之上,搞明白知会一下,我没能力搞明白,你试试。

点评

主板固件允许你搞才有得搞,主板固件不允许的话你必须先刷固件。刷固件我不懂,不敢搞。 我目前接触过的电脑就只有dell 是可以而且好象也必须是手动添加启动项的,当然也是可以调整优先使用自己添加的启动项的。  详情 回复 发表于 2020-11-5 15:38
搞不懂这个,搞不过微软。  详情 回复 发表于 2020-11-5 09:55
liuzhaoyzz 发表于 2020-11-5 07:59:38
窄口牛 发表于 2020-11-5 00:32
你想研究明白这个问题,你可以看看我最近在苹果区的一个帖子里,发布的oc引导设置说明,那一项可以让它始终 ...

哪个帖子?
其实已经很明确了,只不过不同的电脑,差别还是很大的。
窄口牛 发表于 2020-11-5 00:32:14
你想研究明白这个问题,你可以看看我最近在苹果区的一个帖子里,发布的oc引导设置说明,那一项可以让它始终排在第一,优于win的路径。

点评

哪个帖子? 其实已经很明确了,只不过不同的电脑,差别还是很大的。  详情 回复 发表于 2020-11-5 07:59
hilsonma 发表于 2020-6-2 06:21:34
本帖最后由 hilsonma 于 2020-6-2 13:32 编辑
liuzhaoyzz 发表于 2020-6-1 20:00
那按照你说的这个结论,固态优盘和移动硬盘应该归到哪一类呢?

固态优盘我没有试过,不知道。
我接触过的SATA固态和NVME固态跟普通硬盘同一类。

移动硬盘我也没有试过,看你1楼的贴图,属于硬盘类。

我的移动硬盘没有\EFI\Microsoft\Boot\bootmgfw.efi,存在\EFI\Boot\bootx64.efi,uefi启动没问题。

硬盘优先识别 \EFI\Microsoft\Boot\bootmgfw.efi,部分主板在没有bootmgfw.efi的情况下也会识别bootx64.efi,但有部分主板不会识别bootx64.efi,没有bootmgfw.efi就不能uefi启动。
你的主板属于优先识别bootmgfw.efi,没有bootmgfw.efi就识别bootx64.efi 的那一类。

你可以做以下尝试验证:
在UEFI引导序列中,把关于该移动硬盘的启动项删掉
把移动硬盘中的启动文件夹 \EFI\Microsoft 改名为 \EFI\Micrfosoft1
重启看是不是该移动硬盘的 \EFI\Boot\bootx64.efi 识别为 UEFI OS

然后再把 \EFI\Microsoft1 改回 \EFI\Microsoft
重启后是不是再次识别添加 \EFI\Microsoft\Boot\bootmgfw.efi 为 Windows Boot Manager

再次在UEFI启动序列中把该移动硬盘的启动项删掉,bootx64.efi 和 bootmgfw.efi 的路径保持不变
重启后是不是只识别 bootmgfw.efi 为 Windows Boot Manger ,而不再识别bootx64.efi

至于手工添加,不在我描述的范围。而我接触的几台电脑都是不支持手工添加的。


重述一遍:

UEFI启动序列中显示为  UEFI:型号  那就是U盘类,如果显示为  UEFI OS  或  Windows Boot Manager  就是硬盘类。

U盘识别 \EFI\Boot\bootx64.efi 为 UEFI:型号
硬盘识别 \EFI\Microsoft\Boot\bootmgfw.efi 为 Windows Boot Manager。
    部分主板在硬盘ESP没有 \EFI\Microsoft\Boot\bootmgfw.efi 的情况下会识别 \EFI\Boot\bootx64.efi 为 UEFI OS ,但有部分主板不会识别bootx64.efi,没有bootmgfw.efi就不能uefi启动。

硬盘在已识别bootx64.efi的情况下添加bootmgfw.efi会继续识别添加启动项,而已识别bootmgfw.efi的情况下添加bootx64.efi会被忽略不再添加启动项。

点评

不是的,我的移动硬盘被识别为优盘类。识别 \EFI\Boot\bootx64.efi 为 UEFI:型号 碰到一台HP台式机,无论是优盘还是移动硬盘,只认\EFI\Boot\bootx64.efi,按F9快速启动项优盘和移动硬盘都被识别为  详情 回复 发表于 2020-11-4 11:44
wintoflash 发表于 2020-6-1 20:21:12
liuzhaoyzz 发表于 2020-6-1 20:00
那按照你说的这个结论,固态优盘和移动硬盘应该归到哪一类呢?

我的移动硬盘没有\EFI\Microsoft\Boot\ ...

我以前用的 Surface 就是只能 /EFI/Microsoft/Boot/bootmgfw.efi。
所以,最佳解決方案:
所有的磁盘,bootx64.efi 和 bootmgfw.efi 各放一份。

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-29 23:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表