无忧启动论坛

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

[教程] 制作ISO【3支持】BIOS+UEFI(IA32+X64同时支持)已测试成功!文件替换后直接用..

    [复制链接]
跳转到指定楼层
1#
发表于 2013-4-14 00:54:34 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2011hiboy 于 2013-4-28 19:04 编辑

首先说明:这篇教程提自我的另一篇原创帖子:UEFI启动详解:启动分析+N项操作实例,赶紧进来学习,不要落伍啦,该给自己充电咯...

因帖子篇幅不小,且考虑到不会制作ISO启动文件的朋友很多,更不要说制作BIOS UEFI 双支持可启动ISO了.....

论坛上很多PE的作者纷纷发布BIOS/UEFI双启动ISO,其制作方法大多不为人知....



神马打字说明都是浮云,直接视频解说.....
视屏解说+最新最全的资料包

Win8PE 三启动模板 (BIOS+UEFI_X64+UEFI_ia32)



这里只提供win8pe的3支持模板给大家使用,注意使用最新的UltraISO编辑使用,否则会破坏UEFI启动......

想要更多的ISO的自己看视频学习吧。祝大家能够成功,OSCDimg具体参数的意义我就不说了,大家百度谷歌很多的。。

点评

http://www.meilixs.com/ 美丽小说网  发表于 2015-4-3 19:27

评分

参与人数 25无忧币 +116 收起 理由
paulan + 5 很给力!
天使的魔翼 + 5
maomihuacha + 1 很给力!
有阴也有阳 + 5 很给力!
l18c19 + 5 赞一个!
goodsky + 3 赞一个!
maoyicheng + 5 很给力!
bg888 + 5 很给力! 有新的东西给俺们分享一下吧
御天 + 5 赞一个!
yxing365 + 5 很给力!
hehui + 5 很给力!
ddianxing + 5 很给力!
zhczf + 5 赞一个!
propc + 5 赞一个!
2011yang1238 + 5 赞一个!
2010jfm2799 + 5 很给力!
kala11234 + 5 神马都是浮云
wyqdlthy + 5 很给力!
2011hjcjie + 5 赞一个!
2011luke_lzj + 5 很给力!
peterpanheaven + 5 +1000分.很给力!真的給力!
wowuwoxiu + 5
xlinuxer + 5 赞一个!
jdcgzb + 2 很给力!
糊涂 + 5 赞一个!

查看全部评分

2#
 楼主| 发表于 2013-4-14 17:42:07 | 显示全部楼层
baosheng00 发表于 2013-4-14 11:39
使用这个是制作成功了,但有一点使用EZBOOT,制作引导,可以启动但DOS返还菜单失败,这个问题在进行研究。
...

该问题需要修改菜单参数。可惜我不知道...呵呵
回复

使用道具 举报

3#
 楼主| 发表于 2013-4-14 17:46:17 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-14 18:15 编辑
haook 发表于 2013-4-14 08:40
请问楼主:让EFI32与EFI64同时支持,怎么制作?谢谢!


你是说一个UEFI光盘同时支持IA32和X64?我想下,应该可以的....

已解决,我稍后更新主贴,及时下载新的制作包使用即可。一张ISO同时支持BIOS+UEFI_IA32+UEFI_X64

就像U盘FAT分区同时支持三者一样。

回复

使用道具 举报

4#
 楼主| 发表于 2013-4-15 02:03:51 | 显示全部楼层
阿弥陀佛 发表于 2013-4-14 21:52
楼主好热心。回帖支持一下。请问同时支持IA32和x64的EFI文件从哪来的?我之前是从HHH333老大那边提取的,但 ...

我是提取分别windows 8 x86和x64的uefi启动记录,然后重新修改合并它们即可,原理还是我讲的FAT和efi。
回复

使用道具 举报

5#
 楼主| 发表于 2013-4-16 16:39:27 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-16 16:51 编辑
