无忧启动论坛

标题: windows 7+windows 8的简单合盘,无风险,安全,完美 [打印本页]

作者: 2012velino    时间: 2012-9-12 19:17
标题: windows 7+windows 8的简单合盘,无风险,安全,完美
我把编译的程序和源代码以及ISOCMD上传了。坑爹的附件尺寸要小于102.4KB,只能上传到迅雷快传了
http://kuai.xunlei.com/d/ZVTHQTVUGTSM----已失效
http://kuai.xunlei.com/d/ZOLIIJPQIMPZ


有些注意事项在14楼
第四步有个小错误,修正了一下

感谢“极度凶残”在27楼提出合盘的隐藏分区安装方法,win7 2008 8 2012 vista都可以用win8合盘的方式在隐藏分区完美安装的方法,只需要在第四步中的winpeshl.ini中把showdriver.exe放到setup32.exe上面,并把showdriver.exe放到system32里面就可以了



这几天琢磨着把Windows 7Windows 2008Windows 8这几个系统32位和64位的整合到一起。
开始只是简单的将7/8/2008install.wim整合到一起,测试的时候发现如果使用Windows 7的镜像7/2008可以正常安装,但是win8却无法正常安装。
而如果用Windows8光盘镜像的话,则出现很奇怪的问题,不是Windows 7找不到License,要不就是Windows 8找不到License。而Windows 2008肯定是找不到License,即使把boot.wim:2里面 License文件全数复制到Windows 8boot.wim也不行。
之后在网上查到个方法,把这几个不同系统的SOURCES文件夹改名,然后用WinHex修改boot.wim:2中的SOURCES\setup.exe和光盘根目录下的SOURCES\autorun.dll,改成对应的路径,但是测试过很多遍,始终无法成功。
经过不断的搜索、测试,终于找到了一个办法。


PE启动时会在X:\SOURCES目录下寻找setup.exe文件来进行安装, 如果SOURCES目录没有SETUP.EXE,那么winpeshl.exe会执行system32目录下的winpeshl.ini所指定的文件。如果winpeshl.ini没有指定程序或没有此文件,那么winpeshl.exe将会执行system32目录下的startnet.cmd文件,默认PE下存在此文件,会加载网络配置。我们解决这个boot.wim,可以使用imagex也可以使用sources目录的dism.exe

       我的构思是,用bootmgr启动一个Windows 8PE,这个PE从光盘镜像里的boot.wim修改而来,启动PE后,用教本和工具挂载位于移动硬盘或U盘的Windows 8的光盘镜像,然后自动运行镜像根目录下的setup.exe,开始安装。

废话结束了,现在开始动手吧。





================万恶的分隔符====================



一、准备一个移动硬盘,如果有足够大的U盘也行。

可以把移动硬盘前面分出一个10G20G 的分区,如果你还要放入Windows 7Windows 2008的话,建议20G
另外,如果希望是直接用bootmgr启动的话,用NTFS文件格式,在磁盘管理器里面设置为活动,可以省不少的事情。如果···想和我一样,用easyboot启动的话,就一定要用FAT32文件格式了,具体操作在后面详述。如果之前做过Windows 7移动硬盘安装,里面应该还有Windows 7的文件夹。当然,如果不准备加入Windows 7的话,可以用官方的工作制作,下面就不用看了。
如果install.wim文件超过了4G,可以用imagex /split命令对install.wim进行分卷。Install.wim分卷后的后缀名一定swminstall.swminstall1.swminstall2.swm……
我把Windows 7Windows 2008还有25个品牌的OEM系统的32位和64位,总共67个镜像,有更新最新的补丁和IE,最终得到install.wim5.68G···
命令格式:



imagex /split install.wim install.swm 4000




后面的4000表示大小,单位是M





二、整合Windows 83个版本的32位和64位,共6个。

标准版和专业版里面的install.wim都包含这两个版本,企业版的install.wim中只有企业本的镜像。所以只需要把企业版的镜像整合到标准版和专业版里面。
imagex /export命令进行整合,相信大家都会了,此处不再赘述了。
需要注意的是,32位和64位里面的镜像名称和描述都是一样的,在进行32位和64位整合的时候一定要先用imagex /info命令修改名称和描述。
还有要注意的是,Windows 8里面的ei.cfg不能直接删除,否则安装程序会要你先输入序列号。用记事本打开sources\ei.cfg,删除里面的所有内容,把下面的代码复制到里面保存即可。


[EditionID]
Professional
Enterprise
Starter
HomeBasic
HomePremium
Professional
Ultimate
[Channel]
Retail
Volume
OEM
[VL]
5

将做好的install.wimei.cfgUltraISO替换到32位的系统镜像中。不需要解压出来。只能用32位的。我因为特殊原因,只能将32位和64位做成两个镜像。如果大家用的最简单的启动方式而且是NTFS分区,32位和64位做到一个镜像里面也行,方法大同小异。

三、用Autoit制作一个能直接调用setup.exe的程序

    此处的setup.exe是光盘镜像根目录下的setup.exe,而不是SOURCES里面的setup.exe

相信大家对Autoit都不会陌生,XP时代做Windows集成的时候多多少少都会用到。
没有的可以去http://www.autoitx.com/上免费下载一个,安装好以后,打开桌面上的SciTE编辑器,然后粘贴下面一段代码,保存。



