无忧启动论坛

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

[原创] UEFI启动视频详解:启动分析+N项操作实例,赶紧学习,不要落伍啦,该给自己充电啦...

    [复制链接]
1#
发表于 2013-4-9 17:20:54 | 显示全部楼层
leonxis 发表于 2013-4-9 17:09
好像很复杂的样子。虽不明但觉厉!感谢楼主出来做科普哇
再请教楼主一个非常小白的问题。据说EFI是从文件启 ...

bcdboot不用加/s参数,自动能往没有盘符的ESP分区中写入启动文件的
回复

使用道具 举报

2#
发表于 2013-4-9 17:28:36 | 显示全部楼层
楼主漏了很重要一步,就是EFI的固件启动菜单,也就是主板启动时按F12出来的启动菜单,这个菜单是直接存储在主板上的,bcdedit中{FWbootmgr}也能列出。
这个菜单是让用户能够选择bootx64.efi以外的文件来启动,这个菜单一般可以在主板设置中添加和更改。

另外,所谓的bootx64.efi是通用名,并不代表某个特定文件:对于windows来说,其实就是bootmgfw.efi改名而来,对于grub2,则是grub.efi改名而来。

点评

这个就是我在找的nvram  详情 回复 发表于 2021-7-12 13:52
回复

使用道具 举报

3#
发表于 2013-4-9 17:30:38 | 显示全部楼层
leonxis 发表于 2013-4-9 17:24
原来如此。
那请教一下,为什么一个普通的FAT32U盘,放入shell.efi等文件后,在boot manager里面却看不 ...


随便一个FAT分区就行,FAT12/16/32都行,楼主漏了很重要一步,具体你看我8楼回复的内容,你可以自己在主板设置中添加需要启动的.efi文件
回复

使用道具 举报

4#
发表于 2013-4-9 17:34:19 | 显示全部楼层
2011hiboy 发表于 2013-4-9 17:29
这个其实不复杂,把B模块看懂就好了。

efi.shell文件没有被加载啊,你好好看看我写的B部分。你就会明白 ...

EFI+GPT启动菜单用bcdboot最简单了,用其它工具手动完成感觉都有些多此一举,还需要挂载盘符
回复

使用道具 举报

5#
发表于 2013-4-9 17:39:42 | 显示全部楼层
2011hiboy 发表于 2013-4-9 17:36
Right,我上面B部分补充的,bootx64.efi只不过是一个特定位置的特定名称,它的内容只要你会,你可以任意该 ...


另外,还有EFI shell里面的startup.nsh也可以写启动菜单,作用类似于dos的autoexec.bat。不过这个脚本能找到的教程太少,暂时也不用去理会了

点评

今天遇到一个问题:我在虚拟机里面用uefi的引导方式引导WIN8x64的PE,在PE环境,用diskgenius分出ESP、MSR、和基本数据区,然后用wimtool解开windows7旗舰版到数据区; 然后用bcdboot修复UEFI引导,用的指令是:b  详情 回复 发表于 2013-8-19 22:22
回复

使用道具 举报

6#
发表于 2013-4-10 19:36:47 | 显示全部楼层
2011hiboy 发表于 2013-4-10 17:40
PMF使用:diskgenius 4.20,选择目标分区--->右击,从镜像文件还原--->选择PMF镜像。还原完毕就能支持U ...

指出一点错误,一楼的可以修改一下。vista x64 sp1开始就支持uefi启动了
回复

使用道具 举报

7#
发表于 2013-4-11 15:23:53 | 显示全部楼层
2010qaqz111 发表于 2013-4-11 05:00
LZ给力了,话说最近都在埋头搞别的事,都没注意到开了个 UEFI 版,之前在 G4D 区问了一些 UEFI 的问题,也没 ...

1、GPT分区时一般会默认自动创建ESP分区,但如果你强制手动删除ESP分区的话,在尾部创建ESP分区也是可以的。但进几年,最好不要让ESP分区出现在2T以外的区域,虽然uefi启动本身完全支持这种样子分区,但难保主板或者系统存在bug,让2T以上的ESP分区启动出现问题

3、UEFI启动本身就是为了抛弃bios启动那种方式而采用从文件启动的,你要直接从磁盘某些扇区读取数据启动,这是在开历史的倒车。另一方面,GPT分区规定了,GPT硬盘不能存在不属于任何分区的隐藏区域(除了硬盘开始用于GPT分区表的区域),所以要启动的文件必须存在于某个分区中
回复

使用道具 举报

8#
发表于 2013-4-12 03:26:57 | 显示全部楼层
楼主有兴趣可以做一下UEFI+MBR启动windows的教程,或者是mbr硬盘上win7/win8单系统bios/gpt双模式启动。