baosheng00 发表于 2013-4-16 14:25
测试启动 UEFI X64

修改BCD文件同时也支持WIN8 PE X86系统


我看不出这两幅图之间的关系。看第一幅图应该是虚拟机截图的?

对于UEFI启动:
X64构架的电脑可以启动X64构架的PE,那是因为PE里面的winload.efi是64位的。不能启动X86的PE那是因为里面的winload.efi是32位的。

对于传统BIOS启动:
没有限制。可以启动X86,X64.

你应该放出在UEFI启动下:
1、X64构架的计算机,在UEFI启动模式下,既能启动X64又能启动X86的证明。

2、IA32构架的计算机,在UEFI启动模式下,既能启动X86又能启动X64的证明。

3、让X86PE同时支持X64构架和X86构架的证明

4、让X64PE同时支持X64构架和X86构架的证明

据我实机和虚拟机启动的结果来看是无法证明的。

回复

使用道具 举报

6#
 楼主| 发表于 2013-4-17 03:29:26 | 显示全部楼层
baosheng00 发表于 2013-4-16 20:40
就是要证明
这几点

你能够发表你的看法我也挺高兴,生命在于折腾嘛....

按你说的的话,我之前也想过,不过没有动手实验,觉得麻烦了,现在既然你提到了我就实验一番好了。

不过提前预测喜爱:首先一个PE里面的 winload.efi替换了,那么始终这个winload.efi要么支持X86要么支持X64,如果你为了让X86的PE能够在UEFI模式下的X64构架的计算机上运行而替换winload.efi(X64,假设成功了),那么X86就不能支持IA32了,我觉得还是有瑕疵....??
我觉得能够让一个PE同时支持两种构架才好,我不知道能否实验成功...
回复

使用道具 举报

7#
 楼主| 发表于 2013-4-17 04:20:32 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-17 04:33 编辑
UEFI 启动→winload.efi(X86或x64) → 加载BCD文件 → 启动BCD文件选择进入项 →进入PE

我们可以修BCD文件,将X64修改为加载X86文件,结果可以启动。

说明BCD文件后部分我们可以自由继续DIY



我试验错误,没有得出想要的....你说的修改BCD可以启动,怎么个修改法呢?

纠正下你上面的启动顺序:

→UEFI 启动
→按照你的计算机构架查找Bootx64.efi或者bootia32.efi
→加载efi/microsoft/boot/BCD文件
→按照BCD文件里面的项目启动(假设启动PE)
→加载WIM文件到RAMDISK
→加载\windows\system32\winload.efi
→winload.efi接下来加载系统内核程序ntoskrnl.exe,并转交控制权,开始启动电脑...
→启动服务,N多启动项,进入桌面,操作.......启动完毕!

顺便说下,ntoskrnl.exe文件是由校验和签名的,只能由32位的winload.exe或者winlaod.efi引导,32位系统用的ntoskrnl.exe,64的位也是,
不能出现混搭引导,因为那不行,后面n多校验和调用文件都不匹配,引导会失败...

我不知道你修改的过程是什么,但是我想你可能哪些地方忽略了....
你说说你的方法吧,看看如何修改的...
回复

使用道具 举报

8#
 楼主| 发表于 2013-4-17 04:30:49 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-17 04:31 编辑
hhh333 发表于 2013-4-16 21:31
没做出来就不要误导,32与64共用BCD出菜单的办法,我想应该是我的原创吧。
后来发现这个有一个大的弊端, ...

32与64共用BCD出菜单的办法,我想应该是我的原创吧。

话说共用BCD是否就是efi\microsoft\boot\bcd  ?微软系统光盘不管x64,x86的操作系统,该位置都有一个bcd,然而bcd没有X86和X64之分,所以bcd我们可以自行创建修改....


