无忧启动论坛

标题: UEFI模式下,bios的引导菜单这儿的名字是怎么去定义的? [打印本页]

作者: yurrr7    时间: 2022-9-19 15:51
标题: UEFI模式下,bios的引导菜单这儿的名字是怎么去定义的?
本帖最后由 yurrr7 于 2022-9-19 15:53 编辑

是这样的,就是我们部署win10系统加一个Linux系统,但它的名字在bios中是固定的【不管是哪个主板的bios都是显示这个】,如UEFI OS
我查看了它对标的文件是:efi\boot\bootx64.efi这个文件
1、我主动删除它,bios中启动时是没有显示引导项了
2、把整个系统的所有的文件删除,只留bootx64.efi,重启后,bios中还是有显示这个引导的,只是会失败

问题:这个UEFI OS 或Windows boot manager理论来说,它是传出一个名字而已,这个名字有没有办法我自己来定义

如:UEFI OS 改为:123 等。

2.jpg (1.04 MB, 下载次数: 189)

2.jpg

1.jpg (557.19 KB, 下载次数: 198)

1.jpg

bootx64.rar

316.17 KB, 下载次数: 7, 下载积分: 无忧币 -2


作者: hilsonma    时间: 2022-9-19 16:38
本帖最后由 hilsonma 于 2022-9-19 16:44 编辑

视乎主板固件。如果主板固件让你改你就可以改,如果主板固件没有提供这个功能就不可以改。

一般都是主板固件自动识别的,类似你所描述,
\EFI\Microsoft\Boot\bootmgfw.efi 识别为 Windows Boot Manager,
硬盘上的 \EFI\Boot\bootx64.efi 识别为 UEFI OS,
U盘上的 \EFI\Boot\bootx64.efi 识别为 UEFI: U盘型号
诸如此类。

用bootice这类工具可以修改显示的菜单项名称,但如果主板固件不允许修改的话,你的修改是无效的,无法保存的。如果修改有效,那么重启后就会显示你修改之后的菜单项名称。

有的主板固件里直接可以改,我的印象中好象戴尔是可以修改的。
作者: captain_g    时间: 2022-9-19 16:59
出现4个选项,一个是SEHLL,一个是U盘,这好理解;
128G的硬盘有两个,主要是ESP分区中有两个EFI文件:
efi\boot\bootx64.efi
efi\microsoft\boot\bootmgfw.efi
前者是从硬盘启动OS的,就看EFI是谁家的,如果是MS家的它就能根据BCD配置启动Windows;
后者只能启动Windows;

这些东西存在主板的NVRAM中,不存在的,比如拔掉的U盘对应的东西,重启一次或两次后就自动消失掉了;
但有一些主板,可能不太完美吧,经常会导致NVRAM中有残存不存在的东西,或者出现重复项目;
微软以前有文档专门说该如何清除重复项,如果是Windows还直接与硬盘中的BCD有关;
所以一般不要轻易执行BCDBOOT玩;

作者: szwp    时间: 2022-9-19 17:53
bcdedit /set {bootmgr} description WBMA
作者: likeyouli    时间: 2022-9-19 17:55
窄口牛 发表于 2022-9-19 16:39
easyuefi了解一下。bootice有时候也可以,不太稳定,原因未知。

用 xorboot uefi版 试下,点击 uefi启动管理,可更改uefi启动序列的名称
作者: yurrr7    时间: 2022-9-19 18:31
hilsonma 发表于 2022-9-19 16:38
视乎主板固件。如果主板固件让你改你就可以改,如果主板固件没有提供这个功能就不可以改。

一般都是主板 ...

这儿不是通过改bootx64.efi或别的方法来实现这个名字的自定义么,通过BOOTICEx64这个工具确实可以自定义,但是第一个主板都要改,不是很理想,最理想的办法是直接改bootx64.efi文件,来达到这个目的,越研究越感觉进到黑洞。我可以通过Resource Hacker挂windows10 下的efi\boot\bootx64.exe并且也可以找到windows boo manager的关键字。试着改一下,启动时就提示需要数字签名
1、从我的直觉来说,这个windows boot manager是被这个bootx64.efi定义的,也就是可以改的
2、所以说硬盘上的这个linux的bootx64.efi一定也是可以改的。只是Resource Hacker工具挂载时,是一片白
作者: yurrr7    时间: 2022-9-19 18:32
窄口牛 发表于 2022-9-19 16:39
easyuefi了解一下。bootice有时候也可以,不太稳定,原因未知。

