无忧启动论坛

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

[分享] 分享个判断当前系统是BIOS还是UEFI启动的小程序

    [复制链接]
1#
发表于 2020-5-30 23:21:34 | 显示全部楼层
liuzhaoyzz 发表于 2019-11-8 14:33
有些情况bcdedit根本就用不了,打不开,何谈权威?正因为bcdedit打开不靠谱,所以要重复造轮子。       ...

那你有想过为什么bcdedit打不开吗?在完整的硬盘安装的系统里bcdedit显示无法打开启动配置存储只有一种情况:启动分区没有配置好。如果硬盘是MBR分区表,只有使用BIOS模式,而且引导文件存在活动分区下BCD才能被正确挂载。UEFI模式是可以从MBR启动,但是如果使用了UEFI从MBR启动,用bcdedit就会显示“无法打开启动配置存储”。GPT也一样,只有是UEFI模式加EFI系统分区才能正确挂载。我这几天在写自动安装系统的脚本,我的脚本的环境是在系统正常使用的环境下配置好一些参数,然后脚本自动添加PE到BCD里,自动重启进PE进行系统安装。当我在虚拟机里测试的时候就发现了,只要PE的启动模式和系统的模式对应,不论PE是U盘启动还是光盘启动,就能正确挂载硬盘里的BCD,只要PE的启动模式和硬盘里的分区形式不对应,就算是手动挂载BCD到注册表里,bcdedit也显示无法打开启动配置存储。UEFI和BIOS模式都是一样。而且我在我笔记本的硬盘上单独创建了一个FAT32的分区,创建了一个UEFI的引导项指向里面的引导文件,就是在开机按启动热键选择创建的引导项启动进PE,虽然注册表里显示的启动设备是我新建的那个FAT32分区,但是当我用bcdedit命令的时候还是正确挂载了我硬盘EFI系统分区里的BCD
回复

使用道具 举报

2#
发表于 2020-5-30 23:31:15 | 显示全部楼层
朱玛12345678 发表于 2019-11-8 19:47
XP添加UEFI启动支持其实很简单,只要拷两个文件就可以。这个我早就做到了,只不过一直没公开教程而已。

我敢肯定你的这个肯定不是UEFI启动。
回复

使用道具 举报

3#
发表于 2020-5-31 11:38:12 | 显示全部楼层
我在你另一个帖子那里下载了你发的蓝奏云链接里的三个程序,我这系统明明是BIOS模式,两个程序检测成了UEFI,一个是未知。我不知道这怎么检测的,我三个硬盘全部都是MBR,BCD里也都是winload.exe,系统信息里也是传统

回复

使用道具 举报

4#
发表于 2020-5-31 12:56:02 | 显示全部楼层
ku588 发表于 2020-5-31 12:39
早试过了,受具体实机BIOS-UEFI不同环境的影响和Windows系统PE不同环境因素的影响,这个判断不可靠!
尤其 ...

这只是判断当前系统的启动模式,关PE什么事。同时支持BIOS和UEFI又怎么样,系统还不是只用一种模式启动
回复

使用道具 举报

5#
发表于 2020-5-31 13:23:16 | 显示全部楼层
ku588 发表于 2020-5-31 13:12
我管PE环境也叫系统,我在PE下测试不行吗?能判断PE系统启动环境吗?
如果不能判断当前PE系统环境就注明 ...

你测试PE的启动模式有个鸟用

点评

你觉得没用不等于别人没用,不懂少说话  详情 回复 发表于 2020-5-31 13:24
回复

使用道具 举报

6#
发表于 2020-5-31 13:29:11 | 显示全部楼层
ku588 发表于 2020-5-31 13:24
你觉得没用不等于别人没用,不懂少说话

那你说说判断PE启动模式有什么用?

点评

如果仅仅是判断当前系统是BIOS还是UEFI启动,如果没有其它用武之地,那这个工具就没有价值,比如用于远程系统维护安装系统(PE下安装系统),快速判断客户当前电脑系统使用环境,对应安装相应的系统等。除了上面说的  详情 回复 发表于 2020-5-31 13:44
回复

使用道具 举报

7#
发表于 2020-5-31 13:41:40 | 显示全部楼层
朱玛12345678 发表于 2020-5-31 13:30
信不信由你
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=420307&mobile=no

看了你的帖子,你也是真够闲的,我先不管你的是不是UEFI。我就想问问弄这个32位的XP来UEFI启动有意义吗?现在有谁的电脑是基于x86的UEFI?就算你的可以UEFI启动,64位的UEFI根本就不能启动32位的系统。而且这个帖子判断启动模式是为了添加PE引导的时候区分winload.exe和winload.efi。XP连个BCD都不能添加,你要UEFI有个毛用?

点评

有没有意义不是由你来定。 错了就是错了,别狡辩。  详情 回复 发表于 2020-5-31 14:09
回复

使用道具 举报

8#
发表于 2020-5-31 13:56:17 | 显示全部楼层
ku588 发表于 2020-5-31 13:44
如果仅仅是判断当前系统是BIOS还是UEFI启动,如果没有其它用武之地,那这个工具就没有价值,比如用于远程 ...

远程安装系统,如果客户的电脑是可以正常开机的,那可以直接在系统里判断,重启后进到PE里自动执行安装。如果用户的电脑不能正常开机,如果PE的启动模式是UEFI,正好硬盘的分区形式和PE启动模式对应,PE里可以直接用bcdedit读取硬盘里的BCD文件。如果PE是启动模式是BIOS,硬盘里的分区形式和启动模式对应也可以正确读取到,如果不对应那就读取不到。我最近在写启动安装系统的批处理。就是可以在系统里判断系统启动模式,配置好相关参数,自动添加PE引导重启进PE进行系统安装。如果PE的启动模式和硬盘分区形式不对应,如果是我写脚本的话,我可以通过for循环遍历一遍所有的分区,看有几个系统,再分别判断这些系统所在的硬盘的分区表,如果是MBR,就寻找活动分区。如果是GPT就寻找EFI系统分区。这个帖子里的工具就是在系统里判断启动模式,然后添加对应模式的PE引导文件而已。BIOS模式是winload.exe,UEFI模式是winload.efi
回复

使用道具 举报

9#
发表于 2020-5-31 14:19:28 | 显示全部楼层
wintoflash 发表于 2020-5-31 14:09
有没有意义不是由你来定。
错了就是错了,别狡辩。

我才不管什么错不错,你以为错了就错了呗。反正我就是认为让XP做UEFI没有意义
回复

使用道具 举报

10#
发表于 2020-5-31 16:57:35 | 显示全部楼层

我有个问题。我刚刚在虚拟机下用UEFI测试了一下,硬盘使用MBR分区表,我在虚拟机板块找到一个修改过的ROM,UEFI可以直接读取NTFS分区下的efi启动文件。我直接把UEFI的引导文件放在了原系统所在分区下,可能是因为之前设置了活动分区的原因,进到系统之后bcdedit可以正确读取到BCD,你发的两个工具也可以正确识别到。但是当我把硬盘切换到GPT分区表之后,又和刚才一样,直接把UEFI引导文件放在了系统所在分区下,但是这个时候进到系统之后,bcdedit就读取不到BCD了,当我手动用regedit把BCD挂载到HKLM\BCD00000000之后,bcdedit还是读取不到,但是用BOOTICE可以读取。我想问一下,如果这种情况下,批处理应该怎么编辑BCD
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-15 10:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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