因为对于目前大多数人来说,只要不用2TB以上容量的硬盘,GPT分区表并不是必须的,而且用了GPT的硬盘就没办法用bios模式启动windows和其他老系统了。
回复

使用道具 举报

9#
发表于 2013-4-12 18:09:33 | 显示全部楼层
2013hkwwcl 发表于 2013-4-12 12:09
fujianabc老师不妨也做个教程吧,我现在虽然会uefi+mbr启动了,但总感觉还有什么地方没想到,没认识到,期 ...

之前我好几个帖子里面都提到过MBR+UEFI启动具体做法,不过这些帖子都没搬到这个板块来
回复

使用道具 举报

10#
发表于 2013-4-13 14:35:25 | 显示全部楼层
myBOOT 发表于 2013-4-13 08:26
应该有个误解。IA32不是x86的UEFI。
本质IA32是给安藤系列的机器。

别瞎说,安腾是IA64,IA32就是x86
回复

使用道具 举报

11#
发表于 2013-4-13 14:39:01 | 显示全部楼层
2010qaqz111 发表于 2013-4-13 13:13
我还以为从 EFI 启动 G4D 了。

之前找到一个 grub2.efi,能够启动起来,但是 chainloader (hd0)+1 报 ...

efi启动本质是执行一个.efi文件,所以efi版grub2中应该是chainloader一个.efi文件,而不是chainloader一个扇区
回复

使用道具 举报

12#
发表于 2013-4-13 18:03:07 | 显示全部楼层
2010qaqz111 发表于 2013-4-13 16:38
google能搜到grub2配置里有chainloader (hd0,1)+1的写法,但是不知道那个文章说的是什么版本的grub2。晚点 ...

那个是bios下面grub2从启动hd0,1分区启动的命令。efi下没有从那个设备或者那个分区启动的概念,只有从哪个文件启动
回复

使用道具 举报

13#
发表于 2013-4-13 18:04:38 | 显示全部楼层
zbkh 发表于 2013-4-13 16:53
你好,我的uefi相关要点基本上都是你传授的,很感谢你!最近也有做uefi引导,我想做PE合盘,不知道bcd怎么 ...

bcdedit命令来添加启动项
回复

使用道具 举报

14#
发表于 2013-4-13 21:53:06 | 显示全部楼层
2010qaqz111 发表于 2013-4-13 20:32
虽然我也觉得道理上 efi 没了中断不大可能直接把控制传到老的代码去,但是真被证实了确实如此还是觉得很那 ...

64位uefi确实无法启动32位pe
回复

使用道具 举报

15#
发表于 2013-4-13 21:58:08 | 显示全部楼层
myBOOT 发表于 2013-4-13 19:01
我觉得说IA32构架和x86还是有区别的。

按wiki的说法两个概念有些差别
http://en.wikipedia.org/wiki/IA-32
IA-32是指32位x86处理器(而且要不支持64位),从386开始到P4/K7,之后的支持64位的x86处理器就叫x86-64或者x64架构了,之前8086到286则只支持16位,也不算IA-32。
回复

使用道具 举报

16#
发表于 2013-4-13 22:05:00 | 显示全部楼层
本帖最后由 fujianabc 于 2013-4-13 22:13 编辑

楼主一句话不对:
把efisys_no prompt.bin命名为UEFI.bin示意UEFI模式下引导光盘需要的引导记录;目前来说没有可以替代的。

这个efisys_no prompt.bin就是一个1.44M的软盘镜像而已,用winimage打开可以修改这个软盘镜像,UEFI启动时自动执行软盘镜像中的bootx64.efi文件。之所以UEFI启动要用软盘模拟,是因为uefi只能直接读取FAT格式,模拟软盘提供了一个1.44M的FAT12分区来存放基本的启动文件。用户可以用自己的.efi文件替换掉软盘镜像中的bootx64.efi,或者自己手动制作一个这样的软盘镜像也很容易
回复

使用道具 举报

17#
发表于 2013-4-13 23:36:29 | 显示全部楼层
2011hiboy 发表于 2013-4-13 22:29
先感谢大元帅告诉我这么一个窍门,我早该想到的1.4MB的文件可能是软盘的....

不过bin里面的bootx64. ...

直接用bootmgfw.efi放入软盘镜像代替之,这样连光盘根目录下的bootmgr.efi都不要了。。。

和bios模式下bootmgr类似,bootmgr是startup.com和bootmgr.exe两部分组成的(ntldr类似),而efi版的bootmgfw.efi也是由这个bootx64.efi和bootmgr.efi两部分组成的
回复

使用道具 举报

18#
发表于 2013-4-13 23:39:48 | 显示全部楼层
2010qaqz111 发表于 2013-4-13 23:28
其实我还是比较坚信 32 位的 win 以后会能够从 x64efi 启动的,要不然主板就必定会同时支持 x64efi 和 bi ...

64位windows本来就支持运行32位程序的
回复

