无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5231|回复: 17
打印 上一主题 下一主题

[原创] UEFI自己的一些感慨和笔记

[复制链接]
跳转到指定楼层
1#
发表于 2021-10-25 08:36:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 anarki2001 于 2021-10-27 17:35 编辑

无意中看了一下自己的注册日期,还是有点儿小骄傲。我因为把启动作为业余爱好,又没什么开发能力,在这里一直虚心向各位大佬学习,但昨天发现自己可能比许多大佬的注册日期还早。江山代有才人出,一代新人胜旧人啊。
平时上来的比较少,只有偶尔折腾问题的时候,才上来学习下。这里,已经成了我的一个小小的精神家园吧。衷心希望无忧能【永久的】运营下去。(突然想起个段子:一个初创小公司融不到资眼看要破产了,一位神秘投资人投了600万救了公司,事后才知道是保洁阿姨,阿姨说:这公司氛围怪好的,倒了太可惜)

昨天折腾一天,就获得了如下超出原先知识的重要信息:
1、支持UEFI启动的主板有NVRAM(可以理解成类似CMOS),里面存放了EFI引导项的启动顺序和相关指向入口。
2、NVRAM的引导信息,操作系统安装完毕的时候,是可以主动写入条目的,想要手动访问,win下可用bootice(还有好像什么bootbcd之类的,我偏好bootice的GUI界面),linux下。。。忘了。。。(此外,linux下有个可修改【grub2】启动项的GUI叫grub customizer)
3、这些条目,是否在系统上电启动的那几秒内会主动搜索所有ESP或FAT32分区并添加条目,以及搜索哪些文件夹,这个不知道,有大佬看到后【望解答】
4、ESP:\EFI\BOOT\bootx64.efi是【默认的】启动项,昨天测试删除它,之所以我删除了后,我虚拟机的ubuntu还能启动,经查看,是NVRAM里有单独的一条ubuntu条目,指向了ESP:\EFI\ubuntu\shimx64.efi

后记:
今天继续折腾,发现:
1、不知为何,有时用bootice无法修改virtualbox的efi nvram配置(杏雨梨云某维护盘)
2、用virtualbox的efi bios界面可以手动添加启动项;
3、把windows的bootx64.efi随便改个名字随便放个文件夹,然后在efi里手动指定,可以启动成功,但无法显示中文菜单,改名放回到:esp:\efi\boot\bootx64.efi就可以了
4、ubuntu下想要访问esp分区,不用找工具,也不用mount啥的,系统已经给映射到了:/boot/efi

后后记:
折腾的结果:以grub2作为主入口,成功启动win和ubuntu,详情:
下载了论坛某大佬(抱歉查资料太多忘记名字了)的“简单的grub2启动模板.7z”,解压后提取相关文件。
将bootx64.efi以及对应的grub.cfg放入esp:\efi\boot\作为主板(虚拟机)默认寻址的文件,也就是默认入口,
将原先的bootx64.efi(其实是win的)随便改个名字放好(我猜测其实它里面内置了从esp:\efi\microsoft\boot\读取BCD文件,所以至于它本身放哪儿其实无所谓)
然后在grub.cfg里编辑好指向win和ubuntu的条目即可:
menuentry "Windows" {
        search --no-floppy --set --file /efi/microsoft/bootx64win.efi
        chainloader  /efi/microsoft/bootx64win.efi
}

menuentry "Ubuntu" {
        search --no-floppy --set --file /efi/ubuntu/shimx64.efi
        chainloader  /efi/ubuntu/shimx64.efi
}
未解决问题:win的引导会无法显示中文,只能显示英文菜单【大佬看到请不吝赐教】


本轮折腾到此结束,感谢各位大佬
2021-10-27





2#
发表于 2021-10-25 08:42:05 | 只看该作者
整文的关键点是神秘投资人
回复

使用道具 举报

3#
发表于 2021-10-25 10:08:16 | 只看该作者
嗯,我也坚信如果有一天无忧想做大做强时,楼主一定是愿意投几个亿过来的
回复

使用道具 举报

4#
发表于 2021-10-25 10:39:30 | 只看该作者
谢谢神秘人!大大大佬
回复

使用道具 举报

5#
发表于 2021-10-25 11:54:25 | 只看该作者
本帖最后由 2011whp 于 2021-10-26 19:12 编辑

NVRAM,能写入  三方启动器,shell下能写入 变量

突然想到,如果,g4e 调用 调用 那个 函数式的shell , 读写 nvram 变量,是否可行?
g4e,有 cmdline 插件