后来发现这个有一个大的弊端,就是EFI64的只能启动64位的PE,如果选32位的,还是会提示错误进不去,反之也是一样的,32位的机子选64位的PE,也会进不去。这样就形成了一个误导,导致很多人来问,32位的进不去。所以后来才搞不共用BCD的办法,严格地说不能叫同时支持32与64位,只能叫分别支持32位与64位。

这句话的理解,“这样就会形成一个误导” 你说的误导应该是“很多人认为32位的PE没有用吧”

然而事实上应该就是:“EFI64的只能启动64位的PE,如果选32位的,还是会提示错误进不去,反之也是一样的,32位的机子选64位的PE,也会进不去”



我的理解没有误吧?开始我还理解岔了...
回复

使用道具 举报

9#
 楼主| 发表于 2013-4-17 09:27:12 | 显示全部楼层
hhh333 发表于 2013-4-17 09:10
实际上很简单,因为共用BCD文件,在BCD中做上32和64的菜单,但还得用户选择,选错了就进不去。通过修改引 ...

我没有修改引导文件,只保持一个BCD,我把UEFI启动添加中文了,然后后面加了中文提示。这样的

另外修改引导文件是不是修改对应类型的efi?使用十六进制编辑器修改吗?这也是个不错的选择,让电脑自己选择。
回复

使用道具 举报

10#
 楼主| 发表于 2013-4-17 09:28:29 | 显示全部楼层
shan 发表于 2013-4-17 09:17
请问用启动管理器制作的量产,也可以支持BIOS+EFI双启动吗?


我不能确定量产结果,因为那和你的主控有关,量产也不能100%等于光盘。当然刻盘后肯定没有任何问题的。

点评

版主好,我用下面命令制作量产合盘花屏(ISO Maker 1.0软件一样)用简易启动测试与ud都能成功启动,是不是这行参数不适用量产啊,能帮忙看看可以改下参数吗,谢谢。。。 ::本行命令适用于制作BIOS/UEFI 双启动 PE  详情 回复 发表于 2015-2-9 10:24
回复

使用道具 举报

11#
 楼主| 发表于 2013-4-17 22:53:33 | 显示全部楼层
zds1210 发表于 2013-4-17 22:13
需要说明一点的是,第一次生成bios和ueif双启动模式ISO,是要用到打包工具。
打包后,要改最新版的ultraiso ...

新版本Ultraiso出来了的确方便多了。直接使用制做好的也挺不错。前提有模板。

我在最初的时候,制作可启动ISO真苦逼,什么都不会,论坛上找不到,百度没有,虽然有UltraISO但不会制作,简单制作出来的又有问题

所以可是个人还是觉得,自己会制作比较保险,自己会的总比拿别人用的感觉好,嘿嘿。
当然,对于新手需要一个过程,可以使用现成的,教程就留给那些想学会的人好了。
回复

使用道具 举报

12#
 楼主| 发表于 2013-4-18 00:42:00 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-18 00:43 编辑
zds1210 发表于 2013-4-18 00:26
还有,打包程序能不能直接打包成需要的光盘格式,支持bios下nt5PE启动?如果要改,怎么改 ?


下方有一个单独打包ISO的命令的。

@echo off
set intdir=
set bootFile=
set output
=
set jb
=
OSCDimg -h -m -u1 -o -l%jb% -b%bootFile% %intdir% %output%  
cls&echo ISO生成完毕!
ping -n 3 127.0.0.1>nul
回复

使用道具 举报

13#
 楼主| 发表于 2013-4-18 00:54:14 | 显示全部楼层
zds1210 发表于 2013-4-18 00:44
已经使用了,但据h大说,不能用udf格式,否则解开内核的03PE启动不了。请把命令再改进 一下,

u1是兼容模式,u2才是纯udf模式

如果你不需要udf

OSCDimg -h -m -d -o -l%jb% -b%bootFile% %intdir% %output%
回复

使用道具 举报

14#
 楼主| 发表于 2013-4-18 01:59:41 | 显示全部楼层