#NoTrayIcon
$temp = "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z"
$findiso = StringSplit($temp, ",")
For $n = 1 To $findiso[0]

If FileExists($findiso[$n] & ":\win8setup32.iso") Then


$root = $findiso[$n]


ExitLoop


EndIf

Next

$file = FileOpen("x:\windows\system32\loadiso.cmd", 9)
FileWrite($file, "cd %systemroot%\system32" & @CRLF & "IsoCmd.exe -I" & @CRLF & "IsoCmd.exe -Mount 0: " & $root & ":\win8setup32.iso" & @CRLF & "del %0")
FileClose($file)

RunWait("x:\windows\system32\loadiso.cmd", "x:\windows\system32", @SW_HIDE)

$findsetup = StringSplit($temp, ",")
For $n = 1 To $findsetup[0]

If FileExists($findsetup[$n] & ":\setup.exe") And FileExists($findsetup[$n] & ":\SOURCES\setup.exe") And FileExists($findsetup[$n] & ":\SOURCES\install.wim") Then


$isoroot = $findsetup[$n]


ExitLoop


EndIf

Next

RunWait($isoroot & ":\setup.exe")


注意:代码第五行和第十一行的win8setup32.iso根据需要改成需要的文件名。

打开工具→编译脚本[GUI],弹出编译窗口,输出类型为exe,在32位程序后面的文本框中输入setup32.exe,输出架构只需要勾选使用X86版本,然后点编译脚本,编译完毕后会在脚本的同路径下生成一个setup32.exe文件。放好备用。保存的文件名随意,但是一定要和winpeshl.ini里的文件名一样。




四、料理boot.wim

       首先准备好ISOCMD,这个是UltraISO的虚拟光驱用的。网上有下载,很多。下载下来解压出来一共是三个文件:IsoCmd.exeISODrive.sysISODrv64.sys
     

此处有错误先把Windows 8 32 位的光盘镜像里面的SOURCES文件夹解压到移动硬盘更目录下并重命名为win8setup。只能用32位的。
win8setup下面的boot.wim复制出来放到其他地方,此处有错误


正确的应该是把前面做好的光盘镜像重命名为win8setup32.iso和win8setup64.iso,放到移动硬盘根目录下。

(本文只以win8setup32.iso作为例子,64位的win8setup64.iso方法一样,32位和64位整合到一起的单镜像也一样)


提取出32位的boot.wim并复制到e:\,然后在e:\下新建一个文件夹boot,打开cmd窗口,运行一下命令。

dism /mount-wim /wimfile:e:\boot.wim /index:2 /mountdir:e:\boot




接下来,进入E:\boot\sources,把setup.exe改名为winsetup.exe,注意需要先获取所有权。然后把刚刚编译好的setup.exe连同IsoCmd的三个文件一起放到E:\boot\Windows\system32里面,然后在E:\boot\Windows\system32下面新建winpeshl.ini文件,用记事板打开,粘贴下面的代码,保存。

[LaunchApps]
setup64.exe



这些做完,确认无误后,打开cmd窗口,敲入命令,保存对映像的修改。

dism /unmount-wim /mountdir:e:\boot /commit

需要注意的是,保存卸载之前一定要把和e:\boot有关的文件夹和文件完全关闭,否则会卸载失败。


卸载完成后把e:\boot.wim复制到移动硬盘的根目录下面,并重命名为win8setup32.wim。这个名字随意,但是要和BCD里面的一样。
然后把第二步做好的光盘镜像复制到移动硬盘的根目录下面,并重命名为win8setup32.iso,这个名字要和autoit脚本里面的设置的文件名一样

五、设置从移动硬盘启动


U盘和移动硬盘的设置方法大同小异,基本一样。这里只讲讲移动硬盘,相信不会有多少人用U盘做的。
首先,从已经安装好的Windows 8系统里面的boot文件夹和bootmgr复制到根目录,当然,用光盘镜像里面bootbootmgr也行,不过中文显示不出来。然后用bcdedit命令或者easybcdbcdtool修改boot\bcd启动类型。具体方法也不详述了,这不是重点。以下是我的bcd配置,大家可以做个参考。


C:\Users\Administrator>bcdedit /store h:\boot\bcd

Windows 启动管理器
--------------------
标识符
{bootmgr}

device               partition=H:
description       Windows Boot Manager
locale                zh-CN
inherit               {globalsettings}
default              {default}
displayorder     {default}
                         {50e83817-fbdd-11e1-9589-14feb5e094f3}
                         {b4b7350f-fcc1-11e1-a38e-14feb5e094f3}
                         {37156ebf-fbde-11e1-9589-14feb5e094f3}
toolsdisplayorder         {memdiag}
timeout            30
dispalybootmenu          Yes

Windows 启动加载器
-------------------
标识符        {7619dcc9-fafe-11d9-b411-000476eba25f}
device                  ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path                     \windows\system32\boot\winload.exe
description          安装 Windows 7 SP1 , Server 2008 R2,OEM 50 IN 1.(全版本,X86+X64)
locale                  zh-CN
inherit                 {bootloadersettings}
osdevice             ramdisk=[boot]\sources\boot.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot         \windows
nx                       OptIn
pae                     Default
custom:250000c2           1
detecthal            Yes
winpe                  Yes
sos                      No
debug                  No
ems                      No