如果 这样可以的话,滥用会不会造成  nvram 满了( 高手 出个 g4e 插件,只能写两个变量,以免滥用)
回复

使用道具 举报

6#
发表于 2021-10-25 13:03:38 | 只看该作者
fenly 发表于 2021-10-25 10:39
谢谢神秘人!大大大佬

呵呵
回复

使用道具 举报

7#
发表于 2021-10-25 13:51:52 | 只看该作者
默认是ESP:\EFI\Microsoft\Boot\bootmgfw.EFI

点评

我也是这样认为,基于UEFI论坛创始人中软件商只有MS。 但现在请参考10楼反馈。 Mac 默认不是Windows系统的,所以默认引导不会是MS的bootmgfw.efi,按10楼的反馈,Mac默认引导是UEFI规范中的通用引导 bootx64.efi (  详情 回复 发表于 2021-10-27 07:19
回复

使用道具 举报

8#
发表于 2021-10-25 15:14:51 | 只看该作者
神秘投资人不想公司倒闭……
回复

使用道具 举报

9#
发表于 2021-10-25 18:28:51 | 只看该作者
2011whp 发表于 2021-10-25 11:54
NVRAM,能写入  三方启动器,shell下能写入 变量

突然想到,如果,g4e 调用 调用 那个 函数式的shell ,  ...

不知道你具体想干什么。grub4dos有外部命令可以读uefi环境变量。

grub2可以读/写uefi环境变量,还有bcfg命令可以直接改uefi启动项。

点评

没 多大用, 不折腾这个 [attachimg]489330[/attachimg] 意思是 nvg4e 这个 变量,在 主板上,断电后,也在(NVRAM 上存储 着)  详情 回复 发表于 2021-10-26 12:04
回复

使用道具 举报

10#
 楼主| 发表于 2021-10-25 23:20:11 | 只看该作者
2011whp 发表于 2021-10-25 11:54
NVRAM,能写入  三方启动器,shell下能写入 变量

突然想到,如果,g4e 调用 调用 那个 函数式的shell ,  ...

【问题二:差点变砖记】
是的你没看错,mac也能变砖,
具体是,我修改了NVRAM里的启动项,且把windows设置为了首先启动,不过我指向的efi\microsoft\boot\bootmgfw.efi这个启动文件好像有问题,系统就卡死黑屏了。幸好后来莫名其妙恢复了。【有懂的大佬解答下,谢谢哦】
后来,把efi启动项的指向换成efi\boot\bootx64.efi就好了。【有懂的大佬解答下,谢谢哦】
但之前为什么莫名其妙没有变砖的原因没找到,后来找到了重置NVRAM的说明,不知将来真出现了变砖,能不能用以应对
回复

使用道具 举报

11#
 楼主| 发表于 2021-10-25 23:21:39 | 只看该作者
还有这个问题哈:

主板的efi引导程序,是否在系统上电启动的那几秒内会主动搜索所有ESP或FAT32分区并添加uefi环境变量,以及搜索哪些文件夹?【望解答】
回复

使用道具 举报

12#
发表于 2021-10-26 12:04:30 | 只看该作者
wintoflash 发表于 2021-10-25 18:28
不知道你具体想干什么。grub4dos有外部命令可以读uefi环境变量。

grub2可以读/写uefi环境变量,还有bc ...

没 多大用, 不折腾这个


意思是  nvg4e 这个 变量,在 主板上,断电后,也在(NVRAM 上存储 着)
回复

使用道具 举报

13#
发表于 2021-10-27 07:19:32 | 只看该作者
fuldho 发表于 2021-10-25 13:51
默认是ESP:\EFI\Microsoft\Boot\bootmgfw.EFI

我也是这样认为,基于UEFI论坛创始人中软件商只有MS。
但现在请参考10楼反馈。
Mac 默认不是Windows系统的,所以默认引导不会是MS的bootmgfw.efi,按10楼的反馈,Mac默认引导是UEFI规范中的通用引导 bootx64.efi (64位,32位则相应改为bootia32.efi等)。
Apple公司也是UEFI论坛创始人之一,只是列在硬件商里,但众所周知它的软件是自家的,不会是MS的。

我也遇到索尼本第一次改用UEFI引导时(之前一直是legacy引导),UEFI并不识别硬盘上的bootmgfw.efi (是我MBR改GPT后手动复制进去的,不是安装程序写入的),提示没有找到引导文件。可惜后来我直接用bcdboot写入了,没有试是否识别 bootx64.efi 。
回复

使用道具 举报

14#
发表于 2021-10-27 07:43:12 | 只看该作者
这保洁阿姨,真乃神人也
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 05:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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