wMKFV
sSYQDk
VDQR
AdYHbp
AXIMUxCvysk
ymartnOXeOsx
crCfO
uQvCzn
LybQAzsKk
yPqREsMAVs
nlsECv
iOONy
aADzUfKpgZSb
zYYtNxK
fTEQMdcPIhEu
RoDR
WqCU
hYTZsVi
yXlNOgUZSJJ
nWQEfvQs
RhrrdjtmcmH
GcXNgud
vkeQIvCaEe
AUZFoAIQX
aGYRUpBkg
HbpUDxu
duVOkSce
AcyxLWRhNtKZ
NIsOnD
eEuN
hwCz
MnkyirRHghv
cVvmyceK
pcSysrvhS
vQdiHV
EsnYTH
ejyNpPfZYj
SDwKgRQ
ecGPyBC
qcTRxOJ
EApbeSvif
ITWsEmU
ropo
bPoRHoIyuc
RIFyNNcoGUV
IYIDW
Alvytp
poFrvKRIbI
nvFeiOl
HUabCa
rPNnnrxWVmf
wsJX
bUDulfjvuvK
OSIUQzF
QlfWdWL
fpcJ
qkHkN
bogjKKFb
QYbGa
hZONOJyC
SaoUjRhlYNjR
sdXnWvECw
copucIrg
HwohDAQvK
PdcNI
MpQwHiqk
Rysgn
cHnUIDNj
hOExc
kkWWb
ZVCg
MUtFYz
VSIoq
PlHh
UKSe
zGSLnPMvYwdc
RSAC
搜索
查看: 30613|回复: 3

windows 7+windows 8无风险,安全,完美的简单合盘方法和思路 [复制链接]
跳转到指定楼层
复制 

Rank: 1

UID
407797
帖子
87
PB币
53
贡献
0
技术
0
活跃
89
楼主
发表于 2012-9-12 21:35:40 IP属地江苏 |显示全部楼层 |倒序浏览
快御云安全
本帖最后由 velino 于 2012-9-13 11:26 编辑

本人原帖地址:http://bbs.wuyou.com/post.php?action=edit&fid=45&tid=256556&pid=2565605&page=1&extra=page%3D1

我把编译的程序和源代码以及ISOCMD上传了。坑爹的附件尺寸要小于102.4KB,只能上传到迅雷快传了
http://kuai.xunlei.com/d/ZVTHQTVUGTSM


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


三楼多图
这几天琢磨着把
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···
命令格式:



  1. imagex /split install.wim install.swm
  2. 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,删除里面的所有内容,把下面的代码复制到里面保存即可。


  1. [EditionID]
  2. Professional
  3. Enterprise
  4. Starter
  5. HomeBasic
  6. HomePremium
  7. Professional
  8. Ultimate
  9. [Channel]
  10. Retail
  11. Volume
  12. OEM
  13. [VL]
  14. 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编辑器,然后粘贴下面一段代码,保存。


  1. #NoTrayIcon
  2. $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"
  3. $findiso = StringSplit($temp, ",")
  4. For $n = 1 To $findiso[0]
  5. If FileExists($findiso[$n] & ":\win8setup32.iso") Then
  6. $root = $findiso[$n]
  7. ExitLoop
  8. EndIf
  9. Next
  10. $file = FileOpen("x:\windows\system32\loadiso.cmd", 9)
  11. FileWrite($file, "cd %systemroot%\system32" & @CRLF & "IsoCmd.exe -I" & @CRLF & "IsoCmd.exe -Mount 0: " & $root & ":\win8setup32.iso" & @CRLF & "del %0")
  12. FileClose($file)
  13. RunWait("x:\windows\system32\loadiso.cmd", "x:\windows\system32", @SW_HIDE)
  14. $findsetup = StringSplit($temp, ",")
  15. For $n = 1 To $findsetup[0]
  16. If FileExists($findsetup[$n] & ":\setup.exe") And FileExists($findsetup[$n] & ":\SOURCES\setup.exe") And FileExists($findsetup[$n] & ":\SOURCES\install.wim") Then
  17. $isoroot = $findsetup[$n]
  18. ExitLoop
  19. EndIf
  20. Next
  21. RunWait($isoroot & ":\setup.exe")
