xiaowuhello
【转载】Win7 封装深入研究教程《步步为营封 Win7》A

Win7 封装深入研究教程《步步为营封 Win7》A

2009-12-06 00:17

Win7 封装深入研究教程《步步为营封 Win7》

Win7 时代是一个崭新的时代,从这里开始,我们所有人又回到了同一起跑线上。无论您以前是高手还是菜鸟、接触或没接触过这门技术,从 Win7 开始我们都是从0开始。

《步步为营封 Win7》分为 6 章讲解 Win7 封装:

[2楼]《步步为营封 Win7》引言

[3楼]《步步为营封 Win7》基础

[4楼]《步步为营封 Win7》驱动处理

[5楼]《步步为营封 Win7》磁盘控制器

[6楼]《步步为营封 Win7》初级部署控制

[7楼]《步步为营封 Win7》进阶部署控制

《步步为营封 Win7》循序渐进、由简到繁、图文并茂的逐步讲解Win7封装与部署技术,是您学习这项技术最好的教程。

诚然,我个人也无法保证这篇教程中的每个字都是正确的,但本教程的最终目的是打造一个共同交流技术的环境,形成最优的技术交流氛围,从而达到方便更多人的目的。

记住:从来就没有高手,只要用心,人人都是高

步步为营封 Win7》引言

WIN7 RTM发布已经有好几天了,其实我从最早VISTA时就研究过WIN6.X这一代系统的封装,之前又在WIN7 7264版本上实践过部分WIN7封装技术。想了很久,不想像以前那样只发个傻瓜化的工具给大家用,因为那样会使很多技术变得封锁起来,所以我决定写这篇教程。

这篇教程可能会分成很多章节,我会每隔1~3天更新一章,在这期间我会和大家一起一步步的完成对WIN7的封装,并和大家共同探讨这其中的问题,很渴望大家能积极参与。今天我只写了个引言,也算是我的一些感慨,不过我仍请大家细读一下这个引言,这将为我们今后一起研究WIN7封装打下良好的基础。

引言

虽然是引言,但是我仍请大家耐下心来阅读,我相信本文即使是引言部分也可以给您带来些许收获。

(一)现状!

傻瓜式工具最终造就了什么?本来制作各类智能化工具的初衷是提高工作效率、降低技术门槛以及减少不必要的人力物力消耗,但从实际情况看,并非是如此。

工具越来越智能,操作的选项越来越少,很多以前需要大量手工操作的事情现在变得按一下按钮一切搞定。诚然,这提高了工作效率,但也一定程度上的封锁了技术,降低了真正技术的交流。试问有多少人了解这一个按钮后面的真正技术?有多少人真的明白智能化工具究竟做了哪些事情?越来越少的人关心封装部署技术的核心部分,越来越多的人只追求封个系统了事,太多人习惯于浮于表面的所谓技术交流,太多人习惯于等待高手做出“按一个按钮解决一切事情”的工具。

如果有太多人依赖智能化工具,那将有太多人不明白这项技术的真谛,那会导致只有太少的人能进行这方面的技术交流。技术交流渠道越来越窄,技术水平发展速度越来越慢,技术层次越来越低,这样的结果又有几个人希望看到?本文立足于这个现状,借微软Windows7操作系统的发布,和大家一同探讨系统封装与部署技术。当然,由于Windows7是最新的操作系统,本文又写于Windows7刚刚发布之际,如文中有各种差错,还请大家谅解。

本文的最终目的,旨在让人人都能真正理解这项技术,从而逐步构造一个技术交流的氛围,最终打破现在“等工具,封装,等工具,封装”的现状,共同构筑大家的技术共享平台。

(二)封闭?

天空的最初原则就是开源,“技术开源传万世,共同革新同提高”是自由天空最初的口号,同样是最终的目的。但同样,我也不只一次的听别人说我们天空变质了,变得不乐于开放技术了,是吗?开源是什么,这里不多说,有兴趣多问问百度和谷歌。但我要强调的是,开源绝不是某些人认为的“开源就是可以随便拿走,稍加修改就可以说是我自己原创”!

天空写出的教程,被不良居心的人拿走,改改作者名即说教程中的滴滴汗水都是他们原创;天空研究的代码,被无德无知的人拿走,改几个变量名就说代码中的种种心血都是他们原创;天空整理的驱动,被无能无术的人拿走,复制粘贴一下就说那大量的时间和精力都是他们的原创!当这些人被追问时,他们经常反咬一口,“你们不就是开源吗?”、“开源不就是可以随便拿走吗?”、“网络不就是这样吗?”。诚心的请问你们真的懂什么是开源吗?试问各位天空论坛的老坛友,大家记得天空从创建到今天各种剽窃事件发生了多少起?而这次次事件又让天空寒透了多少回的心啊!

