论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 2465阅读
  • 3回复

[win7相关]WIN7 OEM 多合一的制作教程 [复制链接]

上一主题 下一主题
离线zhb_3448
 

发帖
59686
今日发帖
最后登录
2016-12-13
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-10-05 12:17:25
— 本帖被 quen2008 执行提前操作(2009-10-05) —


WIN7 OEM 多合一的制作教程(上)


不知从何处开始讲起。工欲善其事,必先利其器。先从讲工具开始吧。
硬件:不错的机器性能,CPU、硬盘、内存,越快越大越好。有一个分区要有20多G的空间用于腾挪。
软件:先下工具吧,大工具先下,小工具都好找,QQ群里也不少。这两个大工具得下,微软官方的部置工具:
AIK(简体中文,目前最新版)
http://hi.baidu.com/zxkh/blog/item/bde2e9f8661dcf06d8f9fd65.html
OPK(英文,目前最新版)
http://www.win7c.com/2009/0802/3016.html
第二个如果下载不到,第一个总得下,都有1G多。安装完AIK工具后,打开里面的“Windows 自动安装工具包用户手册”,搜索“imagex 命令行选项”这几个字,找到后打开它。下面我们就要讲IMAGEX这个工具。
一、IMAGEX 常用命令
啰嗦两句,为什么要从这里讲起?如果让你从头开始看AIK手册,估计你不兴趣,太长了,太晕菜了。那我问你有没有兴趣知道我在多合一的光盘中sources目录下的install.wim到底集成了什么东西?有兴趣吗?
IMAGEX是处理映像(WIM)文件最常用的工具之一,还有一个也很常用的工具叫DISM。要启用IMAGEX这个工具,通常是到AIK安装目录下的TOOLS文件夹中的X86目录下,如果是64位,就到amd64这个目录。为了更快地到达这个目录,通常是建立X86文件夹的快捷方式放在桌面上。当然直接AIK的命令行也是可以的。
/info
下面演练一下,了解一下info命令的用法。
把WIN7官方原版ISO中的所有文件提取到H:\win7x86中。在X86目录下建一个CMD文件,内容如下(如果盘符跟我说的不一样,你自己改),然后执行这个CMD文件,再打开h分区下的a.txt,看到了什么?是官方五合一的映像基本信息,表面上官方说是旗舰版的,实际上install.wim中暗含5个版本,所以删除EI.CFG后就可以安装5个版本。你试一下企业版,估计就不行了。
imagex /info H:\win7x86\sources\install.wim >h:\a.txt
pause
(小提示,命令尾加个pause,这样如果命令出错了,可以看到提示)
好了,/info的主要功能是查看映像文件的信息,比如编号(IMAGE INDEX)、名称(NAME)、描述(DESCRIPTION)、标识(flags)等等。标识是讲那一个版本,如Professional、ultiamte...
/info还可以修改一些信息,比如修改映像的名称和描述。
imagex /info H:\win7x86\sources\install.wim 4 "windows 7 专业版 联想" "32位操作系统,简体中文,适用于XX品牌PC“
上面的“H:\win7x86\sources\install.wim 4“是要修改名称的映像在哪里,编号是多少。命令中第一个双引号内的字符是安装WIN7版本名字,安装系统时会出现版本选择框内,第二个双引号内的字符段是描述,出现在版本选择框下方。
名称在WIM文件中具有唯一性,两个版本名字不能一样。比如X86和X64大合一,X64版本名字要与X86中的版本有区别,不能都叫"Windows 7 专业版",有一个改叫"Windows 7 专业版 64位",这样就区别开来。所以合并之前,先改名字,而不是先合并,是合并不进去的。
/dir
想看看映像中到底有哪些文件,可以用/dir命令,不过看到的是列表。下面语句表示a.wim中的1号映像(注a.wim可能有多个映像)中文件列表导出到dir.txt文件中。
imagex /dir h:\a.wim 1 >h:dir.txt
pause
/mount
装载映像(不可修改),想看看映像中到底有哪些文件,看的是实物,不是列表。先看示例:
imagex /mount h:\win7x86\sources\install.wim 29 h:\wimmount
pause
这个install.wim是30合1,里面有30个映像,现在查看的是第29号映像。wimmount是个文件夹,要在执行CMD命令前预先设立。此命令会将第29号映像中的所有内容会装载到这个文件夹中,打开这个文件夹,里面就类似我们装系统的C分区的目录结构。这有点象ISO文件加载到虚拟光驱一样。如果你对里面文件进行修改,是不会保存到第29号映像之中,因为你用的是/mount命令,而不是/mountrw。
/mountrw
装载映像(可修改),RW的意思是重写、可修改的意思。现在你可以添加一些东西进去或修改某个文件。比如在h:\wimmount\windows\web\wallpaper里面的某个文件夹里放几张你喜欢的壁纸,安装后系统就会带有这些壁纸。
imagex /mountrw h:\win7x86\sources\install.wim 29 h:\wimmount
pause
/unmount (/commit)
卸载已装载的映像。当上述29号映像被装载h:\wimmount中,同时我们也对其进行了修改,而且要保存这些修改,执行:
imagex /unmount h:\wimmount /commit
pause
注意,如果不保存修改,/commit不要用上,要去掉命令中的红字部分。如果是用/mount装载映像,用/commit保存修改是无效的。
/commit
/commit可以和其他命令配合使用,也可以单独使用。当你对wimmount目录内的文件进行修改,使用以下命令来将修改的内容保存到映像当中,不过wimmount目录的内容仍然存在。不卸载原因是我们还想用这个目录,我们后面讲到/append 命令时,再回这里。
imagex /commit h:\wimmount
/apply
将卷映像(WIM中的某个编号的映像)应用于指定的驱动器。必须从 Windows PE 运行此选项。现在可以看到不是GHOST的一键恢复或类似GHOST的安装,使用到的一个核心命令就是imagex的/apply命令,再配之以bootsect来设定启动。如下,将E分区下的a.wim中的卷映像(1号),应用到C分区,C分区文件将被覆盖。
imagex /apply e:\a.wim 1 c: /verify
也可以使用/apply将卷映像应用于指定的驱动器中的某个文件夹。如下:
imagex /apply e:\a.wim 1 D:\mywim /verify
D:\mywim目录要事先建立。/apply和/mountrw或/mount共同点是,都可以让我们看到映像中的文件实物,区别在于/apply是纯粹的单向输出,不能象/mountrw那样可以回滚修改映像,不象/mountrw或/mount那样---装载的目录与映像保持某种关联。
/append
将卷映像附加到现有的 Windows 映像 (.wim) 文件中。创建该文件的单个实例,将其与 .wim 文件中已存在的资源进行比较,以便不会重复捕获同一个文件。确保有足够的磁盘空间可用于运行 /append 选项。如果在运行 /append 选项期间磁盘空间不足,则可能会损坏已附加的 .wim 文件。
上面是官方手册原话。我们经常会遇到映像编录出错的,磁盘空间不足是一个要注意问题,当然出错原因可能有多方面。比如,要求在PE下操作,要求的操作系统是怎么样等等。
使用批处理命令进行连续的映像添加时,我用得最多的就是/apply 、/capture 和/append 这个命令组合。大家可以看我以前制作29in1 VISTA合集时的批处理就知道。
所谓“将卷映像附加到现有的 Windows 映像文件中”,就是要将某分区的所有文件或某目录内的所有文件捕获附加另一个已存在的映像中,原有映像中已有的文件,不会重新添加,也就是说只添加不一样的文件。
如果原有映像已有5个卷映像,再附加上去的自然会被编成第6号卷映像。
imagex /append D:\mywim E:\win7x86\sources\install.wim "Window 7 专业版 LENOVO“ ”适用于联想PC"
示例中,D:\mywim是使用/apply命令将映像输出的目录,在这里目录里,我们添加了联想的OEM壁纸、证书、XML文件等等。现在想添加到官方原版之中变成第6个映像。E:\win7x86目录中是官方中文原版的东西,install.wim是添加的目的地。后面两个双引号,前者是名字,后者是描述。这是VISTA时代常用之法。但WIN7到来,IMAGEX也更加灵活了。可以不用进PE来进行类似的操作。
同样要达到上面的目的,我们可改用/mountrw、/commit(上面说过,还会讲到这个命令)和/append的命令组合,使我们的工作效率更高。假设我们想在官方X86简中版WIN7中添加一个联想OEM 旗舰版的卷映像。先执行:
imagex /mountrw e:\win7x86\sources\install.wim 5 e:\mywim
将e:\win7x86\sources\install.wim的第5号卷映像(旗舰版)装载到e:\mywim(要预先建立),然后将证书、壁纸、XML配置文件等复制e:\mywim里的相应目录(哪些目录以后会说,现在只是练习一下工具的使用)。再执行:
imagex /commit /append e:\mywim "Windows 7 旗舰版 联想" "适用于LENOVO品牌PC"
imagex /info e:\win7x86\sources\install.wim 6 "Windows 7 旗舰版 联想" "适用于LENOVO品牌PC"
imagex /unmount e:\mywim
pause
第一行是将e:\mywim内容捕获成一个映像添加到e:\win7x86\sources\install.wim,后面是名字和描述,由于描述有可能添加失败,所以在第二行用/info重新命名。第三行是使用/unmount ,不加/commit ,保证装载出来的5号映像不被修改。通过上述步骤,:\win7x86\sources\install.wim中已经添加一个卷映像,共有6个。删除sources目录下的ei.cfg,安装时就可以看到6个版本的选择框了。提示,如果你还想添加第7个第8个卷映像,第3行的命令就不要用上。到最后一个再用上这个命令。

