无忧启动论坛

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

[求助] 怎样判断当前windows启动方式?

  [复制链接]
跳转到指定楼层
1#
发表于 2013-6-3 08:18:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chiannet 于 2013-6-3 08:21 编辑

如何区分当前winndows运行在MBR分区还是GPT分区分区?
如何判断当前windows 启动模式:UEFI模式还是BIOS---->bootmgr---->BCD模式?


尽可能不借助MS之外的第三方工具。
推荐
发表于 2013-6-3 09:17:33 | 只看该作者
cmd-->diskpart--->list disk命令看磁盘属性

如果GPT字样下面有*标记的话,那就是UEFI启动。没有*标记的话,那就继续判断:

所有的分区里面都没有efi文件夹,就是MBR启动。

如果某个分区有efi文件夹,改名后能启动的100%是BIOS启动,改名后不能启动的100%是UEFI启动。

点评

判断gpt和uefi事两码事。 GPT硬盘也可能是bios启动的(比如GPT/mbr混合分区表),mbr也可能是UEFI启动的  详情 回复 发表于 2013-6-3 16:16
还要加入多硬盘的情况:例如一个MBR硬盘,一个GPT硬盘的情况。不是说不可以,但要自动化实现还是有些麻烦的。  详情 回复 发表于 2013-6-3 10:08
晕,不太智能。 尤其是 “如果某个分区有efi文件夹,改名后能启动的100%是BIOS启动,改名后不能启动的100%是UEFI启动。” 不太可能自动化实现。  详情 回复 发表于 2013-6-3 10:02
回复

使用道具 举报

推荐
发表于 2013-6-3 08:55:11 | 只看该作者
本帖最后由 糊涂 于 2013-6-3 08:57 编辑

第一个问题简单



查看“磁盘列表”OK

第二个问题,我说不清楚

点评

有一定的可行性。但不便于自动化实现。  详情 回复 发表于 2013-6-3 10:06
回复

使用道具 举报

推荐
发表于 2013-6-3 16:12:36 | 只看该作者
第二个问题不是n年前就讨论过了?我当时给出的方法很容易,楼上怎么都是一堆复杂的方法 ?
运行bcdedit /enum {current},其中path部分启动文件路径:bios启动的话是winload.exe,uefi启动的话是winload.efi

点评

虚拟机,单硬盘,GPT,只有一个NTFS分区,无其它剩余空间,bcdedit 结果居然是winload.exe,系统区无EFI文件夹,gpt.mbr.uefi傻傻分不清了~~~~~~~~~~~~~~~  详情 回复 发表于 2014-10-28 00:17
这个应该是可行的。。。。而且也简单。。。  详情 回复 发表于 2014-4-29 20:34
回复

使用道具 举报

推荐
 楼主| 发表于 2013-6-3 10:02:30 | 只看该作者
2011hiboy 发表于 2013-6-3 09:17
cmd-->diskpart--->list disk命令看磁盘属性

如果GPT字样下面有*标记的话,那就是UEFI启动。没有*标记的 ...


晕,不太智能,不太科学。


尤其是

“如果某个分区有efi文件夹,改名后能启动的100%是BIOS启动,改名后不能启动的100%是UEFI启动。”

不太可能自动化实现。

点评

你只问了如何判断?没有说需要自动化判断!!故只给出判断的过程。但这个方法行之有效!  发表于 2013-6-3 18:31
回复

使用道具 举报

6#
 楼主| 发表于 2013-6-3 10:05:00 | 只看该作者
看看是否还有更简便的可行的方案。
回复

使用道具 举报

7#
 楼主| 发表于 2013-6-3 10:06:23 | 只看该作者
糊涂 发表于 2013-6-3 08:55
第一个问题简单

有一定的可行性。但不便于自动化实现。
回复

使用道具 举报

8#
 楼主| 发表于 2013-6-3 10:08:48 | 只看该作者
2011hiboy 发表于 2013-6-3 09:17
cmd-->diskpart--->list disk命令看磁盘属性

如果GPT字样下面有*标记的话,那就是UEFI启动。没有*标记的 ...
cmd-->diskpart--->list disk命令看磁盘属性

如果GPT字样下面有*标记的话,那就是UEFI启动。


还要加入多硬盘的情况:例如一个MBR硬盘,一个GPT硬盘的情况。不是说不可以,但要自动化实现还是有些麻烦的。

点评

你要仔细说明你的需要和目的,后来者才能斟酌回答。  详情 回复 发表于 2013-6-3 18:33
回复

使用道具 举报

9#
发表于 2013-6-3 13:55:06 | 只看该作者
本帖最后由 ddianxing 于 2013-6-3 14:00 编辑

可以通过复制BCD来判断:正在使用的BCD是不能“复制粘贴”到其它地方的,如果EFI\Microsoft\boot\bcd文件不可以复制则说明是EFI模式;如果boo\bcd文件不能复制,则说明是BIOS模式。