本机改是可以生效,我是考虑如部署100台,或更多,不想通过改bios这个信息【不能保存,如换一个版本的系统它又会恢复】,当然如果用文件改好bootx64.efi.理论来说,它下发到任何设备上,都是我们自定义的名字
作者: yurrr7    时间: 2022-9-19 18:35
captain_g 发表于 2022-9-19 16:59
出现4个选项,一个是SEHLL,一个是U盘,这好理解;
128G的硬盘有两个,主要是ESP分区中有两个EFI文件:
e ...

我就是不能理解,为什么windows boot manager这个引导项,它是一个固定的值,而Linux也是UEFI OS固定的引导值,我还是觉得改bootx64.efi可以有一些变化 。只是一般的工具改动后,就说没有签名。系统加载就会出问题

作者: yurrr7    时间: 2022-9-19 19:00
szwp 发表于 2022-9-19 17:53
bcdedit /set {bootmgr} description WBMA

这个改完后,镜像打包,再安装到另一台,这个名字会同步过来不
作者: hilsonma    时间: 2022-9-19 19:38
yurrr7 发表于 2022-9-19 18:31
这儿不是通过改bootx64.efi或别的方法来实现这个名字的自定义么,通过BOOTICEx64这个工具确实可以自定义 ...

不是的。

bootmgfw.efi 和 bootx64.efi 这两个文件名是根据uefi规范来命名的,主板固件根据这两个文件名来识别是什么主引导。
只要是bootmgfw.efi这个文件名,不管实质是不是WBM,主板固件都会识别为WBM (Windows Boot Manager)
而bootx64.efi这个文件名,就算是bootmgfw.efi改名的,都有可能识别为 UEFI OS (U盘上就识别为 UEFI:型号)

你在这两个文件的内容里修改菜单标题那是修改这个引导的本身菜单的标题,不是主板启动设备选单的标题。
作者: szwp    时间: 2022-9-19 19:38
先得理解NVRAM
作者: szwp    时间: 2022-9-19 21:54
看懂联想开源版就能理解
作者: 坏坏小生    时间: 2022-9-19 22:12
一个修改启动序列呀,简单得很,想怎么改就怎么改,有些主板会自动删除失效的菜单
作者: 窄口牛    时间: 2022-9-19 23:27
窄口牛 发表于 2022-9-19 19:06
签名这个没必要纠结,我就不喜欢别人设计个套子,自己就往头上套。win的可能真的可以改,别的就不一定了。 ...

抱歉,我这个说的不对,bios自动加微软的引导是因为路径和efi文件名字。我的主引导是grub2,但是用了微软的路径和efi文件名字,自动加的也是wbm的名字,所以改efi文件实现引导名称应该是个假命题。
作者: yurrr7    时间: 2022-9-20 06:50
hilsonma 发表于 2022-9-19 19:38
不是的。

bootmgfw.efi 和 bootx64.efi 这两个文件名是根据uefi规范来命名的,主板固件根据这两个文件 ...

其实我的核心想法不是去改windows boot manager,而是想改UEFI OS 这个值。它是linux系统的引导一部分。可能我对这一部分还没有了解清楚
1、我能理解的就是:这个linux系统放到硬盘的最后一个区,它在bios中就会显示uefi os
2、同理,这个系统放到任何主板都会显示uefi os 【主板型号不下20款的情况下】
3、有一次,也是唯一的一次。放在“宏碁”笔记本时,会显示:【dabian OS】
基于这个原因,我在想是不是因为bios会去读这个linux [dabian版本]的引导文件。而想改uefi os 为如:123 os
作者: yurrr7    时间: 2022-9-20 06:51
szwp 发表于 2022-9-19 19:38
先得理解NVRAM

好的,先学习一下,谢谢哈
作者: yurrr7    时间: 2022-9-20 06:52
szwp 发表于 2022-9-19 21:54
看懂联想开源版就能理解

这个确实没有去深入了解,只是停留在系统级的文件去理解

作者: yurrr7    时间: 2022-9-20 06:54
坏坏小生 发表于 2022-9-19 22:12
一个修改启动序列呀,简单得很,想怎么改就怎么改,有些主板会自动删除失效的菜单