使用道具 举报

19#
发表于 2013-4-22 03:33:33 | 显示全部楼层
本帖最后由 fujianabc 于 2013-4-22 03:35 编辑

楼主又开始瞎说了:
什么叫x64-64?安腾就是安腾(Itanium),简称IA-64,与x86,x64没有任何关系。估计你连x86中的X代表什么都不清楚,x86名字来自从8086,286,386,486等等,x代替了前面的数字,所以成了x86,而x64本身就是x86-64的简称。
而且IA-64架构的windows也是能够运行普通的32位x86程序的,只是速度比较慢而已(依靠ia-64版wow64软件指令翻译,或者是靠安腾一代自身的硬件指令翻译)

点评

请你搞清楚,X64可是是X86-64的简称,也可以是X86指令集的扩展集:X86-64,知道吗? 还不知道就打开AIDA64,自己看计算机指令集吧...事实胜于雄辩  发表于 2013-4-22 08:58
回复

使用道具 举报

20#
发表于 2013-4-22 15:00:42 | 显示全部楼层
本帖最后由 fujianabc 于 2013-4-22 15:06 编辑
2011hiboy 发表于 2013-4-22 08:40
而且关于那个 IA32 X64 IA64你也看清楚了,我不相信你不懂。

IA32:X86-32 (纯X86处理器搭配32bit系统) ...


ia-64是纯64位处理器,但什么叫x64-64?
x64这个词的意思是x86-64,不是64位。

另外我说的安腾版windows是能够运行32位x86程序的,这个依靠的是系统内置的wow64来进行指令翻译。基本上能在x64 windows中运行的32位x86程序,都能在ia-64 windows中运行。
http://en.wikipedia.org/wiki/WoW64
转换是把x86指令专成ia-64指令,不是转成x64指令
回复

使用道具 举报

21#
发表于 2013-4-22 15:02:48 | 显示全部楼层
本帖最后由 fujianabc 于 2013-4-22 15:09 编辑
2011hiboy 发表于 2013-4-22 08:30
唉...又开始瞎说??道理从何而来?
我自问没有任何瞎说的,就那个UEFI规范下的NVRAM我说的不对,可 ...


我一直想说的是,只要是32位uefi,就能UEFI启动32位win8,不管cpu是x86-32还是x86-64,不管cpu有没有x86-64指令集
回复

使用道具 举报

22#
发表于 2013-4-22 21:34:58 | 显示全部楼层
本帖最后由 fujianabc 于 2013-4-22 21:37 编辑
2011hiboy 发表于 2013-4-22 20:29
==========================
::我表达的(下面的只是示意,而非定义)
IA32:X86-32 (纯X86处理器搭配32 ...

IA64是纯64位处理器没有错,我示意X64-64那是说纯X64处理器搭配64bit系统,助于理解和记忆,而非给IA64下定义为X64-64。

再说一次,IA-64是64位处理器但不是x64处理器。“纯x64处理器”更是不对的提法
事实上,安腾平台的绝大部分机器不是运行windows的,而是运行UNIX和VMS的大型服务器,运行windows的安腾工作站从头到底都是很失败的。我这里说wow64,只是想告诉你IA-64的windows可以运行x86的exe程序这个事实而已。

最后你的推理不知道想说什么,没有x86-64指令集的cpu当然不能启动Winpe x64,不管bios还是uefi或者虚拟机都不能。
我的意思只是说具有x86-64指令的cpu,如果主板还是32位UEFI,那是能够正常UEFI启动32位win8和win8 pe
回复

使用道具 举报

23#
发表于 2013-4-22 21:42:21 | 显示全部楼层
本帖最后由 fujianabc 于 2013-4-22 21:45 编辑

最后补充一点,就算是纯64位处理器,也是能够运行32位系统的,但这个概念不用过于理会了

DEC ALPHA架构的Winnt 4.0就是典型,64位alpha处理器运行32位nt 4.0,后来winnt 5.0/win 2000 beta的alpha处理器版才变成64位的(alpha平台的nt 5.0是第一个64位windows)
回复

使用道具 举报

24#
发表于 2013-4-23 23:45:43 | 显示全部楼层
2011hiboy 发表于 2013-4-23 17:03
boot.sdi就是在启动wim格式的pe时候建立内存盘需要的。

MBR.bin UEFI_ALL.bin这是制作BIOS UEFI 双启 ...

其实bootmgr.efi一直就没什么用,bootmgr.efi是配合软盘镜像中的bootx64.efi(软盘镜像中的bootx64.efi原名叫cdboot.efi)来用的
直接用bootmgfw.efi替代掉软盘镜像中的bootx64.efi后,bootmgr.efi就没用了

点评

看了你的解释,我才明白啊。。感谢。  发表于 2013-9-6 02:36
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-1 06:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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