点评

检查用copy命令的执行结果可判断。 前提是:世界上没有哪个变态佬,故意把bios--->bootmgr---->EFI\MICROSOFT\BOOT\BCD,这个法子基本就是最简单高效的了  详情 回复 发表于 2013-6-3 14:45
这个法子来的简单,值得试试。谢谢。  详情 回复 发表于 2013-6-3 14:36
回复

使用道具 举报

10#
 楼主| 发表于 2013-6-3 14:36:02 | 只看该作者
ddianxing 发表于 2013-6-3 13:55
可以通过复制BCD来判断:正在使用的BCD是不能“复制粘贴”到其它地方的,如果EFI\Microsoft\boot\bcd文件不 ...

这个法子来的简单,值得试试。谢谢。
回复

使用道具 举报

11#
 楼主| 发表于 2013-6-3 14:45:10 | 只看该作者
ddianxing 发表于 2013-6-3 13:55
可以通过复制BCD来判断:正在使用的BCD是不能“复制粘贴”到其它地方的,如果EFI\Microsoft\boot\bcd文件不 ...





检查copy命令的执行结果的确可判断。
前提是:世界上没有哪个变态佬,故意把bios--->bootmgr---->EFI\MICROSOFT\BOOT\BCD,这个法子基本就是最简单高效的了
回复

使用道具 举报

12#
发表于 2013-6-3 16:16:14 | 只看该作者
本帖最后由 fujianabc 于 2013-6-3 16:22 编辑
2011hiboy 发表于 2013-6-3 09:17
cmd-->diskpart--->list disk命令看磁盘属性

如果GPT字样下面有*标记的话,那就是UEFI启动。没有*标记的 ...


判断gpt和uefi事两码事。

GPT硬盘也可能是bios启动的(比如GPT/mbr混合分区表),mbr也可能是UEFI启动的。这个单硬盘判断比较容易,多硬盘就有些复杂了。不过很多情况下,GPT和mbr操作是相同的,并不需要预先判断

点评

我上面给出的方法分别判断磁盘格式和启动方式! 判断的过程也包含了uefi+mbr,uefi+gpt,Bios+mbr,我相信仔细阅读了就能发现!  详情 回复 发表于 2013-6-3 18:36
回复

使用道具 举报

13#
发表于 2013-6-3 18:33:24 | 只看该作者
chiannet 发表于 2013-6-3 10:08
还要加入多硬盘的情况:例如一个MBR硬盘,一个GPT硬盘的情况。不是说不可以,但要自动化实现还是有些 ...

你要仔细说明你的需要和目的,后来者才能斟酌回答。
回复

使用道具 举报

14#
发表于 2013-6-3 18:36:55 | 只看该作者
本帖最后由 2011hiboy 于 2013-6-3 19:28 编辑
如果GPT字样下面有*标记的话,那就是UEFI启动。没有*标记的话,那就继续判断:

该磁盘就是GPT格式的磁盘,只能UEFI启动

所有的分区里面都没有efi文件夹,就是MBR启动。

当磁盘不是GPT而是MBR的时候,没有efi文件夹,那么就是BIOS+MBR

如果某个分区有efi文件夹,改名后能启动的100%是BIOS启动,改名后不能启动的100%是UEFI启动。

当存在efi文件夹,改名后启动的说明efi文件夹无效属于BIOS+MBR;改名后不能启动就是UEFI+MBR

全部包含了BIOS+MBR;UEFI+GPT;UEFI+MBR
的情况;但是可能理解起来需要对启动有点了解。
但是实现自动化困难。
回复

使用道具 举报

15#
发表于 2013-6-3 19:52:43 | 只看该作者
楼主想要实现自动化,可以给出一点思路,首先diskpart可以判断出磁盘是MBR还是GPT,顺便磁盘格式是GPT的时候肯定是UEFI启动

当磁盘格式是MBR的时候,那就使用bcdedit命令看看winload.exe--BIOS     winload.efi--UEFI

copy判断或许可行,但不可靠。
回复

使用道具 举报

16#
发表于 2013-6-3 23:14:26 | 只看该作者
貌似可以理解为:有EFI文件夹的未必是GPT分区,而没有EFI文件夹也未必一定是MBR分区;

点评

UEFI---->必须有efi文件夹,磁盘可以是MBR/GPT BIOS--->有没有efi文件夹,没什么影响 GPT--->必须有efi文件夹,仅支持UEFI引导 MBR--->支持UEFI引导的时候需要efi文件夹,支持BIOS引导需要引导记录。 没有ef  详情 回复 发表于 2013-6-5 08:27
回复

使用道具 举报

17#
发表于 2013-6-5 08:27:01 | 只看该作者
糊涂 发表于 2013-6-3 23:14
貌似可以理解为:有EFI文件夹的未必是GPT分区,而没有EFI文件夹也未必一定是MBR分区;