由于这些无德之辈的存在,我们无法全心全意的开放与交流技术,他们实在令我们每一个开源者无法敞开心扉和大家交流。最终是谁封闭了技术?大家心领神会吧。

(三)概念……

如果基本概念搞不清楚,那么技术就会有倾斜;如果太多的基础概念搞不清楚,成就的技术绝不能称为技术。没有哪个数学家不懂一元一次方程的,没有哪个物理学家搞不清楚牛顿定律的,系统封装与部署也是一样。

1、什么是系统封装

我不想用官样的语言来描述这个概念,想必没人想看微软式的帮助——你读得懂每个字,就是看不明白说的什么意思。那么我就用最普通的方法来描述这个概念:

系统封装就是将系统打回到“准备状态”,从而可以部署至更多的计算机。

我们可以将A计算机中已经安装好了的Windows7进行封装操作,从而A计算机中Windows7重新进入了“准备状态”。而后通过微软官方映像工具(ImageX等)或者第三方映像工具(Ghost等)对A计算机中的Windows7进行备份,而后再通过这类工具将Windows7处于“准备状态”的映像恢复到B计算机中。而后Windows7在B计算机中开始执行部署过程。

A计算机中安装好的Windows7→封装→“准备状态”的Windows7→备份到→Windows7映像→恢复到→B计算机→B计算机中的Windows7开始部署→B计算机中安装好的Windows7。

系统封装是一种快速的将一台计算机中的操作系统快速的部署于多台计算机的技术,系统封装和部署过程中,很多系统设置会还原到最初值,所以部署到其他计算机中的系统可以一定程度上认为是全新的系统——当然,某些设置、软件的安装、补丁的安装、系统优化等还是保留的。

2、封装部署不是克隆

或许是使用到了Ghost,或许是早年部分人图方便直接使用了Ghost对系统进行克隆,让系统封装与部署莫名的背上了“克隆版”的黑锅,同样也被扣上了各种“不稳定”、“不如安装版”的不明不白的怀疑。

上文已述,Ghost只是一个映像工具,负责的仅仅是“将封装好的系统进行备份为系统映像”和“将系统映像恢复到其他计算机”这么一个工作,Ghost本身并未参与系统封装和部署的任何一个过程。如果你喜欢,还可以用ImageX、ATI等映像创建与恢复工具,不一定要用Ghost。所以,“克隆版”只是很多不明技术真相的人的一个很不专业的通称而已。至于封装部署的系统是否没有安装版稳定,个人感觉不是个需要讨论的问题。系统安装技术来自于微软本身,而系统封装与部署技术也来自于微软本身,自家兄弟的强弱与否貌似毫无争论的必要。

由于曾经存在过的各类改版系统采用了系统封装与部署技术,很多这种改版的制作者又对系统进行了各种精简优化操作、使用了不成熟的磁盘控制器驱动技术等,从而总是让封装部署版的系统带有相对“不稳定”的特性。这种不稳定完全由改版制作者的技术决定,与封装部署技术本身的稳定性毫无关系。

3、封装部署不是盗版

前文已经多次提到,系统封装与部署技术就是微软自家的技术,目的是提高系统安装速度、降低IT专业人士重复的机械操作。由于这项技术的这种优势和特性,使得很多计算机销售商乐于使用这种技术,毕竟不可能总是重复为每一台计算机安装系统、打补丁、装软件等机械过程,这会带来不必要的人力物力损失。

由于国内大部分人对操作系统版权意识的淡薄,而正版Windows操作系统的价格又居高不下,导致了不少人动了歪念头。例如经典的使用XP大客户版制成封装部署版,以盗版光碟或网络传播的方式散布盗版系统。盗版系统的制作者采用的正式封装与部署技术,因为这种技术最为方便,技术门槛也最低。正是这个原因,让很多人一想到系统封装与部署技术,立刻就联想到了盗版。但这是不公平的,也是没有任何理由的。

系统封装与部署技术是一项技术,这是一项可以方便你我他的技术。而有些人将这项技术用于了不正的途径,就像有人拿菜刀砍伤了人一样,砍伤人完全是行为人负责,难道与菜刀有关吗?

4、封装工具是什么

既然系统封装工具是微软的,那么我们现在常见的各种“封装工具”又是什么?

准确的说,现在网络间流传的“封装工具”绝大多数都是“系统封装辅助工具”。这些工具本身并不具有对系统进行封装和使系统进行部署的能力,系统封装和部署仍旧是依靠微软官方的工具。“系统封装辅助工具”的主要职责,是将平时需要手动配置的各种项目图形化和智能化、扩展系统部署的范围与适用性等。

这也就是说,“系统封装辅助工具”是辅助我们进行各种操作、扩展系统封装部署性能的工具,它们在执行过程中会调用微软官方工具执行具体项目。