Windows 启动加载器
-------------------
标识符        {50e83817-fbdd-11e1-9589-14feb5e094f3}
device                 ramdisk=[boot]\win8setup32.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path          \windows\system32\boot\winload.exe
description          安装 Windows 8 32
locale                   zh-CN
inherit                 {bootloadersettings}
osdevice              ramdisk=[boot]\win8setup32.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot          \windows
nx                        OptIn
pae                      Default
custom:250000c2       1
detecthal            Yes
winpe                  Yes
sos                       No
debug                   No
ems                      No

Windows 启动加载器
-------------------
标识符        {b4b7350f-fcc1-11e1-a38e-14feb5e094f3}
device                 ramdisk=[boot]\win8setup64.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
path                     \windows\system32\boot\winload.exe
description          安装 Windows 8 64
locale                  zh-CN
inherit                  {bootloadersettings}
osdevice                ramdisk=[boot]\win8setup64.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot            \windows
nx                        OptIn
pae                      Default
custom:250000c2       1
detecthal             Yes
winpe                  Yes
sos                       No
debug                  No
ems                      No

Windows 启动加载器
-------------------
标识符        {37156ebf-fbde-11e1-9589-14feb5e094f3}
device                 ramdisk=[boot]\sources\WIN7PE.WIM,{7619dcc8-fafe-11d9-b411-000476eba25f}
path                     \windows\system32\boot\winload.exe
description         启动 Windows 7 PE x86
locale                 zh-CN
inherit                 {bootloadersettings}
osdevice              ramdisk=[boot]\sources\WIN7PE.WIM,{7619dcc8-fafe-11d9-b411-000476eba25f}
systemroot          \windows
detecthal            Yes
winpe                 Yes
ems                    No

C:\Users\Administrator>



1、直接bootmgr启动。
这种方法最简单也最方便。如果对硬盘内容有洁癖的话,在磁盘管理器里面分个足够大小的主分区,格式化为NTFS文件系统,设置为活动就可以了。


2、用easyboot启动。
这个方法稍微有点麻烦,但是从美观和灵活性来说,我还是比较喜欢这种,但是也有两个缺点。一是分区必须是FAT32格式的,二是不能针对该分区进行检查修复操作(包括开机时候提示的那种磁盘检查,这种情况多发生于正在对改分区写入数据的时候强行拔下数据线),如果不幸被检查修复了,只会从bootmgr启动了。
首先,用easyboot做一个足够好看的启动界面,做完以后将EZBOOT文件夹放到分区根目录下。并将EZBOOT下的EZLDR复制到根目录下。
然后,打开UltraISO,点击菜单栏的启动→写入硬盘映像,弹出窗口中选择硬盘驱动器为你要制作启动盘的那个移动硬盘,这里只会显示USB接入的存储设备。点击下面的便捷启动,在写入新的硬盘主引导记录(MBR)中选择USB-HDD+提示写入成功后,再次点击便捷启动,在写入新的驱动器引导扇区中选择EasyBoot,提示写入成功后就可以关闭了。现在,你的移动硬盘或者U盘就可以从easyboot制作的启动菜单启动了。







要注意的是,写入硬盘映像的移动硬盘只能有一个分区,如果后面有第二个,或者更多的分区怎么办?没关系,直接在系统自带的磁盘管理中删除后面的所有分区,包括扩展分区,只保留第一个分区。这样就可以写入主引导记录和引导扇区了。另外如果不幸启动分区被检查修复了,也可以用这个方法,只需要重新写入引导扇区就可以了。


那么删除的分区怎么办?看下面。
对于删除掉的分区可以用Acronis进行恢复,这个东西恢复分区效果杠杠的。
我用的是Acronis Disk Director 11 Advanced,网上下载的非常多,这里我给大家提供两枚序列号。

Advanced Workstation:
H9NL5SZ5-EN6BD5ED-A7P9D22V-8WXZ5QAG-4G5XK7JS-X52BEDQX-J9J8UUAC-KRLG8GAT
Advanced Server:
XMSZFNCK-4XGKSW6X-TH4XGVX6-EZFW9ZBE-KVK2DMLW-LJVT2WXD-9JKQADAV-SUFCULHU


Acronis
是根据序列号区分版本的。
言归正传,先打开Advanced,点上方的工具→Acronis Recovery Expert,点下一步,选择手动,下一步,选择那个被删除的区域。







点击下一步,默认快速,下一步,程序已经搜索到了刚刚删除的那个分区,选中,点下一步,下一步,继续,程序会自动处理,处理完了,弹出恢复完成的窗口。








这是我的移动硬盘根目录






这个分区大小是20G,这些东西14.4G


这个是H:\SOURCES里面,这里面的install.wim集成了Windows 7的9个版本,Windows 2008的8个版本,和25个OEM的Windows 7 旗舰版的32位和64位,共50个,总计67个映像。因为Windows 7的9个版本全部集成最新的补丁和IE9,有点大,达到了5.68G,无奈只能分卷。



用移动硬盘启动的界面,别吐槽背景,几年前做的。QQ和邮箱都是我的真实QQ和邮箱。



不解释,自己看图



用Windows 8的启动文件,不见了难看的载入进度条



bootmgr的第一个启动项目,集成了64个映像







Windows 8安装








MAXDOS