/export
将WIM中的某个卷映像提取出来,或将WIM中的某个卷映像导入另一个WIM文件中。“重要信息:确保有足够的磁盘空间可用于运行 /export 选项。如果在 /export 选项运行期间磁盘空间不足,可能会损坏 Destination.wim 文件。”
如,将官方五合一install.wim中旗舰版的卷映像提取出来:
imagex /export e:\win7x86\sources\install.wim 5 e:\ultimate.wim /compress maximum
/compress maximum是最大压缩类型。执行命令后,得到的ultimate.wim文件是单映像的,里面只有一个旗舰版的卷映像,如果将ultimate.wim改名为install.wim,替换进e:\win7x86\sources,封装win7x86目录,那么这个ISO就是单版本的。
接着,将X64 install.wim 中的旗舰版映像导入到X86 ultimate.wim :
imagex /info e:\win7x64\sources\install.wim 4 "Windows 7 旗舰版 64位" "64位(x64)操作系统"
imagex /export e:\win7x64\sources\install.wim 4 e:\ultimate.wim
导出之前要用/info重命名X64旗舰版映像的名称,避免与X86的名称一样。执行上述命令后,得到e:\ultimate.wim 是X86和X64的二合一旗舰版。
/capture
“将某个驱动器的卷映像捕获到新的 .wim 文件。捕获的目录包括所有子文件夹和数据。不能捕获空目录。目录必须至少包含一个文件”。实际上,不仅可以将某分区捕获形成新的WIM文件,也可将某目录(如,e:\abc) 捕获形成WIM文件。
imagex /capture d: e:\abc.wim "My Windows 7" /compress maximum /check /scroll /config wimscript.ini
d:是捕获的目标,也可以是文件夹(如,e:\abc), e:\abc.wim是捕获形成WIM文件放在哪,什么文件名。"My Windows 7"是名称。 /compress maximum 是指映像压缩类型,如果不标明,默认压缩类型是fast。压缩率越大,捕获时间越长。其他参数可以看手册。
主要讲一下 /config wimscript.ini,指的是使用 /capture捕获和/compress压缩时要排除的文件和文件夹,被排除的文件和文件夹不出现在映像中。如果你不使用 /config wimscript.ini命令,imagex也会按默认值进行排除,以下是默认排除值:  
[ExclusionList]
\$ntfs.log
\hiberfil.sys
\pagefile.sys
"\System Volume Information"
\RECYCLER
\Windows\CSC
[CompressionExclusionList]
*.mp3
*.zip
*.cab
\WINDOWS\inf\*.pnf

