无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 69993|回复: 98
打印 上一主题 下一主题

[分享] sandy bridge平台uefi启动初体验,7-3更新: UEFI方式启动mbr硬盘上已有的win7 x64

  [复制链接]
跳转到指定楼层
1#
发表于 2011-4-16 16:42:04 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
早就听说今年开始,intel的所有新平台都采用UEFI平台了,不再用传统的bios。这两天搞了一台DEll的sb处理器的新本,刚拿到手便玩了一下UEFI。

开机F2进入bios,终于是传说中图形界面的bios了,可以直接用外接usb鼠标操作。图形界面倒是无所谓,全是虚的。现在有很多SB平台的bios界面仍旧是字符界面+键盘操作。找到启动设置的地方,有两个模式,一个是legacy一个是uefi。legacy模式就是传统的bios方式启动,可以选择启动设备,这个不多说了。

重点来看UEFI启动模式,不用再选启动设备了,直接窗口操作鼠标选择启动文件即可,还能手动编辑F12启动菜单。当然主板也支持自动扫描包含uefi启动文件的启动设备(比如64位的nt 6.x光盘),然后自动启动。主板的UEFI没有包含命令行模式的efi shell,我自己在网上找了一个EFI shell,放到u盘上,然后鼠标选择从这个.efi文件启动。注意,UEFI只支持读取FAT文件系统的设备上的文件。

进入EFI shell,感觉和dos差不多。有dir/ls,copy,move,rm,md等命令,还有一个类似于edit的文本编辑器,而且直接可以访问usb设备。不同点在于,efi shell下面的盘符不是abcd,而是fs0: fs1: fs2:等,可执行文件是.efi格式。我把64位win7的efi启动的文件拷贝到u盘,然后尝试执行bootmgr.efi,居然不能直接执行。过两天完整装一个UEFI启动的win7看一下uefi启动nt 6.x 64位版到底要那些文件。

之前我就提到过,x64的vista/win7/2008/r2原版光盘支持bios/uefi双平台启动。于是我刻了一张x64 win7的盘,放入光驱然后开机按F12,不出所料,启动设备菜单上光驱的条目出现了bios和uefi两项来启动进入winpe 3.0。选择UEFI方式启动pe 3.0 x64,和bios启动方式没什么不同,进入了pe 3.0。想安装系统,安装程序提示uefi方式启动只能安装到GPT分区表的硬盘上,暂时不想把硬盘转成GPT,否则之后麻烦多多。于是尝试手动在pe下灌了一个vhd,再用bcdboot生成启动菜单,依旧提示无法定位gpt的系统分区,手头暂时没有多余硬盘给我测试GPT。打算过两天再找个硬盘通过esata外接来测试gpt+uefi安装win7。

总而言之,efi启动方式革新很大,终于不用选启动设备了,启动过程和执行一个文件一样简单。至于图形bios,意义不大,纯粹是花哨。

大家pc机支持uefi启动的可以试一下这个efi shell shellx64.rar (207.25 KB, 下载次数: 2817)

4-19更新:利用硬盘或者u盘UEFI模式启动winpe 3.0 x64的方法,以下方法适用于mbr硬盘,也可以适用于u盘

1. 在FAT16/32分区中建立efi\microsoft\boot文件夹,把windows 7 64位系统中\Windows\Boot\DVD\EFI中的bcd文件放到此文件夹中
2. 建立sources文件夹,里面放入boot.wim
3. 建立boot文件夹,把boot.sdi放在该文件夹下
4. 把\Windows\Boot\EFI中的bootmgfw.efi放到根目录中(搞了半天,发现原来这个才是efi下直接可以执行的bootmgr,而不是那个bootmgr.efi)
在启动时指定执行bootmgfw.efi或者在efi shell下直接执行bootmgfw.efi即可

5-1更新:几个用于EFI shell的磁盘工具,包括diskpart,format以及chkdsk
来自:http://www.intel.com/technology/efi/diskutil_overview.htm
微软写的磁盘工具,和cmd中的差不多,但放在intel的网上给大家下载,这里贴出x64 efi shell下使用的版本 x64disk.rar (152.13 KB, 下载次数: 1214)