[ 本帖最后由 2012velino 于 2012-10-16 20:22 编辑 ]
作者: 嵐風    时间: 2012-9-12 19:56
文章好長....
勞資另外有個小方法,
u盤建個win7的資料夾,
把win7的sources除了boot.wim外檔案全都拉進去(vista可再建個資料夾)
win8的sources則直接拉到u盤,
bootmgr啟動win8的boot.wim,
按shift+f10叫出cmd,
直接打d:\win7\setup就可以安裝win7了(d是u盤盤符)
作者: 2012velino    时间: 2012-9-12 20:00
标题: 回复 #2 嵐風 的帖子
调出cmd然后敲命令,也是一种办法,
但是只适合高手和不嫌麻烦的人使用。
我是个嫌麻烦的人
而且这个是给我朋友做的,他水平比较低

[ 本帖最后由 2012velino 于 2012-9-12 20:06 编辑 ]
作者: 嵐風    时间: 2012-9-12 20:08
原帖由 2012velino 于 2012-9-12 20:00 发表
调出cmd然后敲命令,也是一种办法,
但是只适合高手和不嫌麻烦的人使用。
我是个嫌麻烦的人
而且这个是给一个菜鸟做的

汗....
你的方法要懂的技術比我的還要多= =''
菜鳥恐怕做不來....

另外修改autorun.dll跟setup.exe的方法我也做過.
也是失敗收場,貌似是方法有誤
作者: 极度凶残    时间: 2012-9-12 20:15
这个估计是全球第一个WIN7+WIN8合盘教程,收下玩玩,谢谢楼主的分享
作者: 嵐風    时间: 2012-9-12 20:19
5樓....
http://bbs.wuyou.net/forum.php?m ... 5714&highlight=
這文章不是你發的麼.樓主腫可能是第一個
作者: 极度凶残    时间: 2012-9-12 20:53
原帖由 <i>嵐風</i> 于 2012-9-12 20:19 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2565635&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0"     alt="" /></a><br />
5樓....<br />
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=255714&highlight=<br />
這文章不是你發的麼.樓主腫可能是第一個
<br />
那个不算是什么合盘教程,我是用来抛砖引玉的,现在头痛的是不能把移动硬盘第一个分区隐藏(隐藏了WIN7、WIN8无法正常安装),也许楼主安装WIN8的那种方式可以隐藏,明天到公司试试,楼主为啥不搞统一,把WIN7也搞成WIN8那种方式,还有win8setup32.wim、win8setup64.wim这两个文件不能放入BOOT这文件夹里面吗?

[ 本帖最后由 极度凶残 于 2012-9-12 21:02 编辑 ]
作者: 2012velino    时间: 2012-9-12 21:04
原帖由 嵐風 于 2012-9-12 20:08 发表

汗....
你的方法要懂的技術比我的還要多= =''
菜鳥恐怕做不來....

另外修改autorun.dll跟setup.exe的方法我也做過.
也是失敗收場,貌似是方法有誤

偶朋友是菜鸟  我帮他做好 他捡现成的
作者: 2012velino    时间: 2012-9-12 21:09
原帖由 嵐風 于 2012-9-12 20:19 发表
5樓....
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=255714&highlight=
這文章不是你發的麼.樓主腫可能是第一個

其实不管是5楼也好,我也好,这不会是第一个,也不会是最后一个,一定有人比我先想出这个思路,以后也一定会有更好办法
不用这么较真
这边文章我看过,而且也测试过,修改那几个文件我也做过测试,确实可以正常启动安装程序,但是却无法正常安装,应该还有什么要修改的地方,我估计也不是只有那两个文件。
这种思路也是很不错的,其实我目前还在继续测试修改文件这个方法,如果这个方法成功了,就能对Windows 7和Windows 8这一类安装光盘内的文件含义和作用就能更加明了了,这样对合盘也是有很大帮助的

[ 本帖最后由 2012velino 于 2012-9-12 21:21 编辑 ]
作者: 2012velino    时间: 2012-9-12 21:13
原帖由 极度凶残 于 2012-9-12 20:53 发表

那个不算是什么合盘教程,我是用来抛砖引玉的,现在头痛的是不能把移动硬盘第一个分区隐藏(隐藏了WIN7、WIN8无法正常安装),也许楼主安装WIN8的那种方式可以隐藏,明天到公司试试,楼主为啥不搞统一,把WIN ...

呵呵,当然不是教程,我也没写是教程嘛,这只是一种方法,一种思路而已。
关于分区隐藏的方法,可以用Ultraiso里面的写入硬盘映像,里面有一个关于隐藏启动分区的选项。
至于win8setup32.wim、win8setup64.wim这两个文件,放到哪都一样,放到Windows7的sources里面也行,只要能让bootmgr找到就行。
我把Windows7的install.wim放到Windows8里面,我试过,Windows7的映像在前面,Windows7的各个版本都可以安装,但是Windows8就会提示找不到协议条款。而Windows 8的映像在前面,Windows 8可以安装,但是Windows7又找不到协议条款,而Windows 2008不管怎么弄都找不到。我也尝试过寻找Windows 8安装盘里面那些存放协议条款的地方,找了很长时间都没有找到。