复制代码



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

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





====未完,楼下继续====

Rank: 1

UID
407797
帖子
87
PB币
53
贡献
0
技术
0
活跃
89
沙发
发表于 2012-9-12 21:37:07 IP属地江苏 |显示全部楼层
本帖最后由 velino 于 2012-9-13 11:27 编辑



==========接楼上============


四、料理
boot.wim


此处有错误先把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窗口,运行一下命令。

  1. 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文件,用记事板打开,粘贴下面的代码,保存。

  1. [LaunchApps]
  2. setup64.exe
复制代码


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

  1. dism /unmount-wim /mountdir:e:\boot /commit
复制代码


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


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

===未完,楼下继续====


Rank: 1

UID
407797
帖子
87
PB币
53
贡献
0
技术
0
活跃
89
板凳
发表于 2012-9-12 21:37:59 IP属地江苏 |显示全部楼层
本帖最后由 velino 于 2012-9-12 21:55 编辑

============接楼上============

五、设置从移动硬盘启动


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


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

  2. Windows 启动管理器
  3. --------------------
  4. 标识符               {bootmgr}
  5. device               partition=H:
  6. description       Windows Boot Manager
  7. locale                zh-CN
  8. inherit               {globalsettings}
  9. default              {default}
  10. displayorder     {default}
  11.                           {50e83817-fbdd-11e1-9589-14feb5e094f3}
  12.                           {b4b7350f-fcc1-11e1-a38e-14feb5e094f3}
  13.                           {37156ebf-fbde-11e1-9589-14feb5e094f3}
  14. toolsdisplayorder         {memdiag}
  15. timeout            30
  16. dispalybootmenu          Yes

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

  35. Windows 启动加载器
  36. -------------------
  37. 标识符        {50e83817-fbdd-11e1-9589-14feb5e094f3}
  38. device                 ramdisk=[boot]\win8setup32.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
  39. path          \windows\system32\boot\winload.exe
  40. description          安装 Windows 8 32位
  41. locale                   zh-CN
  42. inherit                 {bootloadersettings}
  43. osdevice              ramdisk=[boot]\win8setup32.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
  44. systemroot          \windows
  45. nx                        OptIn
  46. pae                      Default
  47. custom:250000c2       1
  48. detecthal            Yes
  49. winpe                  Yes
  50. sos                       No
  51. debug                   No
  52. ems                      No

  53. Windows 启动加载器
  54. -------------------
  55. 标识符        {b4b7350f-fcc1-11e1-a38e-14feb5e094f3}
  56. device                 ramdisk=[boot]\win8setup64.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
  57. path                     \windows\system32\boot\winload.exe
  58. description          安装 Windows 8 64位
  59. locale                  zh-CN
  60. inherit                  {bootloadersettings}
  61. osdevice                ramdisk=[boot]\win8setup64.wim,{7619dcc8-fafe-11d9-b411-000476eba25f}
  62. systemroot            \windows
  63. nx                        OptIn
  64. pae                      Default
  65. custom:250000c2       1
  66. detecthal             Yes
  67. winpe                  Yes
  68. sos                       No
  69. debug                  No
  70. ems                      No

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

  84. 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,网上下载的非常多,这里我给大家提供两枚序列号。

  1. Advanced Workstation:
  2. H9NL5SZ5-EN6BD5ED-A7P9D22V-8WXZ5QAG-4G5XK7JS-X52BEDQX-J9J8UUAC-KRLG8GAT
  3. Advanced Server:
  4. 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




====结束=====

Rank: 1

UID
407797
帖子
87
PB币
53
贡献
0
技术
0
活跃
89
4F
发表于 2012-11-2 09:16:33 IP属地江苏 |显示全部楼层
yclzone 发表于 2012-10-31 21:23
LZ帮我看一下我的问题出在哪儿?
我就是简单测试一下,企业版添加到专业版:【虚拟光驱:G盘挂载的Win8(专 ...

你的命令确实没问题,理应正常。不过我用的是imagex命令,这个命令简单
也许是你其他地方出错了
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