如果你要配置wimscript.ini,放在X86目录内,也可以指出其位置,如:
/config e:\wimscript.ini
如果你想了解更多,请以“ImageX 配置文件”为关键词搜索AIK手册。
对于分区的捕获,要注意区别映像用于安装的有效性,不是随意捕获分区就可以用来安装的,要区分出是脱机还是联机。如果某分区X:中的所有文件是将官方install.wim中某卷映像/apply出来的,这是脱机。如果这个分区的所有文件是你经过正常安装一次得来的,实际上这是一个系统分区,可以启动运行的,这是联机。如果不执行sysprep /generalize,捕获出来的映像顶多是分区备份,而不能进行通用安装,也就是说不能移值到另一台机子安装。
所以我们有必要了解一下sysprep这个工具。
二、使用sysprep进行部署准备
以“什么是 Sysprep”为关键词搜索AIK手册。Sysprep是针对已安装的windows来使用的,而不对针对脱机映像的,但可以为捕获映像做准备。
1、从 Windows 中删除系统特定的数据,使Windows可移殖到其他计算机上使用。
2、将 Windows 配置为启动进入审核模式。使用审核模式可以安装第三方应用程序和设备驱动器,以及测试计算机的功能。
3、Windows 配置为启动到“欢迎使用 Windows”。
4、重置 Windows 产品激活。不过,Sysprep 最多可以重置 Windows 产品激活三次。如果管理员身份运行CMD命令“slmgr /dlv"发现里面的重置次数小于等2,那说明此前安装本系统的映像是经过二次封装的。因此重置激活次数是与映像形成过程有关,与激活本身无关,如果是合法的授权激活,哪怕重置激活是0也没有关系,只不过不通再执行重置激活,移殖到其他计算机上了。
现在我们只讲制作OEM多合一有关的内容,其他更多的内容你可以自己学习。如果你打算将现有Windows封装成可移殖到其他机子上进行安装,你必须执行一次sysprep /generalize才可以为捕获映像作准备,也就是说,如果不执行sysprep /generalize,就开始用/capture 捕获映像,那么这个映像是不能移殖的。
如果你打算将现在已安装的系统(假定在D分区,C分区有一个你正常在使用的系统)进行封装准备,以便今后安装到其他机子。首先,你要启动Administrator帐户登录,删除你此前创建的其他任何帐户。然后,要通过组策略或注册表,进行一些个性化的设置,比如添加主题壁纸,如果你想安装补丁或其他一些程序也是可以的。准备完毕,运行:
D:Windows\system32\sysprep\sysprep.exe /oobe /generalize /shutdown