[ 本帖最后由 2012velino 于 2012-9-12 21:27 编辑 ]
作者: 极度凶残    时间: 2012-9-12 21:34
原帖由 <i>2012velino</i> 于 2012-9-12 21:13 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2565675&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
呵呵,当然不是教程,我也没写是教程嘛,这只是一种方法,一种思路而已。<br />
关于分区隐藏的方法,可以用Ultraiso里面的写入硬盘映像,里面有一个关于隐藏启动分区的选项。<br />
至于win8setup32.wim、win8setup64. ...
<br />
我是指我的帖子不是,楼主这个绝对是名副其实的教程了,楼主这办法相当不错,原来是SOURCES目录没有SETUP.EXE,winpeshl.ini和startnet.cmd才起作用,之前想让BOOT.WIM里的PE启动后能显示隐藏分区,搞了几天都不行,明天得再搞一次。
作者: 2012elyj    时间: 2012-9-13 00:52
还看不懂,只能支持楼主。
作者: 极度凶残    时间: 2012-9-13 10:31
原帖由 <i>2012velino</i> 于 2012-9-12 21:13 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2565675&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0"     alt="" /></a><br />

<br />
呵呵,当然不是教程,我也没写是教程嘛,这只是一种方法,一种思路而已。<br />
关于分区隐藏的方法,可以用Ultraiso里面的写入硬盘映像,里面有一个关于隐藏启动分区的选项。<br />
至于win8setup32.wim、win8setup64. ...
<br />
今天按楼主的教程试了几次都不行,都在下面那个画面过后自动重启,也许是Autoit代码经过复制粘贴后出错了,希望楼主能把Autoit代码以文件方式上传。先谢谢了!

还有代码里有行:$file = FileOpen("x:\windows\system32\loadiso.cmd", 9)

但BOOT.WIM里的System32文件夹没有loadiso.cmd这个文件啊



[ 本帖最后由 极度凶残 于 2012-9-13 10:57 编辑 ]
作者: 2012velino    时间: 2012-9-13 11:02
原帖由 极度凶残 于 2012-9-13 10:31 发表

今天按楼主的教程试了几次都不行,都在下面那个画面过后自动重启,也许是Autoit代码经过复制粘贴后出错了,希望楼主能把Autoit代码以文件方式上传。先谢谢了!


148873



有几点一定要注意:
首先,pe启动以后如果找不到setup就会system32下面的winpeshl.ini指定的文件运行,如果winpeshl.ini或指定的文件不存在或者有错误,就会运行startnet.cmd。当这些步骤完成后,PE就会重启。也就是说,即使winpeshl.ini或startnet.cmd里面内容正确,没有错误,但是如果没有实质性的程序运行并暂停autoit脚本或CMD运行,一旦脚本命令解释结束,PE就会认为程序已经运行完了,并无视当前运行的程序直接重启。
所以autoit里面的源码最后是运行光盘镜像根目录下的setup.exe并等待运行结束。这个也很重要。

1、不管安装是32位系统还是64位系统,必须要使用32位的boot.wim,如果用64为下会出现子系统不存在的错误而跳过,所以就重启了。因为64位的BOOT.WIM是纯64位,不能运行纯32位程序的
2、autoit在编译完成并后复制到windows\system32里面的文件名一定要和winpeshl.ini里面的文件名一致,否则就会找不到这个程序了。
3、autoit源码里面的两处ISO文件名一定要和移动硬盘根目录下的镜像名称一致,否则找不到光盘镜像, ISOCMD载入就会出错而跳过。


1.jpg (71.17 KB, 下载次数: 107)

1.jpg

作者: 极度凶残    时间: 2012-9-13 11:12
原帖由 <i>2012velino</i> 于 2012-9-13 11:02 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2565908&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />

<br />
有几点一定要注意:<br />
首先,pe启动以后如果找不到setup就会system32下面的winpeshl.ini指定的文件运行,如果winpeshl.ini或指定的文件不存在或者有错误,就会运行startnet.cmd。当这些步骤完成后,PE就会 ...
<br />
按您的图片看来,我直接复制网页的代码是不正常的,希望楼主直接上传这个Au3脚本文件


作者: 2012velino    时间: 2012-9-13 11:15
原帖由 极度凶残 于 2012-9-13 11:12 发表

按您的图片看来,我直接复制网页的代码是不正常的,希望楼主直接上传这个Au3脚本文件

148878

已上传,在贴在最前

http://kuai.xunlei.com/d/ZVTHQTVUGTSM


不好意思  第四步有个错误 已修正


四、料理boot.wim

首先准备好ISOCMD,这个是UltraISO的虚拟光驱用的。网上有下载,很多。下载下来解压出来一共是三个文件:IsoCmd.exeISODrive.sysISODrv64.sys

此处有错误先把Windows 8 32 位的光盘镜像里面的SOURCES文件夹解压到移动硬盘更目录下并重命名为win8setup。只能用32位的。
win8setup下面的boot.wim复制出来放到其他地方,此处有错误


正确的应该是把前面做好的光盘镜像重命名为win8setup32.iso,放到移动硬盘根目录下。

提取出32位的boot.wim并复制到e:\,然后在e:\下新建一个文件夹boot,打开cmd窗口,运行一下命令。

[ 本帖最后由 2012velino 于 2012-9-13 11:24 编辑 ]
作者: 极度凶残    时间: 2012-9-13 11:33
原帖由 <i>2012velino</i> 于 2012-9-13 11:15 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2565913&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0"     alt="" /></a><br />

