注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

开心啊的博客

 
 
 

日志

 
 

以SRS为例,谈一下封装及封装工具  

2010-10-26 18:49:27|  分类: 综合 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
以SRS为例,谈一下封装及封装工具

原帖作者:小兵

一个不经处理的Windows系统直接恢复到另一台机器上,最有可能出现的情况就是蓝屏,或者反复重新启动。那么,造成蓝屏、重启等的原因是什么呢?事实上,这就是通用克隆系统所要解决的最基本的技术问题。

我们这里以封装XP系统为例,2003及2K的方法都是大同小异的

首先我们来了解一下封装的步骤:

一.安装操作系统
   装系统、打补丁,至于集成驱动及软件、优化或美化等由需要而定。
   Dllcache备份的步骤可选,这里就不单独列为一项了。Dllcache备份的原理不是备份文件,而是备份文件名,在系统恢复后从I386的CAB包中提取相应文件。Deepin XP lite是没有这些文件的,300多兆的Dllcache并不是必需的。

二.删除、更改系统硬件驱动

1.更改HAL电源模式的方法其实有很几种,目前主流的就是使用Longhorn的ntldr自动判断。longhorn的ntldr有一个新参数,即/detecthal(在boot.ini的启动项中设置),通过这个参数,可以实现自动判断并选择计算机类型,而且这种技术由于源出于微软,所以其结果是百分百准确的。基本上,使用Longhorn技术来判断正确的hal就是目前最完美的解决办法。死改不改的S&R&S 9.x版本基本上都使用这种方式。

2.更改存储控制器类型
硬盘控制器包括PATA(传统的硬盘控制器)、SATA、RAID、SCSI等,实际上,死性不改的S&R&S就是SATA&RAID&SCSI的意思。在通用克隆发展的早期,SATA硬盘还不是很流行,这个问题还不是很严重,因为所有的PATA(IDE)控制器都兼容于标准双通道IDE控制器,所以人们制做克隆时只需要将源机器的IDE控制器修改为标准双通道即可。但很显然,SATA并不兼容于标准双通道,所以当时制做的克隆系统在SATA硬盘上恢复后重启时会出现蓝屏。

3.删除其他硬件驱动

三.封装
依照作者选用的封装方式,封装的步骤也就不尽相同。如果选用SRS的话,这里就可以直接封装了,它会调用sysprep完成封装过程。手工替换NTLDR的就需要自己细心一点,替换文件、删除相关注册表等。

注:S&R&S9.7集成了更改电源及IDE模式的功能,所以第二步里面的1和2也可不做。


下面我们研究一下封装工具都做了些什么:

一.电源检测
S&R&S9.X采用了基于MCC硬件抽象层电源识别技术,即替换LONGHORN版本的NTLDR,依靠/DETECTHAL来完成对电源模式的检测。早期是需要用户手工选择的,这里就不说了。

二.更改IDE模式
通过mshdc.inf文件来更新IDE模式为双通道
runwait("devcon update "&@windowsdir&"\inf\mshdc.inf E_ISA_UP","",@SW_HIDE)

三.驱动集成
很显然,以我们个人的能力是不可能搜集到所有的MassStorage设备的驱动的,同时存储技术在不断发展,新硬件也层出不穷,这是通用克隆不可能实现万能的原因之一。
S&R&S9.X采用了DPS驱动包,所以大家在N多使用不改的封装工具的GHOST作品里都可以看到“含大多数驱动,支持SATA。。。支持64位”。这话是怎么来的呢?
http://driverpacks.net/driverpacks/windows

除了存储设备的驱动,新型的CPU以及USB键盘、鼠标等设备驱动也要集成到系统里,例如AMD K8 CPU等。不过,这些驱动之间有可能存在不兼容问题,驱动的不兼容会导致同时加载时直接死机,例如intelide与viaide的不兼容问题,这是导致克隆不能万能的原因之二,也是最主要的同时也很难解决的问题。

至于更改及恢复启动菜单、调用sysprep进行静默封装等非技术步骤,这里不做讨论。


 
了解了封装工具的工作原理以后,我们会想:

封装工具是必需的吗? 答案是:不!

在预封装问题上,为了让系统能正确识别MassStorage设备,目前可以采取集成驱动到system32\driver或使用txtsetup引导(深度的V2及老毛桃的PE都是这样做的)的办法。

通过手工替换相关文件,可以做到完美的电源检测,在深度白金3in1中已经做到了100%准确。虽然SRS采用的也这个技术,但是在实际应用中,效果仍不是绝对满意的,出现了部分用户无法正常关机的情况,也就是电源检测上出了问题。

尽管我们可以通过手工替换NTLDR及HAL、修改注册表、更改电源及IDE模式,最后运行SYSPREP进行封装,但是在一些驱动问题上,我还没有做到面面俱到,在3in1中就已经体现了对一些SATA等设备的识别问题。

Windows NT不再依赖于BIOS提供的方式访问硬盘,而是通过底层的驱动程序,如果没有加载对应的驱动程序,那么Windows就会找不到硬盘,找不到硬盘当然就不可能将Windows启动起来。而DOS则是通过BIOS来访问硬盘的,所以这也是为什么DOS能够访问SATA、RAID、SCSI硬盘而Windows却不能访问的主要原因。目前,死性不改正在探索在DOS下运行的S&R&S软件,目的就是解决这个问题,其实现原理就是根据目标机器的硬件情况在DOS下只加载适合目标机器的对应的驱动,这样就可以有效避免驱动程序的不兼容问题。

实际上我们深度已经有了自己的封装工具,但是我们必须看到这条路的发展方向,我个人认为,封装工具不是必需的,而辅助工具却是急需的。

  评论这张
 
阅读(341)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017