如果你想安装时进入审核模式,运行:
D:Windows\system32\sysprep\sysprep.exe /audit /generalize /shutdown
我们通常是用oobe模式, /generalize 就是删除系统所有唯一的系统信息,重置激活次数也会减少1次。
执行以上命令后,系统将关机,重新开机时不要进入这个已执行sysprep /generalize 的系统,否则前功尽弃。用PE光盘启动,进入桌面后,进入C分区系统中安装WINDOWS AIK工具的目录下的tools\x86文件夹,建一个/capture命令内容的CMD文件,然后运行捕获D分区所有内容形成一个新的WIM文件,这个WIM文件就可以用来部置和安装了。
-------------------------------------------------------------------------------------------------------------------

注:第一部分讲完了,主要讲工具的使用。后面会讲“WIN7 OEM 多合一的制作(二)
另外,这几个贴子也会对你有帮助的:
Windows7光盘制作教程之一: 向脱机映像添加补丁
http://hi.baidu.com/zxkh/blog/item/93a74e08263db89c0a7b828f.html
Windows7光盘制作教程之二: 低版本的Windows7升级为高版本
http://hi.baidu.com/zxkh/blog/item/20ea530faa777e236159f35a.html
Windows7光盘制作教程之三: X86、X64、Win7、2008R2大合并
http://hi.baidu.com/zxkh/blog/item/97925b8231fc6aab0cf4d29f.html
1条评分
quen2008 电魂 +3 闪电联盟因你而精彩! 2009-10-05

主队让半球高水,一般不能要主队!
凡是开半一的盘,一般不能要下盘!
凡是开一球或一球球半的盘,一般不能要上盘!
凡是开一球半以上的盘,一般不能要下盘!
离线zhb_3448

发帖
59686
今日发帖
最后登录
2016-12-13
只看该作者 沙发  发表于: 2009-10-05 12:22:19
WIN7 OEM 多合一的制作教程(下) 

  第一部分的“WIN7 OEM 多合一的制作(上)”主要讲imagex一些常用命令的使用,灵活使用这些命令可使我们事半功倍,更重要的是知道了这些命令的用途之后,我们对wim的修改、合并的有进一步的了解。对理解一些制作步骤有很大的帮助,否则写步骤时,你只知道步骤是这样的,但不知道为什么要这个步骤。
