2011年03月18日

没错, 我的SP1安装也失败了, 而且是在IE9安装失败前发生的. 只不过IE9问题的解决, 给了我点思路, 让我得以顺利的解决问题.

Win7 SP1 X64安装失败的表现: 缺少系统组件.不能正常安装之类...

事实上, 从当我看到这个结果的时候,我又习惯性的放狗搜去了. 当然, 得到的结果也都大同小异.就是用优化软件导致的系统重要的驱动备份被删除. 解决办法有2个 , 一是用Win7的安装光盘修复并更新(微软推荐做法) 二是从Win7光盘里提取文件夹覆盖(涉及到权限问题, 很是麻烦). 我是2种方法都试验过了, 没一个成功的. 另外有一个是要求使用Windows6.1-KB947821-V10-X64.msu先预更新下系统. 当然, 我也做了, 没有任何的区别. 一样是报错. 不过, 经过修复IE9的问题, 我想到了查看下KB947821的知识库文章. 微软对此的描述是”提供此更新是因为在 Windows servicing store 中发现了不一致,这可能会影响将来成功安装更新、service pack 和软件。此工具将检查您的计算机上是否存在这种不一致,并在找到不一致时尝试解决问题。” 那么为何我安装了更新仍然是不成功呢? 这就需要看看这个更新到底做了些什么.  在C:\Windows\Logs\CBS\CheckSUR.log里查看都有什么错误的时候, 发现了很多文件丢失的问题:

(f)    CSI Payload File Missing 0×00000000    ativvpxx.vp    amd64_atiilhag.inf_31bf3856ad364e35_6.1.7601.17514_none_03c46b205be81dfd

仔细的查看丢失的文件夹名称, 主要是3个:

amd64_atiilhag.inf_31bf3856ad364e35_6.1.7600.16385_none_019357585ef99a63

amd64_atiilhag.inf.resources_31bf3856ad364e35_6.1.7600.16385_en-us_a84b3670179ab5eb

amd64_atiriol6.inf_31bf3856ad364e35_6.1.7600.16385_none_a909ad21d26d5bd0

用Everything搜索了下相同的文件夹位置, 主要是在C:\Windows\winsxsC:\Windows\System32\DriverStore\FileRepository\下. 而且, 这3个文件夹里的确都是空的. 印象中, 我虽然也使用优化软件, 但是基本只用Tuneup, 剩下全是手动操作了. 那么这几个文件看起来是和AMD相关,而我的机器上, 唯一AMD的东西就是显卡了. 几天前, 我确实是用DriverSweeper清理过显卡驱动. 那这个就是罪魁祸首了? 既然是因为这3个文件夹里的东西丢了那么只要找回来重新覆盖就应该OK了. 所以, 最简单的办法是从安装源文件里复制就Over了. 用Daemon装载映像, [拷贝出Install.wim,我觉得直接在虚拟光驱里用7Zip也行, 我只是习惯性的拷贝出来] 用7Zip打开相应的映像,复制原始文件夹到C:\Windows\winsxsC:\Windows\System32\DriverStore\FileRepository\. 重启, 安装Windows6.1-KB947821-V10-X64.msu, 安装SP1, 系统重新检查需要下载的文件大小, 下载然后安装, Finished!

其实, 解决的方法说起来简单, 但是想要找到问题的症结确实需要花点功夫. 这里头需要注意几点:

1. 确认丢失的文件名称和所在的文件夹. 我一开始只复制到C:\Windows\winsxs, 结果安装到最后SP1还是报同样的错误. 我才想起来还要拷到C:\Windows\System32\DriverStore\FileRepository\才行.

2. Windows6.1-KB947821-V10-X64.msu是非常关键的. 即便我使用原始文件覆盖后, Windows6.1-KB947821-V10-X64.msu还是替换了我覆盖的这些文件

(fix)    CSI Payload File Missing    CSI File Replaced    File: ativvpxx.vp From: C:\Windows\winsxs\amd64_atiilhag.inf_31bf3856ad364e35_6.1.7600.16385_none_019357585ef99a63\ativvpxx.vp [能替换就不能复制丢失的文件???微软搞的什么逻辑???]

3. 在提取Install.wim时候, 不要提取错文件夹的. 因为我的系统是Win7HomePre, 而网上几乎所有的说明都是安装Win7Ult来的. 事实上, 你用7Zip打开Install.wim后, 会发现几个数字组成的文件夹[1,2,3,4,5, 这取决于用的光盘. 用HomePre的盘打开是4个文件夹, 用Ultra的盘打开是5个文件夹. ] 一定要确认好自己的系统是用哪个文件夹. 我用Ultra的盘打开后有5个文件夹, 但是属于HomePre的文件夹编号是2. 当然, 如果你不确定的话, 在和这些数字文件夹同级的目录下, 有个[1].xml. 里头记载了每个文件夹所代表的操作系统. 例如, 我的HomePre是:

- <IMAGE INDEX=”2>
<DIRCOUNT>14172</DIRCOUNT>
<FILECOUNT>66370</FILECOUNT>
<TOTALBYTES>12074985673</TOTALBYTES>
- <CREATIONTIME>
<HIGHPART>0×01CA0446</HIGHPART>
<LOWPART>0xE89FF88A</LOWPART>
</CREATIONTIME>
- <LASTMODIFICATIONTIME>
<HIGHPART>0×01CA0475</HIGHPART>
<LOWPART>0xE39163AA</LOWPART>
</LASTMODIFICATIONTIME>
- <WINDOWS>
<ARCH>9</ARCH>
<PRODUCTNAME>Microsoft® Windows® Operating System</PRODUCTNAME>
<EDITIONID>HomePremium</EDITIONID>
<INSTALLATIONTYPE>Client</INSTALLATIONTYPE>
<HAL>acpiapic</HAL>
<PRODUCTTYPE>WinNT</PRODUCTTYPE>
<PRODUCTSUITE>Terminal Server</PRODUCTSUITE>
- <LANGUAGES>
<LANGUAGE>zh-CN</LANGUAGE>
<DEFAULT>zh-CN</DEFAULT>
</LANGUAGES>
- <VERSION>
<MAJOR>6</MAJOR>
<MINOR>1</MINOR>
<BUILD>7600</BUILD>
<SPBUILD>16385</SPBUILD>
<SPLEVEL>0</SPLEVEL>
</VERSION>
<SYSTEMROOT>WINDOWS</SYSTEMROOT>
</WINDOWS>
<NAME>Windows 7 HOMEPREMIUM</NAME>
<DESCRIPTION>Windows 7 HOMEPREMIUM</DESCRIPTION>
<FLAGS>HomePremium</FLAGS>
<HARDLINKBYTES>4911355908</HARDLINKBYTES>
<DISPLAYNAME>Windows 7 家庭高级版</DISPLAYNAME>
<DISPLAYDESCRIPTION>Windows 7 家庭高级版</DISPLAYDESCRIPTION>
</IMAGE>

4. 微软的解决方法, 使用Win7安装光盘, 修复并更新操作系统. 不知道为啥对我并不使用. 过不去兼容性检查. 说是系统文件和程序文件不在一个分区. 难道是因为我把Program Files移动到D盘了嘛? 如果真是这样, 这更新程序也够弱智的.

5. I always bridle at people who only know restore their computer whenever somthing unusual happend.

Tags: ,,,,.