<br />
已上传,在贴在最前<br />
<br />
http://kuai.xunlei.com/d/ZVTHQTVUGTSM<br />
<br />
<br />
不好意思  第四步有个错误 已修正<br />
<br />
<br />
四、料理boot.wim<br />
<br />
首先准备好ISOCMD,这个是UltraISO的虚拟光驱用的。网上有下载,很多。下载下 ...


用了楼主大人的代码后,一次性OK,非常感谢!但是把移动硬盘第一分区设为隐藏分区的话,就不能正常安装了,楼主比较高手,希望能解决这个问题(通过Au3让PE启动后能显示隐藏分区,再加在ISO)

[ 本帖最后由 极度凶残 于 2012-9-13 11:49 编辑 ]
作者: 2012velino    时间: 2012-9-13 11:46
原帖由 极度凶残 于 2012-9-13 11:33 发表

用了楼主大人的代码后,一次性OK,非常感谢!但是把移动硬盘第一分区设为隐藏分区的话,就不能正常安装了,楼主比较高手,希望能解决这个问题(通过Au3让PE启动后能显示隐藏分区后,再加在ISO)

很有启发,我看看autoit里面有没有可以调用隐藏分区的API试一试
作者: 极度凶残    时间: 2012-9-13 11:50
原帖由 2012velino 于 2012-9-13 11:46 发表

很有启发,我看看autoit里面有没有可以调用隐藏分区的API试一试

或者可以试试让AU3先运行下面附件那个显示隐藏分区的软件后再加载ISO

showdrive.rar (11.75 KB, 下载次数: 57)



经测试直接在winpeshl.ini里先加载showdrive.exe就可以正常安装了,但WIN7还需要用楼主的办法动手术后才行,看来我移动硬盘里的系统要重新搞一次,这两天有得忙了


头晕了,Win7按照楼主的办法制作,启动PE后竟然蓝屏 0x0000007b

[ 本帖最后由 极度凶残 于 2012-9-13 12:55 编辑 ]
作者: 2012velino    时间: 2012-9-13 13:26
原帖由 极度凶残 于 2012-9-13 11:50 发表

或者可以试试让AU3先运行下面附件那个显示隐藏分区的软件后再加载ISO

148882



经测试直接在winpeshl.ini里先加载showdrive.exe就可以正常安装了,但WIN7还需要用楼主的办法动手术后才行,看来我移动 ...



呵呵,肯定还有什么问题
我现在正在尝试用FactoryTool这个工具,预想的是在autoit脚本搜索ISO文件之前显示分区,然后在结束的地方自动隐藏分区。现在的问题就是hide.xml和unhide.xml这两个配置文件如果识别到应到硬盘的第一个分区的分区号,或者用autoit识别到了用autoit创建hide.xml
作者: 极度凶残    时间: 2012-9-13 14:19
原帖由 2012velino 于 2012-9-13 13:26 发表



呵呵,肯定还有什么问题
我现在正在尝试用FactoryTool这个工具,预想的是在autoit脚本搜索ISO文件之前显示分区,然后在结束的地方自动隐藏分区。现在的问题就是hide.xml和unhide.xml这两个配置文件如果识 ...

试了10几次,找到Win7改造失败的原因了,竟然是WIN7的BOOT.WIM文件不支持用WIN8的ADK工具处理,改用WimTool后完全正常,气死......!
作者: 2012velino    时间: 2012-9-13 14:57
原帖由 极度凶残 于 2012-9-13 14:19 发表

试了10几次,找到Win7改造失败的原因了,竟然是WIN7的BOOT.WIM文件不支持用WIN8的ADK工具处理,改用WimTool后完全正常,气死......!

.......win8的ADK不是应该向下兼容的吗

FactoryTool这个工具居然只能隐藏第一个硬盘的最后一个分区~~~
作者: 龙吟    时间: 2012-9-13 15:58
进来学习,谢谢楼主的详细教程。
作者: 极度凶残    时间: 2012-9-13 16:33
原帖由 2012velino 于 2012-9-13 14:57 发表

.......win8的ADK不是应该向下兼容的吗

FactoryTool这个工具居然只能隐藏第一个硬盘的最后一个分区~~~

我一般用DiskGenius设置隐藏



作者: 2012velino    时间: 2012-9-13 17:46
原帖由 极度凶残 于 2012-9-13 16:33 发表

我一般用DiskGenius设置隐藏


148886



我想设置的是安装前取消隐藏,在安装结束后第一遍重启前又自动恢复隐藏
用showdriver可以显示隐藏,但是安装完后还要手工隐藏,麻烦
作者: 极度凶残    时间: 2012-9-13 18:10
原帖由 <i>2012velino</i> 于 2012-9-13 17:46 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2566139&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />

<br />
我想设置的是安装前取消隐藏,在安装结束后第一遍重启前又自动恢复隐藏<br />
用showdriver可以显示隐藏,但是安装完后还要手工隐藏,麻烦
<br />
没必要恢复隐藏,重启后自动恢复隐藏了(在正常系统运行showdriver也是如此)
作者: 2012velino    时间: 2012-9-13 19:48
原帖由 极度凶残 于 2012-9-13 18:10 发表