(四)技术——

我们要一起研究这项技术,Windows7是一个不错的开始,因为在Windows7面前我们都是一样的,我们又有了一个新的起点,我们都站在了相同的起跑线上。

研究技术最忌讳的事情:

1、掺入自己主观观念的技术。不要给自己的技术加入任何主观观念,要客观的看待任何问题,对任何技术的理解必须有理有据,不可主观臆断。

2、感觉自己很NB。半瓶子醋总是逛荡的,反倒是满瓶醋逛荡不起来。肚子里稍微有点东西请勿感觉自己牛,可知山外有山、人为有人,况且任何人但凡有一点比你强就是你的老师!

3、嘲笑新手。这反映了两个问题,第一,你绝不是高手;第二,心态浮躁。

4、过大的询问某个问题。提问时一定要细化问题,不能猛一下提个很“宽广”的问题。例如“谁来教我封装?”、“怎么自动封装?”、“SRS驱动怎么做?”等。这种貌似只有一句话很简单的问题,其中包含的小问题数绝对都在三位数以上。如果你这样提问,没有人回答你是很正常的,无需抱怨。

研究技术,一定要踏踏实实稳稳当当,切忌浮躁。提问前一定要自己先研究,没有失败经历的人绝不可能做成技术。而如果你要提问,则问题越是细化越是可以更快得到答案。

从来就没有高手,只要用心,人人都是高手!

[1]《步步为营封WIN7》基本

一切都得从基础开始,只有懂得和掌握了最最基础的东西,才有可能撑起更多的上层技术。所以我们有必要了解用最基本的方法如何封装Windows7,从基本逐步延伸到高层。

(如下内容以Windows 7 RTM x86 简体中文旗舰版为例)

(一)Windows7的安装

这里我不想长篇累牍的讲述如何如何安装Windows7,在此讨论系统封装部署的各位想必都会安装Windows7,在这里我想说几点在Windows7安装中需要注意的地方。

如果我们的硬盘是尚未使用的,如下图:

在尚未使用的硬盘上安装Windows7,分区时会有一些有趣的事情,如下图:

1、从Windows Vista开始的Win6.x这代系统(Windows7版本号为Windows6.1,其实和Vista一样属于Win6.x),在执行分区操作时只能创建主分区(如果是我个人技术问题请指正),我不明白为什么微软要这样设定。锁定只能格式化为NTFS如果尚可理解的话,只能创建主分区又是什么目的?

2、如果硬盘是尚未使用的,为Windows7创建分区时会自动创建一个100M的所谓“系统分区”,而Windows Vista SP2和Windows Server 2008 SP2都没有这种现象。这个分区默认是隐藏的,即Windows7安装好后是看不到的。经过仔细对比后发现这个100M的分区里盛放的是Windows7的一些启动相关文件(有兴趣进PE查看)。

我们暂且把这个100M的分区叫做“启动区”,安装系统的分区叫做“系统区”。一开始我感觉很新奇,后来回想一下XP时代其实微软就已经这样做了,只不过那时候没有现在完善而且不强制罢了。有兴趣的朋友可以试试,在未安装系统的硬盘上安装XP时分一个100M左右的C盘,然后把系统安装到D盘去,XP也会复制它的启动文件到C盘,而把系统文件装在D盘,这和Windows7的这种强制做法一致。

从XP到VISTA,包含启动文件的启动区和包含系统文件的系统区同在C盘,而Windows7则是单独划出一个100M的分区当做启动区以盛放启动文件,又将系统文件放置于其他分区。看到这里也发现没什么特别出奇的,只不过是分开放置了一下文件而已,就像Linux把/boot挂载到一个单独的分区一样。

到这里大多数朋友都看出来了,第一,这个100M的分区的实际意义并不是特别强大,而且由来已久,不是Windows7特有的;第二,这种把启动区独立出来的方法不方便封装后系统映像的备份与转移工作。既然如此,那么我们就自己划定分区吧,即不用莫名多个100M的分区,也不用为不能划分逻辑分区发愁。

使用其他硬盘分区工具操作(注意,强烈不推荐PQ和PM),分区后重新进入系统安装过程,如下图:

看到这个界面猛的熟悉了很多,这是我们最常见的分区模式,那就继续执行我们的系统安装操作吧!

稍等片刻后,系统安装完毕,如下图:

Windows7安装好后,会启动一个OOBE过程,在这个过程里要输入各项系统设定。这里会强制用户输入一个全新的用户名,并根据这个用户名确定计算机名。Windows7默认是不允许使用Administrator进行登录的,而是使用刚才我们创建的那个用户。但实践证明,系统封装强烈推荐使用Administrator账户(原因后述)。

下面我们开启并使用Administrator账户,进入计算机管理界面:

打开Administrator账户的属性,将“账户已禁用”前面的对号去掉:

而后删除掉刚才创建的用户账户,如“SkyUN”:

这时会有一些提示,建议看一看,然后一路确定下去。用户账户调整完毕后如下图:

即计算机内只有Administrator和Guest两个账户,Admnistrator账户为启用状态。而后注销当前用户,注销后看到如下图界面:

选择Administrator登陆系统,进入用户桌面后,对系统简单调整后如下图:

到这里,我们就以系统封装为目的完成了对Windows7的安装操作,建议使用Ghost备份一下当前的系统,以备以后再次使用。

(二)Windows7的封装与部署

现在我们使用微软官方的系统封装工具执行一次封装,让大家看看最原始的封装方式是什么样子的。

Win5.x(2000/XP/2003)的系统封装工具都位于他们的系统光盘上,而Win6.x的系统封装工具都位于系统分区内。打开C:\Windows\System32\Sysprep文件夹,你就会看到Sysprep3.14版。

运行sysprep.exe,“系统清理操作”选择“进入系统全新体验(OOBE)”,选中“通用”;“关机选项”选择“退出”——如果您想直接重启或关机也可以选择对应选项,选退出是为了方便观察。

选项设定结束后,单击“确定”按钮,执行系统封装。sysprep3.14执行系统封装分为两步:

务必在封装时观察是否执行了这两步,sysprep3.14在Windows7下有一定的失败率(高于在Vista下的失败率),而且失败的原因莫名其妙,有时因为调整一下页面文件都会造成封装失败,很无语。

如果顺利执行完了这两个封装步骤,会看到Sysprep文件夹下生成一个封装成功的TAG文件:

其实到这里Win7的基本封装就结束了,重新启动计算机,我们看一下Windows7的部署过程:

1、更新注册表设置:

2、启动基本服务

3、安装设备驱动

4、应用系统设置

5、基本部署结束,重启计算机.

6、又进入了熟悉的OOBE,新建账户

7、使用账户登录进入桌面

这样,整个系统封装并部署的过程就完成了。大家可以发现原始的封装部署是一件十分简单的过程,而且操作并不复杂。

(三)基本封装部署问与答

1、为什么建议使用Administrator账户进行封装?:

(1)如果我们使用普通账户进行封装,封装完毕部署后仍然会进入OOBE过程,仍然会要求我们新建一个账户,而且这个账户是不可以与我们之前封装所用的账户冲突的,这无疑形成了一种残留,或者说是冲突。

(2)普通账户下,虽然用鼠标双击某些程序可以直接运行,但使用自动化程序调用某些程序、在C盘下建立目录等操作时会有问题,有兴趣可以尝试一下,这对我们下一步的自动化封装部署形成了障碍。

(3)我们删除安装时创建的账户,而是用Administrator账户进行封装操作,这在程序执行上有很多便利。而且Windows7在封装部署后又会自动禁用Administrator账户,就像我们第一次安装系统时那样,在部署后的OOBE时再创建任何账户都不会与当前系统内的账户冲突,就像全新安装系统那样,很是干净。

2、Windows7封装还是否需要卸载驱动?

我没有在官方找到相关说明,但根据实际经验来看是需要的。至于为什么我没有在这次演示中卸载驱动,是为了给大家原汁原味的展示微软官方封装部署是个什么样子。

3、Windows7封装部署是否还需要额外的磁盘控制器驱动?

这个我可以很确定的说需要。很多偏颇的认识过于神话Windows7,几乎把Windows7吹成无所不能的,但实际绝非如此。:

诚然,Windows7集成了一定量的常用磁盘控制器驱动,可以暂时应付常见机型,但并不代表着Windows7不需要增补磁盘控制器驱动,更不代表着今后不需要添加磁盘控制器驱动!就像2001年时的XP,当时XP的自带驱动也几乎是无敌的,而在8年后的今天,没有额外磁盘控制器驱动的XP几乎是寸步难行的。

所以,磁盘控制器驱动的增补是必须的。

4、Windows7封装部署是否还需要针对硬件抽象层进行修改?

首先我们来了解一下什么是硬件抽象层(HAL),我们可以把HAL认为是一组类,虽然我们的计算机硬件配置千差万别,但都可以归为HAL中的一个类,例如XP时代单核心的计算机归为一类、多核心计算机归为一类等。

但到了Windows7(其实从Vista开始就已是如此),HAL被简化为只有两类,即x86的HAL和x64的HAL。所以我们无需再担心HAL的问题,我们只需要知道我们封装的是x86还是x64的系统就可以了。

关于Windows7的基本封装与部署就介绍到此,希望能给大家带来帮助和启发。篮球天才也得每天练习最基本的运球和投篮,记住这句话。