好了,现在开始讲实质性操作步骤了。

一、操作基本步骤
如果你仅制作1个OEM版本,你可以用常见$oem$发布的办法,也可以利用boot.wim整合OEM元素,但现在我们要做的是2个以上的OEM合集,前面的办法是行不通的,至少目前是找不到有效的办法。有效的办法是,打开install.wim文件,添加多个OEM映像,不同的映像里面的OEM元素是不同的。先讲制作第一个OEM版本,第一个知道怎么做了,第二个道理是一样的,只是添加映像的问题了。
假定我们是制作X86 WIN7 旗舰版的OEM多合一。

1、制作第1个OEM映像
把X86 WIN7 旗舰版官方ISO的所有内容提取到E:\win7x86目录内,用虚拟光驱或ultraISO提取都可以。并在E盘建一个目录E:\wimmount。然后,执行imagex命令,将旗舰版的映像提取出来:
imagex /export E:\win7x86\sources\instal.wim 4 E:\install.wim /compress maximum
执行后,将E:\win7x86\sources中的install.wim删除掉,将E:\install.wim 复制进来。然后执行:
imagex /mountrw E:\win7x86\sources\instal.wim 1 E:\wimmount
pause
这样,旗舰版的映像就被装载到E:\wimmount目录内。现在将OEM元素复制进E:\wimmount中相应目录中(怎么配置OEM元素,复制到哪些目录,后面会讲到)。然后执行:
imagex /unmount E:\wimmount /commit
imagex /info E:\win7x86\sources\install.wim 1 "windows 7 旗舰版 联想" "32位操作系统,简体中文,适用于LENOVO品牌PC"
pause
现在E:\win7x86\sources\instal.wim 中就有了第一个OEM映像了。

2、制作第2.3.4...个OEM映像
先执行:
imagex /mountrw E:\win7x86\sources\instal.wim 1 E:\wimmount
pause
然后进入E:\wimmount目录,将第1个OEM映像的OEM元素删除,加入第2个OEM版本的OEM元素。然后执行:
imagex /commit /append E:\wimmount "Windows 7 旗舰版 戴尔"
imagex /info e:\win7x86\sources\install.wim 2 "Windows 7 旗舰版 戴尔" "适用于DELL品牌PC"
pause
同样方法,加入第3个OEM版本的OEM元素,然后添加第3个映像,执行:
imagex /commit /append E:\wimmount "Windows 7 旗舰版 惠普"
imagex /info e:\win7x86\sources\install.wim 3 "Windows 7 旗舰版 惠普" "适用于HP品牌PC"
pause
同样道理,加入第4个、第.5.个OEM映像。记住,假如我们只做5个OEM品牌的映像,做到第5个(最后一个)时使用这样的命令:
imagex /commit /append E:\wimmount "Windows 7 旗舰版 华硕"
imagex /info e:\win7x86\sources\install.wim 5 "Windows 7 旗舰版 华硕" "适用于ASUS品牌PC"
imagex /unmount E:\wimmount
pause
第三行不能用上 /commit,因为如果用上/commit,那么会修改第1个映像,这是我们不希望的,因为第1个我们已做好了。现在你可以测试一下,运行e:\win7x86中的setup.exe,看一下是不是有五个OEM版本供你选择呢。

二、配置OEM元素
如何配置OEM元素呢?配置好的OEM元素又将放在哪些目录里呢?这就是重点了。
准备工具,规范目录。在E盘建一个OEM目录,里面建一个Scripts文件夹,里面再建一个lenovo目录(以LENOVO为例)、dell、hp.....等等,lenovo里面再建立这几个目录:info、oem、Wallpaper、Panther、Themes。

1、配置OEMKEY和证书
建一个这样的文件,名为unattend.xml,XML文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"

xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <FavoritesOnTop>true</FavoritesOnTop>
            <Home_Page>

主队让半球高水,一般不能要主队!
凡是开半一的盘,一般不能要下盘!
凡是开一球或一球球半的盘,一般不能要上盘!
凡是开一球半以上的盘,一般不能要下盘!
离线飞向未来
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 板凳  发表于: 2009-10-05 12:33:10
谢谢分享,我正想研究
离线quen2008
发帖
*
今日发帖
最后登录
1970-01-01
只看该作者 地板  发表于: 2009-10-05 19:48:14
很详细,谢谢分享