没必要恢复隐藏,重启后自动恢复隐藏了(在正常系统运行showdriver也是如此)

了解~~我测试一下
作者: 2012velino    时间: 2012-9-13 20:18
原帖由 极度凶残 于 2012-9-13 14:19 发表

试了10几次,找到Win7改造失败的原因了,竟然是WIN7的BOOT.WIM文件不支持用WIN8的ADK工具处理,改用WimTool后完全正常,气死......!


把showdrive.exe放到winpeshl.ini里面的setup32.exe上面,Windows8可以正常安装
Windows7会找不到install.wim,但是在点开始安装按钮前在cmd里面运行showdrive.exe,就能找到install.wim。你Windows7的boot.wim里面显示隐藏分区的测试成功了吗?
因为我会经常操作这个分区,所以我也懒得弄隐藏了
作者: 极度凶残    时间: 2012-9-13 20:27
原帖由 <i>2012velino</i> 于 2012-9-13 20:18 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2566212&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />

<br />
把showdrive.exe放到winpeshl.ini里面的setup32.exe上面,Windows8可以正常安装<br />
Windows7会找不到install.wim,但是在点开始安装按钮前在cmd里面运行showdrive.exe,就能找到install.wim。你Windows7的boo ...
<br />
我把WIN7、2008R2、2012全弄成想你的WIN8那样的方式,全部可以在隐藏分区启动安装,楼主的办法算是目前最完美的合盘办法,非常感谢楼主的分享!
作者: 天佑魔王    时间: 2012-9-13 22:36
没那大的移动硬盘啊?怎么把win7和win8一起合盘,做成光盘DVD,4G左右吧
作者: 极度凶残    时间: 2012-9-13 22:51
原帖由 <i>天佑魔王</i> 于 2012-9-13 22:36 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2566293&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
没那大的移动硬盘啊?怎么把win7和win8一起合盘,做成光盘DVD,4G左右吧
<br />
win7和win8一起肯定超过4G了,只能用D9光盘
作者: 2012velino    时间: 2012-9-14 08:35
原帖由 极度凶残 于 2012-9-13 22:51 发表

win7和win8一起肯定超过4G了,只能用D9光盘

光驱现在用的也少了,还是用移动硬盘爽,速度也比光盘快
作者: 极度凶残    时间: 2012-9-14 08:39
原帖由 <i>2012velino</i> 于 2012-9-14 08:35 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2566384&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />

<br />
光驱现在用的也少了,还是用移动硬盘爽,速度也比光盘快
<br />
是的,目前最理想的就是移动硬盘,可以容纳所有系统、软件和系统备份镜像
作者: 11ydy    时间: 2012-9-14 10:12
我有个疑问7 8合盘有这么复杂?
直接把WIN7的install.wim 导入到WIN8的install.wim,直接用32版本的WIN8安装盘文件,不能完成安装吗?






我没有测试能不能完成安装,不知道楼主这样弄过没有
作者: 极度凶残    时间: 2012-9-14 10:33
原帖由 <i>11ydy</i> 于 2012-9-14 10:12 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2566440&ptid=256556" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
我有个疑问7 8合盘有这么复杂?<br />
直接把WIN7的install.wim 导入到WIN8的install.wim,直接用32版本的WIN8安装盘文件,不能完成安装吗?<br />
<br />
148895<br />
148896<br />
148897<br />
<br />
<br />
我没有测试能不能完成安装,不知道楼主这 ...
<br />
里面的WIN7也能正常安装?
作者: 11ydy    时间: 2012-9-14 10:49
标题: 回复 #35 极度凶残 的帖子
确实我想简单了,测试了下安装,解压到最后出错,感觉像是新版本的释放WIM程序不兼容win7的WIM