7-3更新: UEFI方式启动mbr硬盘上已有的win7 x64
今天试了一下,发现UEFI方式完全可以启动mbr硬盘上的win7,这样测试UEFI启动不需要在全盘格成GPT分区表了。而且一个win7 x64系统可以同时用bios和uefi两种方式启动,对于已有的64位win7系统,进行以下操作就可以用uefi方式启动了,而且不影响bios方式启动
1. 在FAT16/32分区中建立efi\microsoft\boot文件夹,在其中放入这个bcd文件 bcd.rar (4.58 KB, 下载次数: 1326)
2. 用bcdedit更改这个bcd中{default}的device和osdevice的盘符为windows所在分区盘符
3. 把\Windows\Boot\EFI中的bootmgfw.efi放到Fat分区根目录中

在启动时指定执行bootmgfw.efi或者在efi shell下直接执行bootmgfw.efi即可

uefi方式启动win7时,四个彩球没了,只有滚动条了

[ 本帖最后由 fujianabc 于 2011-7-3 22:32 编辑 ]

评分

参与人数 2无忧币 +25 收起 理由
zhczf + 5 赞一个!
jneny + 20 原创内容

查看全部评分

99#
发表于 2019-12-29 11:13:57 | 只看该作者
怎么不能下
回复

使用道具 举报

98#
发表于 2016-5-13 23:39:33 | 只看该作者
真是学习了,还有这样的搞法。。
回复

使用道具 举报

97#
发表于 2016-4-3 01:17:06 | 只看该作者
这么精彩的帖子要收藏太给力了谢谢
回复

使用道具 举报

96#
发表于 2014-4-22 21:29:26 | 只看该作者
本帖最后由 zdsnsync 于 2014-4-22 21:49 编辑

7-3更新: UEFI方式启动mbr硬盘上已有的win7 x64
今天试了一下,发现UEFI方式完全可以启动mbr硬盘上的win7,这样测试UEFI启动不需要在全盘格成GPT分区表了。而且一个win7 x64系统可以同时用bios和uefi两种方式启动,对于已有的64位win7系统,进行以下操作就可以用uefi方式启动了,而且不影响bios方式启动
1. 在FAT16/32分区中建立efi\microsoft\boot文件夹,在其中放入这个bcd文件  bcd.rar (4.58 KB, 下载次数: 1113) 2011-7-3 21:50 上传点击文件名下载附件

2. 用bcdedit更改这个bcd中{default}的device和osdevice的盘符为windows所在分区盘符
3. 把\Windows\Boot\EFI中的bootmgfw.efi放到Fat分区根目录中

在启动时指定执行bootmgfw.efi或者在efi shell下直接执行bootmgfw.efi即可


问问,1.本身是MBR的硬盘,只有C盘,D盘等等的盘。FAT16/32分区从哪里来呢?C盘是NTFS格式的。如何操作呢?我是菜鸟
2.用bcdedit更改这个bcd中{default}的device和osdevice的盘符为windows所在分区盘符,指令是怎样操作呢?
回复

使用道具 举报

95#
发表于 2013-1-30 20:00:59 | 只看该作者
学习了 谢谢教导
回复

使用道具 举报

94#
发表于 2013-1-26 11:06:00 | 只看该作者

回复 #1 fujianabc 的帖子

这么好的帖子当然要支持搂主!当然要顶!当然要收藏!!!
回复

使用道具 举报

93#
 楼主| 发表于 2013-1-20 18:03:18 | 只看该作者
原帖由 atoms 于 2013-1-20 03:17 发表


win+r 运行msconfig 无gui引导,效果一样~

之前uefi启动win7没有彩球的问题早就解决了,是我之前用的bcd文件的问题。

话说还是vista关掉gui引导后的启动画面最漂亮,渐变的极光色彩,vista休眠恢复的画面则是极光背景+水晶滚动条,真不知道微软为什么不拿这个当默认启动画面,而用那个光秃秃的格子滚动条
回复

使用道具 举报

92#
发表于 2013-1-20 09:01:39 | 只看该作者
这篇“UEFI”技术科普帖太给力了