fujianabc 发表于 2013-4-18 01:42
建议一直用u1,这个包含udf和iso两种文件格式,通用性更强,可以在nt 5.x/grub4dos/efi shell下访问
u2则 ...

u2制作nt6PE的时候使用,微软的官方win8镜像都是u2的。

u1兼容使用,制作合盘,或者其他ISO
回复

使用道具 举报

15#
 楼主| 发表于 2013-4-22 09:06:13 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-22 09:14 编辑
5ijiajia 发表于 2013-4-22 07:34
老师 这个iso里面怎么没有构架文件呢?不是启动必须的吗?
还有 我的计算机到底是32位还是64位的构架怎么看 ...


你好,我共享的那个ISO只是用来测试的,其实资料包才是最全的,按照说明可以自己制作ISO的哦

纠正下兄弟的说法,你的计算机或是IA32构架或是X64构架
可以去我那个UEFI详解帖子C部分详细了解下这方面知识。

至于辨别很简单:
1、打开CPU-Z看你的指令集有没有EM64T(Intel64)或者AMD64
2、打开AIDA64,看你的
         主板---CPU,指令集有没有X86-64;
         主板---CPUID  “64位 x86 扩展 (AMD64, Intel64)”  支持 就表示你的计算机是X64,不支持就是说是 IA32

对于市面上大多数计算机来说其构架是X64的,或者说你的CPU只要不是赛扬或者更老的话,那基本也是X64构架的....
回复

使用道具 举报

16#
 楼主| 发表于 2013-4-22 21:02:23 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-22 21:06 编辑
5ijiajia 发表于 2013-4-22 17:09
老师 我想问你一下 你看我说的对不对
bios+mbr的启动支持32位和64位的系统
uefi+gpt的启动只是支持6 ...