2012-09-14 10:32:47, Info       [0x0600ae] IBS    ApplyWIMCallback: Retrying on file [C:\Windows\winsxs\Manifests\x86_microsoft-windows-devicepairinghandler_31bf3856ad364e35_6.1.7600.16385_none_25f1deff415b9f17.manifest] GLE is [1392]
2012-09-14 10:32:48, Info       [0x0600ae] IBS    ApplyWIMCallback: Retrying on file [C:\Windows\winsxs\Manifests\x86_microsoft-windows-devicepairinghandler_31bf3856ad364e35_6.1.7600.16385_none_25f1deff415b9f17.manifest] GLE is [1392]
2012-09-14 10:32:48, Info       [0x0600ae] IBS    ApplyWIMCallback: Retrying on file [C:\Windows\winsxs\Manifests\x86_microsoft-windows-devicepairinghandler_31bf3856ad364e35_6.1.7600.16385_none_25f1deff415b9f17.manifest] GLE is [1392]
2012-09-14 10:32:49, Info       [0x0600ae] IBS    ApplyWIMCallback: Retrying on file [C:\Windows\winsxs\Manifests\x86_microsoft-windows-devicepairinghandler_31bf3856ad364e35_6.1.7600.16385_none_25f1deff415b9f17.manifest] GLE is [1392]
2012-09-14 10:32:49, Error      [0x0600af] IBS    ApplyWIMCallback: Error applying C:\Windows\winsxs\Manifests\x86_microsoft-windows-devicepairinghandler_31bf3856ad364e35_6.1.7600.16385_none_25f1deff415b9f17.manifest. GLE [1392][gle=0x00000570]
2012-09-14 10:32:49, Error      [0x0606cc] IBS    WIMApplyImage failed; hr = 0x80070570[gle=0x00000570]
2012-09-14 10:32:50, Error      [0x0600a1] IBS    DeployImage:Image application failed; hr = 0x80070570[gle=0x00000570]
2012-09-14 10:32:50, Error      [0x060082] IBS    Callback_ImageTransfer:Failed to lay down the OS image; hr = 0x80070570[gle=0x00000570]
2012-09-14 10:32:50, Info                  IBSLIB PublishCriticalError: Publishing critical error message [Windows 无法安装所需的文件。 文件可能损坏或丢失。 请确保安装所需的所有文件可用,并重新启动安装。 错误代码: 0x80070570]
2012-09-14 10:32:50, Info       [0x0a013d] UI     Accepting Cancel. Exiting Page 进度.
2012-09-14 10:32:50, Info                  UI     Entering Page 取消.
作者: 极度凶残    时间: 2012-9-14 12:17
原帖由 <i>11ydy</i> 于 2012-9-14 10:49 发表
确实我想简单了,测试了下安装,解压到最后出错,感觉像是新版本的释放WIM程序不兼容win7的WIM
2012-09-14 10:32:47, Info       [0x0600ae] IBS    ApplyWIMCallback: Retrying on file [C:\Windows\winsxs ...

反正我对楼主这个自动挂载ISO的安装方式很满意,只要是可以方便在隐藏分区里使用
作者: adolflyp    时间: 2012-9-14 12:51
搞这么多系统头大啊,太佩服楼主了
作者: 2012velino    时间: 2012-9-14 14:10
原帖由 11ydy 于 2012-9-14 10:12 发表
我有个疑问7 8合盘有这么复杂?
直接把WIN7的install.wim 导入到WIN8的install.wim,直接用32版本的WIN8安装盘文件,不能完成安装吗?

148895
148896
148897


我没有测试能不能完成安装,不知道楼主这 ...

win7的boot肯定不完成win8的安装
用win8的可以完成win7的安装,但是我的install.wim不仅有Windows7 还有Windows2008,Windows2008的协议条款那些文件是个问题。
另外如果是隐藏分区的话,这种方法是最好的了
作者: 2012mengxiangde    时间: 2012-10-11 15:20
楼主的办法很好。用你的办法能加载xp镜像进行安装吗?
作者: 2012wangjishi    时间: 2012-11-14 11:40
楼主 有没做好的win8setup32.wim,发一个。自己怎么做都不得行
作者: MarilynManSon    时间: 2012-11-15 17:06
这么多版本,看得眼睛都花了
作者: 2012ybsypy    时间: 2012-11-15 18:52
看球鸡巴不懂
作者: zxk8    时间: 2012-11-15 21:23
很好的教程,先收藏了!
作者: 2012wangjishi    时间: 2012-11-16 21:06
加载bcd文件报错,求解决方法
作者: 2012fun8    时间: 2012-11-16 23:13
好东西啊。是在不错。都下来尝鲜一下
作者: yujij    时间: 2012-12-20 21:50
学习下,做个32与64合盘
作者: ppszxc    时间: 2012-12-21 16:00
我来看看好用不,试试
作者: 极度凶残    时间: 2013-4-27 14:37
本帖最后由 极度凶残 于 2013-4-27 17:50 编辑

之前一直都是用32位,今天试试64位,发现就算是编译为64位架框的SETUP.EXE,在64位的BOOT.WIM里也无法运行,提示使用了未经声明的变量,恳请楼主花点时间研究一下是怎么回事

看来是是微软的64位PE不支持运行这个ISOCMD.EXE

作者: tigerstar    时间: 2013-4-27 14:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: qianjianbo    时间: 2013-4-28 20:04
tigerstar 发表于 2013-4-27 14:47
看了这篇文章,个人感觉很奇怪。

我整合的windows7-8-2008-2012-hyper-v2.0-hyper-v3.0-等。安装的时候没 ...

你是怎么制作的,请赐教制作方法。
作者: tigerstar    时间: 2013-4-29 20:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: lianfa    时间: 2013-5-6 17:01
好东西 可惜不够专业 不懂
作者: hengdream    时间: 2013-10-25 11:29
隐藏启动分区
作者: 微笑百事达-哥依    时间: 2013-10-25 11:58
2012velino 发表于 2012-9-12 21:13
呵呵,当然不是教程,我也没写是教程嘛,这只是一种方法,一种思路而已。
关于分区隐藏的方法,可以用Ul ...

连迅雷快传的地址已失效?可惜了
作者: hman    时间: 2013-10-26 01:02
看了有点头晕,先收藏了,谢谢
作者: 2012hzy6420    时间: 2013-10-26 09:15
xx学习,谢谢分享
作者: hengdream    时间: 2013-10-28 07:33
感谢大大
作者: ……轩    时间: 2013-11-16 10:16
好复杂,,新手并不会。。。
作者: kim99    时间: 2013-11-30 20:41
太深奧收下研究吧
作者: ×Κānɡ〇?    时间: 2014-1-24 16:39
看看学习学习
作者: 1035111522    时间: 2014-2-7 20:27
软碟通
作者: wuyufeng    时间: 2017-9-19 19:26
谢谢分享




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3