这儿改是没有问题,包括【szwp】说的命令:bcdedit /set {bootmgr} description WBMA或bcdedit /set {bootmgr} description 123 在当前的主板引导上确实是可以看到:WBMA或123
1、我是希望这个改动是永久,也就是说这个系统再次打包手,部署到另一台设备,或10台设备
2、这个名字都是WBMA或123
作者: yurrr7    时间: 2022-9-20 06:59
本帖最后由 yurrr7 于 2022-9-20 07:03 编辑

这儿还是做了一个测试1、把Linux下的bootx64.efi替换到windows boot manager这个bootx64.efi
2、反过来也是,把wbm下的bootx64.efi的文件 替换linux下的efi\boot\bootx64.efi

我的预期结果应该是相互替换的。但好像也不是
还是与之前的一样的引导结果
这样看,感觉这个位置又不是系统的文件控制的
可能是我对某一部分的基础技术还没有去理解

还是说我的这个想法完全不能实现么,其实我就是想把linux这个在硬盘上的系统在bios是显示的名字改一个值。它是可以随系统走的
更理想的情况就是把系统的文件改一个名后,这个系统打包,再部署。它个名字是不会变的

作者: szwp    时间: 2022-9-20 07:32
将联想改64试
作者: hilsonma    时间: 2022-9-20 08:17
yurrr7 发表于 2022-9-20 06:50
其实我的核心想法不是去改windows boot manager,而是想改UEFI OS 这个值。它是linux系统的引导一部分。 ...

明白你是想将 UEFI启动序列 (开机设备选单) 的 UEFI OS 改成实际系统的名称,类似Win系统的 Windows Boot Manager,让你的开机设备名称显示为 MyOS 之类。

但这个名称是由主板固件去定义的,多数主板固件都是定义了我前面说的这三类:Windows Boot Manager、UEFI OS、UEFI: 设备型号 。主板固件在识别了开机设备之后就会按预先定义的名称写到NVRAM中。用户可以修改NVRAM里的数据,前提是主板固件允许,否则就可能是保存不了,或者保存了但主板固件使用的时候出问题。

因为是在各电脑的NVRAM中的,不是磁盘文件中的,所以做不到一次修改,每台电脑都同样显示。需要修改每台电脑的NVRAM数据。

1、我能理解的就是:这个linux系统放到硬盘的最后一个区,它在bios中就会显示uefi os

不管是不是linux系统,也不管是放在哪个区,一般地,识别到硬盘的 \EFI\Boot\bootx64.efi 就显示 UEFI OS

2、同理,这个系统放到任何主板都会显示uefi os 【主板型号不下20款的情况下】

同上,因为多数主板都是这样设定,所以多数都会这样显示。

3、有一次,也是唯一的一次。放在“宏碁”笔记本时,会显示:【dabian OS】

那你把其他的efi文件或者windows 的bootmgfw.efi 改名为 bootx64.efi 放到这个笔记本的ESP的 \EFI\Boot\ 看看会显示什么。
又或者你看看【dabian OS】对应的启动文件是什么,是不是 \EFI\Boot\bootx64.efi

我遇过主板允许使用任意路径任意名称的efi文件做主引导,但需要在固件设置中指定这个文件。当然也可以指定显示的名称。
作者: yurrr7    时间: 2022-9-20 08:36
hilsonma 发表于 2022-9-20 08:17
明白你是想将 UEFI启动序列 (开机设备选单) 的 UEFI OS 改成实际系统的名称,类似Win系统的 Windows Boot ...

您这一解释我这完全明白了,感谢哈,科普了一次。那这儿就不纠结了。还是用工具每台去改吧。可能是我想的太简单了。确实是没有理解这儿的工作模式。您这一说,我就不再往这方面想了
作者: hilsonma    时间: 2022-9-20 09:17
yurrr7 发表于 2022-9-20 08:36
您这一解释我这完全明白了,感谢哈,科普了一次。那这儿就不纠结了。还是用工具每台去改吧。可能是我想的 ...