帖子不错,回复更精彩!

感谢F老师分享,让我这样的小白对UEFI启动有一个基础的了解!
回复

使用道具 举报

91#
发表于 2013-1-20 03:17:55 | 只看该作者
原帖由 fujianabc 于 2011-4-16 16:42 发表
uefi方式启动win7时,四个彩球没了,只有滚动条了


win+r 运行msconfig 无gui引导,效果一样~
回复

使用道具 举报

90#
发表于 2013-1-17 12:31:54 | 只看该作者
看看  学习  学习
回复

使用道具 举报

89#
 楼主| 发表于 2013-1-16 20:34:27 | 只看该作者
原帖由 atoms 于 2013-1-16 17:46 发表

sdi的结构其实很简单,我看过,就 是文件头(有十六进制的IMG文件大小)+img

SDI和vhd基本一样简单,固定容量的vhd文件就是img+文件尾
回复

使用道具 举报

88#
 楼主| 发表于 2013-1-16 20:33:09 | 只看该作者
原帖由 atoms 于 2013-1-16 18:04 发表


没成功,bcd用起来真的是麻烦,七彩虹的z77可能不如华擎uefi,  另UEFI支持FAT32隐藏分区不;

原则上uefi支持所有FAT12/16/32分区的读写。

主板启动设置界面里面应该可以直接选择要启动的.efi文件的,而不再是bios那种选择启动设备。
回复

使用道具 举报

87#
发表于 2013-1-16 18:04:30 | 只看该作者
原帖由 fujianabc 于 2011-4-16 16:42 发表
早就听说今年开始,intel的所有新平台都采用UEFI平台了,不再用传统的bios。这两天搞了一台DEll的sb处理器的新本,刚拿到手便玩了一下UEFI。

开机F2进入bios,终于是传说中图形界面的bios了,可以直接用外接 ...


没成功,bcd用起来真的是麻烦,七彩虹的z77可能不如华擎uefi,  另UEFI支持FAT32隐藏分区不;
回复

使用道具 举报

86#
发表于 2013-1-16 17:46:01 | 只看该作者
原帖由 gmy 于 2012-12-23 18:15 发表
所言极是,再换个思路,boot.sdi的结构如果能研究一下,是否会有突破?包括VHD,这些文件的结构如果可以引导一个分区,GRLDR是否就能有机会能被引导呢?

sdi的结构其实很简单,我看过,就 是文件头(有十六进制的IMG文件大小)+img
回复

使用道具 举报

85#
发表于 2012-12-23 18:15:19 | 只看该作者

回复 #83 fujianabc 的帖子

所言极是,再换个思路,boot.sdi的结构如果能研究一下,是否会有突破?包括VHD,这些文件的结构如果可以引导一个分区,GRLDR是否就能有机会能被引导呢?

[ 本帖最后由 gmy 于 2012-12-23 18:34 编辑 ]
回复

使用道具 举报

84#
发表于 2012-12-22 20:24:07 | 只看该作者
谢谢分享~~~~~~~~~~~~~~~~~~~
回复

使用道具 举报

83#
 楼主| 发表于 2012-12-22 07:08:11 | 只看该作者
原帖由 gmy 于 2012-12-21 17:27 发表
最近在DELL 17R 笔记本加装了一块SSD固态硬盘(作为主盘),用DIKGEN4.0.1专业版分区,ESP+MSR+3个GPT分区,安装正版WIN8专业版到第1个GPT分区,发现启动不了grldr.mbr,提示 Windows 未能启动 。在MBR分区的WI ...

照这个思路,bios.efi应该包含在{fwbootmgr}下面的项中,而不是{bootmgr}的项中。
{fwbootmgr}就是开机的F12启动菜单中的项,而{bootmgr}中的项是windows启动菜单中的项,bootmgrfw只支持加载微软自己的.efi文件。

不过就算加载在开机启动菜单中,也不清楚如何切到bios模式,这个切换是主板实现的,而不是通过一个.efi文件执行的。或许可以把这个切换过程变成一个可执行的.efi文件,需要懂efi主板编程的人来实现了
回复