UEFI---->必须有efi文件夹,磁盘可以是MBR/GPT
BIOS--->有没有efi文件夹,磁盘只能是是MBR

GPT--->必须有efi文件夹,仅支持UEFI引导
MBR--->支持UEFI引导的时候需要efi文件夹,支持BIOS引导需要引导记录。

没有efi文件夹的话,那肯定不是UEFI引导也不是GPT磁盘,只能是BIOS引导和MBR磁盘
(不考虑手动选择启动文件和其他特殊人为因素)



点评

最后一句才是关键!  详情 回复 发表于 2013-6-5 08:29
回复

使用道具 举报

18#
发表于 2013-6-5 08:29:57 | 只看该作者
2011hiboy 发表于 2013-6-5 08:27
UEFI---->必须有efi文件夹,磁盘可以是MBR/GPT
BIOS--->有没有efi文件夹,磁盘只能是是MBR

(不考虑手动选择启动文件和其他特殊人为因素)

最后一句才是关键!
对于未来,谁也无法评估揣测
回复

使用道具 举报

19#
发表于 2013-6-5 10:26:33 | 只看该作者
本帖最后由 buger 于 2013-6-5 10:29 编辑

我目前在W8X64PE中使用的方法
bcdedit | find /i "efi"
if ErrorLevel 1 goto NOGPT
if ErrorLevel 0 goto GPT
这个只能判断当前PE是由UEFI方式启动且硬盘上的系统是基于GTP且系统分区存在的。
回复

使用道具 举报

20#
发表于 2013-6-5 10:42:07 | 只看该作者
如果在当前系统下判断:

CDM下,执行: mountvol.exe
UEFI启动,和BIOS启动,列出的参数不一样(BIOS启动,没有ESP相关参数) ,你一看,就知道.

MBR和GPT,看看磁盘管理就可以了
回复

使用道具 举报

21#
发表于 2013-6-5 11:33:56 | 只看该作者
其实目前UEFI+GPT、UEFI+MBR、BIOS+GPT、BIOS+MBR、、、这些环境根本没有定义性的界限
许多都会由“人为因素”直接或间接的达到某种使用环境,以适应用户的需要!

今天是这样,明天可能想怎么样就怎么样

点评

BIOS+GPT怎么引导?  详情 回复 发表于 2014-5-1 19:42
回复

使用道具 举报

22#
发表于 2014-4-29 18:58:44 | 只看该作者
我的疑问是,无论是安装还是恢复系统,又如何知道或需要,到底是选择uefi 还是bios,如果不知道,那么就只能留给用户去选择了,那么智能化从何谈起。
回复

使用道具 举报

23#
发表于 2014-4-29 19:33:56 | 只看该作者
系统 :
1.用msinfo32看


2.脚本的话得通过系统api检测
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724325(v=vs.85).aspx

pe:
看注册表HKLM\System\CurrentControlSet\Control /v PEFirmwareType的值

0x1位bios  0x2为UEFI
回复

使用道具 举报

24#
发表于 2014-4-29 20:34:24 | 只看该作者
fujianabc 发表于 2013-6-3 16:12
第二个问题不是n年前就讨论过了?我当时给出的方法很容易,楼上怎么都是一堆复杂的方法 ?
运行bcdedit /e ...

这个应该是可行的。。。。而且也简单。。。
回复

使用道具 举报

25#
发表于 2014-5-1 19:41:12 | 只看该作者
我觉得还是看bcd里面是引导winload.exe还是winload.efi最准吧。要不然双启动的电脑不就哭了?
回复

使用道具 举报

26#
发表于 2014-5-1 19:42:08 | 只看该作者
糊涂 发表于 2013-6-5 11:33
其实目前UEFI+GPT、UEFI+MBR、BIOS+GPT、BIOS+MBR、、、这些环境根本没有定义性的界限
许多都会由“人为因 ...

BIOS+GPT怎么引导?
回复

使用道具 举报

27#
发表于 2014-10-28 00:17:40 | 只看该作者
fujianabc 发表于 2013-6-3 16:12
第二个问题不是n年前就讨论过了?我当时给出的方法很容易,楼上怎么都是一堆复杂的方法 ?
运行bcdedit /e ...

虚拟机,单硬盘,GPT,只有一个NTFS分区,无其它剩余空间,bcdedit 结果居然是winload.exe,系统区无EFI文件夹,gpt.mbr.uefi傻傻分不清了~~~~~~~~~~~~~~~
回复

使用道具 举报

28#
发表于 2014-12-27 19:08:06 | 只看该作者
你先用DiskGenius软件检查一下硬盘格式是Mbr还是GPT。如果硬盘格式是GTP的一般是UEFI启动(或者是UEFI+BIOS启动);硬盘格式是Mbr,是传统BIOS启动。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-21 00:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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