看了你的签名,觉得你是想要开机菜单中显示你的系统名称。
这个是在操作系统的安装程序中设定的,在生成引导的时候写入到nvram中。跟前面的描述一样,这个写入要符合主板固件的定义,如果主板固件有开放给你写,你才可以写,有的主板只认bootmgfw.efi (因为MS是UEFI论坛的创始者之一,是UEFI论坛创始者中唯一的软件商),其他可能认不了,非win的只能认 \EFI\Boot\bootx64.efi。

如果主板固件允许,你是可以使用类似这样的引导文件的:\EFI\yurr\yurr.efi,而显示名称可以是 YurrOS
前提就是主板固件允许。
所以为了通用,应该非win的系统都是用 \EFI\Boot\bootx64.efi 的,显示为 UEFI OS,这是大多主板接受的。当然,如果主板是你定制的,要怎样都可以。
作者: 窄口牛    时间: 2022-9-20 09:36
最好不要用\EFI\Boot\bootx64.efi这个路径,空着它,这个容易被任何系统安装工具修改。最稳妥的就是把win的改掉,占住win的路径。
作者: yurrr7    时间: 2022-9-20 10:32
hilsonma 发表于 2022-9-20 09:17
看了你的签名,觉得你是想要开机菜单中显示你的系统名称。
这个是在操作系统的安装程序中设定的,在生成 ...

谢谢,其实我没想那么多,当然Linux的引导也确实是在
\EFI\Boot\bootx64.efi 这个文件,我天真的以为只用改这个bootx64.efi的内容,就可以自定义出那个Bios的引导菜单的名字。看来还要多学习
作者: yurrr7    时间: 2022-9-20 10:34
窄口牛 发表于 2022-9-20 09:36
最好不要用\EFI\Boot\bootx64.efi这个路径,空着它,这个容易被任何系统安装工具修改。最稳妥的就是把win的 ...

但linux默认就是它,我也只想改它的名字UEFI OS 为 Recovery OS
所以纠结点就是:不知道为什么它会叫UEFI OS,是不是一个文件定义成这样的,如果是,理论来说我们自己也可以定义这个名字才对。哈哈,这样看,我感觉要放弃这个想法了。
作者: szwp    时间: 2022-9-20 16:34
将联想的改到\EFI\Boot\bootx64.efi
作者: yurrr7    时间: 2022-9-21 13:07
szwp 发表于 2022-9-20 16:34
将联想的改到\EFI\Boot\bootx64.efi

没联想的机子,只有一般的工控机。
作者: szwp    时间: 2022-9-21 13:23
yurrr7 发表于 2022-9-21 13:07
没联想的机子,只有一般的工控机。

http://bbs.wuyou.net/forum.php?m ... d=431756&extra=

支持非联想电脑。
作者: zqzhq    时间: 2022-9-29 14:46
充电中
作者: yurrr7    时间: 2022-10-12 08:26
我无意中安装国产的统信系统,它在efi区自动部署了三个名字,UOS, ubuntu,Uefi os,并且在引导菜单那是可以看到这个bootx64.efi定义的名字的。所以我还是觉得这个菜单的名字是可以自定义的,我又去发了一个贴,上传了引导图与efi引导文件。http://wuyou.net/forum.php?mod=v ... p;page=1#pid4684619
作者: hilsonma    时间: 2022-10-12 17:06
yurrr7 发表于 2022-10-12 08:26
我无意中安装国产的统信系统,它在efi区自动部署了三个名字,UOS, ubuntu,Uefi os,并且在引导菜单那是可以 ...

根据你的描述和贴图,是安装过程,自动部署的三个主引导,对应三个启动名,这是由安装程序设定的,然后写到nvram中,不是写在主引导文件中的。你也可以找到类似的工具,修改nvram中的设定。

但正如前面所述,还要主板固件配合的,你可以将你安装的统信系统,放到不同品牌的电脑(不同品牌主板的电脑),再看看有什么表现。
作者: yurrr7    时间: 2022-10-13 08:22
hilsonma 发表于 2022-10-12 17:06
根据你的描述和贴图,是安装过程,自动部署的三个主引导,对应三个启动名,这是由安装程序设定的,然后写 ...

这个也试过,换别的主板是一样的,还是有三个引导信息,并且名字是固定的
作者: dayeye    时间: 2024-3-14 12:36
学习了。
作者: hehuiying    时间: 2024-3-19 02:47
谢谢分享
作者: hehuiying    时间: 2024-3-26 22:58
谢谢分享




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3