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: ,,,,.
2011年03月16日

最近微软发布了IE 9, 我习惯性的下载安装. 可悲的是,IE 9无法在我的Win7 HomePre X64上安装. 放狗搜了一阵, 大家给出的方法大同小异. 可是事实上, 不同的机器即便是相同的病状还是需要对症下药的. 说说我遇到的情况.

一. IE 9的安装

IE 9安装前要先安装下预更新补丁.

Windows 7 和 Windows Server 2008 R2

  • Windows 7 更新 (KB2028551 (http://support.microsoft.com/kb/2028551/ ) )
    本更新可解决某些元素在打印包含视觉画笔的 XPS 时(通过转换为基于 GDI 的打印机)被剪裁的实例。安装此更新后,必须重新启动计算机。

  • Windows 7 更新 (KB2028560 (http://support.microsoft.com/kb/2028560/ ) )
    本更新提供了图形平台性能方面的改进。安装此更新后,必须重新启动计算机。

  • Windows 7 更新 (KB2120976 (http://support.microsoft.com/kb/2120976/ ) )
    本更新可解决您在使用 Windows 7 上的媒体基础时遇到的各种流问题。安装此更新后,必须重新启动计算机。

  • Windows 7 和 Windows Server 2008 R2 的更新 (KB2259539 (http://support.microsoft.com/kb/2259539/ ) )
    安装此更新,可解决缩略图控件无法在某些使用这些控件的应用程序任务栏中显示的问题。

Windows Vista Service Pack 2 和 Windows Server 2008

  • Windows Vista 的平台更新补充测试版 (KB971512 (http://support.microsoft.com/kb/971512/ ) )
    Windows 图形、图像和 XPS 库包含了用于游戏、多媒体、图像和打印应用程序的现代图形技术上的最新进步。它包括 DirectX、DirectCompute 和 XPS 库的更新。安装此更新后,必须重新启动计算机。

  • Windows Vista 的平台更新补充测试版 (KB2117917 (http://support.microsoft.com/kb/2117917/ ) )
    本更新提供了有关 Windows Vista 平台的图形、媒体基础和打印方面的修补程序和改进。在安装此更新之前,应先安装 KB971512。安装此更新后,必须重新启动计算机。

但是, 即便是你安装了这些更新, 仍然有可能无法安装IE 9. 具体原因, 需要查看下IE 9的安装Log. 具体路径在这: C:\Windows\IE9_Main.log 打开后查看里头有无错误信息. 一般情况下, 出错的有可能是

01:11.792: INFO:    Installing with the downloaded package. C:\Windows\TEMP\IE910AB.tmp\IE9-neutral.Downloaded.msu
01:11.948: INFO:    Launched package installation: C:\Windows\system32\dism.exe /online /add-package /packagepath:C:\Windows\TEMP\IE910AB.tmp\IE9-neutral.Downloaded\Windows6.1-KB982861-x64.cab /quiet /norestart
01:34.396: INFO:    Process exit code 0×0000007B (123) [The filename, directory name, or volume label syntax is incorrect. ]
01:34.443: ERROR:   Neutral MSU installation failed (exit code = 0×0000007b (123)).
01:34.474: INFO:    Launched package installation: C:\Windows\system32\dism.exe /online /add-package /packagepath:C:\Windows\TEMP\IE910AB.tmp\ielangpack-CHS.CAB /quiet /norestart
01:38.140: INFO:    Process exit code 0×00000000 (0) [The operation completed successfully. ]

请注意其中红色的字段, 那段字段表明IE9-neutral.Downloaded.msu安装失败. 事实上, 这个MSU包含的是IE9的主体文件. 而且, 如果查看微软的知识库文章, 你只会发现这个KB982861只是一篇讲述IE9安装条件的文章. 另外, 网上流传的提取这个IE9-neutral.Downloaded.msu 安装包手动安装的方法在RTM版已经不行了. 至少我提取出来后, 还是一样的安装失败. 其实这个log文件里, 比较重要的是安装失败的原因, 就是所谓0×0000007B错误. 这个错误表明了安装文件名,路径或者卷标错误. 那么如何才能找到原因呢? 仔细回想, 我确实更改过文件的安装路径. 为了方便软件的安装, 我把 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersionProgramFilesDir相关的的值都更改到D盘了. 在仔细对比了另外的一台Win7 X64的注册表后, 我发现了一个非常不明显的不同. 在我的机器上, ProgramFilesDir值为”D:\Program Files (x86)\” 而原版的机器上为”C:\Program Files (x86) 事实上, 两相比较, 差别只是个”\. 但是, 如果说因为多了一个”\“, 造成可能的”\\“情况, 却又说不过去了. 毕竟别的软件安装都没有问题. 不知道这算不算微软在安装方面的小小失误. 更正了这个错误后, IE 9 就能正常安装了.

其实, 正常情况下, 你只要下载相应的IE 9 安装包, 直接安装就OK了. 但是由于各种原因, 例如网络等, 会导致安装失败. 因为IE 9 在安装是会先检查当前系统的补丁情况. 所以, 为了保险起见, 预先下载并安装IE 9的预更新补丁是个好的办法.  因为IE 9安装包里并不包含这些所谓的必须的更新. 不知道微软到底是如何考虑的, 难道现在已经到了不用考虑无网络接入的情况了吗? 当然, 大部分的国家和我们的情况不同. 那么, 不知微软会不会考虑只在CHS里集成这些更新呢?

Tags: ,,,.