1、bios+mbr的启动支持32位和64位的系统(你说的对的
2、uefi启动支持多少位的系统,表层来看是和UEFI固件是32bit或者64bit有关,32bit uefi启动 x86系统;64bit uefi启动x64系统
3、对于Windwos来说,系统和PE都是微软的,他们之见其实是相似的,在启动方面是一致的,比如64bit的uefi启动环境下:
      Windows 8x64可以运行,win8pe x64可以运行,但是windows 8 x86、win8pe x86不可以运行。
4、知识混乱不怕,不懂不怕,有一颗学习的心,利用VM虚拟机多多做测试,你会学到更多,说永远不如做来的实在....


PS:uefi启动支持多少位的系统 深层次来说(个人看法):
CPU决定UEFI类型,UEFI固件类型和你的CPU息息相关,就是说uefi启动支持和你的CPU指令集有关,CPU指令集集包含系统运行所需要的指令,
那就可以运行,否则不可运行,而UEFI固件是基于c的,它的执行也需要相关CPU指令,CPU没有相关的指令那么efi文件不能被运行(UEFI可不会提供指令集和执行,那是CPU的事)....
回复

使用道具 举报

17#
 楼主| 发表于 2013-4-22 23:34:59 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-22 23:37 编辑
5ijiajia 发表于 2013-4-22 22:47
受益匪浅啊 感谢老师
我想问下 uefi的启动一定要是gpt分区格式吗?mbr不行是吧?
说是uefi+gpt只能运 ...


uefi启动不一定要gpt格式磁盘,mbr格式磁盘也可以,但是uefi启动必须要一个fat分区。

uefi+gpt对于目前市面上的电脑来说,是的只能运行x64的系统,但是理论上来说还可以运行x86系统,
这不过这种情况很罕见,所以默认我们就认为uefi+gpt的电脑是x64的。


电脑的CPU构架是IA32的,那么可以启动支持uefi启动的x86系统,但是目前市面上的CPU构架98%是X64的
故大家的UEFI启动的系统都是x64的。

32位构架的计算机,也有,不过很罕见,基本你遇不到,它的启动原理和x64的基本一样,可以作了解,不必深入研究。

当win7PE普遍流行,win8pe初现的时候,x86的win8pe先出现,那时候没有意识到uefi的崛起,忽略了x64的win8,后来uefi渐渐提起,x64的win8pe逐渐火起;
作为一个PE制作者,我想那些x86的PE作者为自己的pe集成uefi启动,虽然win8 x86 pe uefi启动用到很少,应该是出于一种尽善尽美的想法。


diskgenius 可以有解决办法,注意数据。高端隐藏用的不多,不是很权威。
回复

使用道具 举报

18#
 楼主| 发表于 2013-4-22 23:50:26 | 显示全部楼层
5ijiajia 发表于 2013-4-22 23:44
老师 你的解释太详细了 ……哈哈
我还有几点疑惑 我安装原版的win7 64位 如果用mbr可以安装成功吗 我看 ...

那是他们通过UEFI引导了安装光盘。安装系统就默认成用户需要UEFI方式的安装。
我们完全可以在传统模式下安装,然后开辟FAT,然后开启UEFI引导,再修复计算机默认引导.....

如果你使用虚拟的话,可以体验支持uefi启动的x86的pe,否则不行,这是硬性的。
回复

使用道具 举报

19#
 楼主| 发表于 2013-4-23 00:04:04 | 显示全部楼层
5ijiajia 发表于 2013-4-23 00:00
哦 明白了 下次我就试试 uefi启动 mbr分区下安装64位版本系统
到底pe2003 pewin7 和pe win8有什么区别啊 ...

区别是有的,无法详述,自己体验吧。
回复

使用道具 举报

20#
 楼主| 发表于 2013-4-26 17:34:13 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-26 19:12 编辑

教程暂缓,暂时没空了
回复

使用道具 举报

21#
 楼主| 发表于 2013-4-26 20:10:04 | 显示全部楼层
xlinuxer 发表于 2013-4-26 19:43
老师您好!向您请教问题:
我把WIN7 X64的镜像解压至16G的U盘 ,按照其他老师说的,把 INSTALL.WIM里面的b ...

你要干嘛呢?安装win7 x64?还是进入PE?你重点一个没有说到...

bootmgfw.efi文件改名bootx64.efi是没错,可是干嘛放到U盘根目录呢....??

磁盘工具还是Diskgenius比较好使,我都是使用这个工具的。

回复

使用道具 举报

22#
 楼主| 发表于 2013-4-26 21:55:30 | 显示全部楼层
20130101 发表于 2013-4-25 15:54
三支持的iso模板使用的图文教程  什么时候放上来?----这个菜鸟必须的

视频已出........
回复

使用道具 举报

23#
 楼主| 发表于 2013-4-27 00:29:32 | 显示全部楼层
xlinuxer 发表于 2013-4-27 00:11
哦,忘记说重点了!我的是ASUS  G46VM 本本,预装的WIN8  , 想格掉重新装win7  X64  的系统!

它原来 ...


这样啊?很简单。
如果你想干净点的话,那么备份重要数据,然后删除所有分区,再重新新建,只需要一个ESP分区,给它100MB足够了。

启动进入PE系统,如何安装可以看我写的uefi详解里面有个部分就是讲解安装操作系统的。

之后bootx64.efi需要放到efi\boot\  才有效....而不是根目录
回复

使用道具 举报

24#
 楼主| 发表于 2013-4-28 18:41:45 | 显示全部楼层
20126666 发表于 2013-4-27 14:13
请教楼主,UEFI_ALL.BIN怎么做出来的? 就是说怎么将efisys_noprompt.bin融合进去的? 怎么做到直接调用bcd ...

efisys_noprompt.bin 其实是个软盘镜像,我视频里面有说明的

知道efisys_noprompt.bin是软盘镜像的时候,那剩下的步骤就简单了,解开软盘镜像,替换文件即可。

直接调用BCD那是因为我使用了光盘efi\boot\bootx64.efi 替换掉了软盘该位置的efi文件了,而光盘efi\boot\bootx64.efi是直接加载bcd文件的。
回复

使用道具 举报

25#
 楼主| 发表于 2013-4-28 19:00:22 | 显示全部楼层
2012zhd 发表于 2013-4-27 14:56
那个制作好的模板怎么不见了。

我放出win8PE的三支持模板了,pe的模板比合盘的模板好统一,故放出。
回复

使用道具 举报

26#
 楼主| 发表于 2013-4-28 21:17:58 | 显示全部楼层
hufly 发表于 2013-4-28 20:18
按版提供的ISO命令做出来的PE在自己的ACER V5 471的本本启动X86PE加载的WINLOAD.EFI 我的本本没有UEFI.X64的 ...

这款机器的处理器是i5的,UEFI固件版本是64位的,那么UEFI启动X86的系统必然会出现winload.efi的错误。

你需要使用支持uefi启动的x64的pe,比如win8PE x64。
回复

使用道具 举报

27#
 楼主| 发表于 2013-4-28 22:55:49 | 显示全部楼层
20126666 发表于 2013-4-28 21:59
感谢您百忙之中予以回复,已经明白了。不过您是怎么做到:既支持32位又支持64位的呢?好像没有这样的ef ...

32位系统与64位系统需要的efi并不冲突,分别是bootia32.efi,bootx64.efi,都放着不就好了。
回复

使用道具 举报

28#
 楼主| 发表于 2013-4-28 23:10:42 | 显示全部楼层
hufly 发表于 2013-4-28 21:44
照这么说UEFI的BIOS,启动设备前不一定会带UEFI字样的? 我这本本BIOS里没有UEFI相关的选顶.......

X86系统启动指向winload.efi 这个条目是在BCD菜单中设置的,可以修改位置。

至于UEFI启动的PE能否运行BOOTSECT.exe,我试验了下,可以运行,所以这个结论不正确,要相信自己实验的结果。

究竟怎样判别PE是否从UEFI启动的呢?很简单,你把efi文件夹改名,看看能不能启动,
如果改名后不能启动,那说明你之前能启动的是从UEFI启动的。
如果改名后依旧能启动,那说明你之前能启动是从BIOS启动的。
efi文件夹是uefi启动必须的文件夹。
回复

使用道具 举报

29#
 楼主| 发表于 2013-4-30 19:46:52 | 显示全部楼层
无垠 发表于 2013-4-30 18:41
"我只集成了一个兼容32位的WIN8X64PE,不管EFI32还是EFI64全指向这个PE"糊涂先生 ...

兼容32位的win8 x64,这个应该相对于BIOS启动方式来说的,没有问题,BIOS下可以运行X86,X64的win8pe。

但是对于UEFI来说,32位的UEFI固件只能启动支持UEFI启动的win8PE x86;64位的UEFI固件只能启动支持UEFI启动的win8PE x64。

糊涂说的是,32位UEFI 固件虽然稀少,但也是存在的,所以还是先别抛弃win8 x86。
我平时没有接触过那么多的机器,如果是专业搞售后或者维修的就备一个win8 x86好了,
反正要不了多少空间;越往后肯定是win8 X64当道,这才是必须的备的。
回复

使用道具 举报

30#
 楼主| 发表于 2013-4-30 22:59:40 | 显示全部楼层
本帖最后由 2011hiboy 于 2013-4-30 23:05 编辑
无垠 发表于 2013-4-30 20:18
在一个ISO内,糊涂先生把uefi32/64 都指向64位w8pe,都是启动64位wpe? 或者uefi32启动32位w8pe,uefi64 ...


阿弥陀佛手动选择不要多讲,你知道。
HPY自动选择,修改了efi的指向,不同的uefi固件指向不同的PE,原理上和阿弥陀佛的一样,根据uefi固件类型启动不同的PE。


糊涂都指向了64位的pe,这个你可以虚拟机测试下看看,你就知道结果了。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 21:45

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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