使用道具 举报

82#
发表于 2012-12-21 17:27:21 | 只看该作者

如何启动GRLDR

最近在DELL 17R 笔记本加装了一块SSD固态硬盘(作为主盘),用DIKGEN4.0.1专业版分区,ESP+MSR+3个GPT分区,安装正版WIN8专业版到第1个GPT分区,发现启动不了grldr.mbr,提示 Windows 未能启动 。在MBR分区的WIN7环境没问题。请F大解决一下。

WIN8 x86 x64 的 BCDEDIT 产生的部分报告如下:

Real-mode Boot Sector
---------------------
identifier {ee666666-6666-6666-6666-66666666666ee}
device partition=C:
path \grldr.mbr
description 一键GHOST 测试版


注:grldr.mbr 是最新版。

是否需要先启动一个.efi文件过渡一下?已经在bbs.znpc.net反映,不点和Chenall都说没办法。(http://bbs.znpc.net/forum.php?mod=viewthread&tid=6749

附图一张:


我解决思路是:首先按照EFI的规范启动一个传统BIOS,如让WINDOWS启动管理器调用 BIOS.efi ,这个efi文件的作用就是让电脑认为现在是一个传统BIOS在启动,程序末尾按照BIOS启动MBR硬盘的规则指向GRLDR。

再附一个BCD报告:
** BCD 启动菜单 **



Firmware Boot Manager
---------------------
identifier {fwbootmgr}
displayorder {bootmgr}
{86359710-42b3-11e2-8e8b-a27fdf22db07}
{86359711-42b3-11e2-8e8b-a27fdf22db07}
{86359712-42b3-11e2-8e8b-a27fdf22db07}
{86359713-42b3-11e2-8e8b-a27fdf22db07}
{86359714-42b3-11e2-8e8b-a27fdf22db07}
{86359715-42b3-11e2-8e8b-a27fdf22db07}
{86359716-42b3-11e2-8e8b-a27fdf22db07}
{86359717-42b3-11e2-8e8b-a27fdf22db07}
{86359718-42b3-11e2-8e8b-a27fdf22db07}
{86359719-42b3-11e2-8e8b-a27fdf22db07}
{8635971a-42b3-11e2-8e8b-a27fdf22db07}
timeout 0

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale zh-CN
inherit {globalsettings}
default {current}
resumeobject {8635971b-42b3-11e2-8e8b-a27fdf22db07}
displayorder {current}
{8635971f-42b3-11e2-8e8b-a27fdf22db07}
toolsdisplayorder {memdiag}
timeout 10

Firmware Application (101fffff)
-------------------------------
identifier {86359710-42b3-11e2-8e8b-a27fdf22db07}
description Setup

Firmware Application (101fffff)
-------------------------------
identifier {86359711-42b3-11e2-8e8b-a27fdf22db07}
description Boot Menu

Firmware Application (101fffff)
-------------------------------
identifier {86359712-42b3-11e2-8e8b-a27fdf22db07}
description Removable Drive

Firmware Application (101fffff)
-------------------------------
identifier {86359713-42b3-11e2-8e8b-a27fdf22db07}
description Hard Drive

Firmware Application (101fffff)
-------------------------------
identifier {86359714-42b3-11e2-8e8b-a27fdf22db07}
description USB Storage Device

Firmware Application (101fffff)
-------------------------------
identifier {86359715-42b3-11e2-8e8b-a27fdf22db07}
description CD/DVD/CD-RW Drive

Firmware Application (101fffff)
-------------------------------
identifier {86359716-42b3-11e2-8e8b-a27fdf22db07}
description Second Hard Drive

Firmware Application (101fffff)
-------------------------------
identifier {86359717-42b3-11e2-8e8b-a27fdf22db07}
description Network

Firmware Application (101fffff)
-------------------------------
identifier {86359718-42b3-11e2-8e8b-a27fdf22db07}
description Network

Firmware Application (101fffff)
-------------------------------
identifier {86359719-42b3-11e2-8e8b-a27fdf22db07}
description Diagnostics

Firmware Application (101fffff)
-------------------------------
identifier {8635971a-42b3-11e2-8e8b-a27fdf22db07}
description Change boot mode setting

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.efi
description Windows 8
locale zh-CN
inherit {bootloadersettings}
recoverysequence {8635971d-42b3-11e2-8e8b-a27fdf22db07}
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
osdevice partition=C:
systemroot \Windows
resumeobject {8635971b-42b3-11e2-8e8b-a27fdf22db07}
nx OptIn
bootmenupolicy Standard

Windows Boot Loader
-------------------
identifier {8635971d-42b3-11e2-8e8b-a27fdf22db07}
device ramdisk=[C:]\Recovery\8635971d-42b3-11e2-8e8b-a27fdf22db07\Winre.wim,{8635971e-42b3-11e2-8e8b-a27fdf22db07}
path \windows\system32\winload.efi
description Windows Recovery Environment
locale zh-CN
inherit {bootloadersettings}
displaymessage Recovery
displaymessageoverride Recovery
osdevice ramdisk=[C:]\Recovery\8635971d-42b3-11e2-8e8b-a27fdf22db07\Winre.wim,{8635971e-42b3-11e2-8e8b-a27fdf22db07}
systemroot \windows
nx OptIn
bootmenupolicy Standard
winpe Yes

Resume from Hibernate
---------------------
identifier {8635971b-42b3-11e2-8e8b-a27fdf22db07}
device partition=C:
path \Windows\system32\winresume.efi
description Windows Resume Application
locale zh-CN
inherit {resumeloadersettings}
recoverysequence {8635971d-42b3-11e2-8e8b-a27fdf22db07}
recoveryenabled Yes
isolatedcontext Yes
allowedinmemorysettings 0x15000075
filedevice partition=C:
filepath \hiberfil.sys
bootmenupolicy Standard
debugoptionenabled No

Windows Memory Tester
---------------------
identifier {memdiag}
device partition=\Device\HarddiskVolume1
path \EFI\Microsoft\Boot\memtest.efi
description Windows 内存诊断
locale zh-CN
inherit {globalsettings}
badmemoryaccess Yes

Real-mode Boot Sector
---------------------
identifier {8635971f-42b3-11e2-8e8b-a27fdf22db07}
device partition=C:
path \ghldr.mbr
description 一键GHOST 测试版


EMS Settings
------------
identifier {emssettings}
bootems No

Debugger Settings
-----------------
identifier {dbgsettings}
debugtype Serial
debugport 1
baudrate 115200

RAM Defects
-----------
identifier {badmemory}

Global Settings
---------------
identifier {globalsettings}
inherit {dbgsettings}
{emssettings}
{badmemory}

Boot Loader Settings
--------------------
identifier {bootloadersettings}
inherit {globalsettings}
{hypervisorsettings}

Hypervisor Settings
-------------------
identifier {hypervisorsettings}
hypervisordebugtype Serial
hypervisordebugport 1
hypervisorbaudrate 115200

Resume Loader Settings
----------------------
identifier {resumeloadersettings}
inherit {globalsettings}

Device options
--------------
identifier {8635971e-42b3-11e2-8e8b-a27fdf22db07}
description Windows Recovery
ramdisksdidevice partition=C:
ramdisksdipath \Recovery\8635971d-42b3-11e2-8e8b-a27fdf22db07\boot.sdi

[ 本帖最后由 gmy 于 2012-12-21 17:44 编辑 ]

ghldr.gif (110.36 KB, 下载次数: 131)

ghldr.gif
回复

使用道具 举报

81#
发表于 2012-12-20 19:08:40 | 只看该作者
原帖由 fujianabc 于 2011-4-16 16:42 发表
早就听说今年开始,intel的所有新平台都采用UEFI平台了,不再用传统的bios。这两天搞了一台DEll的sb处理器的新本,刚拿到手便玩了一下UEFI。

开机F2进入bios,终于是传说中图形界面的bios了,可以直接用外接 ...

您好,我的梅捷主板A75MU3+,不需要bootmgfw.efi也能启动windows8x64。
1.在FAT16/32分区中建立efi\boot文件夹,在其中放入windows8x64安装盘efi\boot中的bootx64.efi
2. 在FAT16/32分区中建立efi\microsoft\boot文件夹,在其中放入这个bcd文件
3. 用bcdedit更改这个bcd中{default}的device和osdevice的盘符为windows所在分区盘符
bootx64.part01.rar (97.66 KB, 下载次数: 18) bootx64.part02.rar (97.66 KB, 下载次数: 15) bootx64.part03.rar (97.66 KB, 下载次数: 16) bootx64.part04.rar (97.66 KB, 下载次数: 15) bootx64.part05.rar (97.66 KB, 下载次数: 15) bootx64.part06.rar (54.19 KB, 下载次数: 16) bcd.rar (4.58 KB, 下载次数: 17)
回复

使用道具 举报

80#
发表于 2012-12-13 00:13:51 | 只看该作者
原帖由 xwan 于 2012-12-2 16:52 发表




今天用了台华硕的S400c WIN8 的超级触屏本,就不支持传统兼容模式的启动了好像,跟你描述的基本差不多

摸了一下新索尼T13貌似还是能传统启动的,BIOS里可能有选项设置
回复

使用道具 举报

79#
 楼主| 发表于 2012-12-9 18:15:54 | 只看该作者
原帖由 2011星星雨 于 2012-12-9 17:01 发表

还想再问问您,能不能启动64位windows8啊?

能                  
回复

使用道具 举报

78#
发表于 2012-12-9 17:01:43 | 只看该作者
原帖由 fujianabc 于 2012-7-25 14:51 发表

bootmgfw.efi直接加载winload.efi,不需要bootmgr,只有bios方式启动才用bootmgr。

32位win7不支持uefi启动

还想再问问您,能不能启动64位windows8啊?
回复

使用道具 举报

77#
发表于 2012-12-2 16:52:31 | 只看该作者
原帖由 PTPTPTPTPTPT 于 2011-4-28 00:51 发表


试了下,还真是,把装有window的盘全拔了,只接移动硬盘,windows boot manager 项仍旧存在。

如果不连接任何硬盘,开机直接就进 bios 了


今天用了台华硕的S400c WIN8 的超级触屏本,就不支持传统兼容模式的启动了好像,跟你描述的基本差不多
回复

使用道具 举报

76#
发表于 2012-10-6 00:03:08 | 只看该作者

回复 #1 fujianabc 的帖子

谢谢分享。。。不错的贴
回复

使用道具 举报

75#
 楼主| 发表于 2012-9-15 09:20:13 | 只看该作者
原帖由 2012迟到 于 2012-9-14 23:37 发表
老大,我新买的y480支持uefi,但没有efi shell ,按照你的方法弄了后,开机F12也没有带uefi开头的设备,请问是怎么回事呢

直接在启动设置中设置从硬盘或者u盘上的efi shell文件启动
回复

使用道具 举报

74#
发表于 2012-9-14 23:37:30 | 只看该作者

回复 #10 fujianabc 的帖子

老大,我新买的y480支持uefi,但没有efi shell ,按照你的方法弄了后,开机F12也没有带uefi开头的设备,请问是怎么回事呢
回复

使用道具 举报

73#
发表于 2012-7-27 20:45:39 | 只看该作者
收藏 学习        
回复

使用道具 举报

72#
发表于 2012-7-25 20:03:33 | 只看该作者
原帖由 fujianabc 于 2012-7-25 14:51 发表

bootmgfw.efi直接加载winload.efi,不需要bootmgr,只有bios方式启动才用bootmgr。

32位win7不支持uefi启动


谢谢明释!
回复

使用道具 举报

71#
 楼主| 发表于 2012-7-25 14:51:15 | 只看该作者
原帖由 2011星星雨 于 2012-7-24 18:17 发表


想问一下,既然bootmgfw.efi能引导bootmgr,能不能通过修改BCD,使bootmgr引导grldr或是ntldr?还有能不能用bootmgfw.efi引导bootmgr启动32位windows7?

bootmgfw.efi直接加载winload.efi,不需要bootmgr,只有bios方式启动才用bootmgr。

32位win7不支持uefi启动
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-5-23 08:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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