How to resolve “Access is denied” when install Windows XP Service Pack 3

多次尝试,总算把自己的Windows XP SP2升级到了SP3,在升级过程中碰到了“Access is denied”报错,每次尝试都是升级到一半报错,之后Windows又会回滚所有的改动,然后再重启机器,简直是噩梦一般的体验。

如果在升级Windows XP Service Pack 3的过程中你也碰到了同样的报错,首先要确认是不是错在注册表更新这一步上,检查SP3的升级log,在Windows的安装目录下可以找到svcpack.log这个文件,查看最后的报错信息,如果找到诸如“DoRegistryUpdates failed”这样的报错,那么恭喜你,你通过下面的方法可以解决问题了。

1723.172: DoRegistryUpdates:UpdSpInstallFromInfSection Failed for ProductInstall.GlobalRegistryChanges.Install error: 0x5
1723.172: INF_REGISTRY Failed
1723.172: DoInstallation:DoRegistryUpdates failed
1728.625: Unregistration of sprecovr successful
1729.047: Access is denied.
1884.422: Message displayed to the user: Access is denied.

在微软官方站点上的技术文章949377中提到了这个问题,但是提供了三种解决方法。

方法一:下载完全版的Windows XP Service Pack 3安装程序,一个有316 MB的庞然大物,然而该方法无效。
方法二:重启机器,禁用所有的杀毒软件和防间谍软件,再次重新安装SP3,此方法也同样无效。
方法三:重设注册表和文件权限,重新安装SP3,有效!

方法三比较复杂,简单描述一下。

1. 首先要下载Subinacl.exe程序,该程序用来修改注册表权限设置。

2. 打开记事本,将以下代码copy进去,然后将新文件保存为Reset.cmd。

cd /d “%ProgramFiles%\Windows Resource Kits\Tools”
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f
subinacl /subdirectories %SystemDrive% /grant=administrators=f /grant=system=f
subinacl /subdirectories %windir%\*.* /grant=administrators=f /grant=system=f
secedit /configure /cfg %windir%\repair\secsetup.inf /db secsetup.sdb /verbose

3. 备份注册表,可以参看技术文章322756.

4. 双击之前保存的Reset.cmd,将会运行大概10-20分钟的时间,如果没有任何报错,command窗口将在运行结束完之后自动关闭。

5. 重新安装Windows XP Service Pack 3

How to resolve “VCSIPC for Oracle: Minor version mismatch”

如果基于Veritas SF V4.1 MP2来安装Oracle 9.2.0.6 RAC for Solaris,不能完全按照Veritas官方文档“VERITAS Storage FoundationTM 4.1 for OracleRAC Installation and Configuration Guide”中提到的更新VCSIPC library的方法。

在文档中提到:

For a 32-bit version:
cp /opt/VRTSvcs/rac/lib/libskgxp92_32.soORACLE_HOME/lib/libskgxp9.so

For 64-bit version:
cp /opt/VRTSvcs/rac/lib/libskgxp92_64.soORACLE_HOME/lib/libskgxp9.so

但是实际上如果这样做的话,可能会在启动数据库以后在/var/adm/messages收到如下的警告信息,该警告信息会重复打印到终端窗口,比较烦人。

Jun 14 02:51:27 xxdb-server2 oracle[23169]: [ID 939233 user.alert] VCSIPC for Oracle: Minor version mismatch: oracle 4, ipc library 2,
Jun 14 02:51:27 xxdb-server2 VERITAS IPC 4.1MP2 05:35:21 Nov 21 2006

解决方法是使用版本号为9207的库文件:
$ cp /opt/VRTSvcs/rac/lib/libskgxp9207_64.so $ORACLE_HOME/lib/libskgxp9.so

那么如何判断到底是应该按照文档中所说cp libskgxp92_64.so还是应该cp libskgxp9207_64.so,则需要通过下面的命令来验证。

# /opt/VRTSvcs/rac/bin/ipc_version_chk_shared_64 $ORACLE_HOME/lib/libskgxpu.so
Required library version is: 22

如果命令返回结果需要的库版本是22或者24,那么则需要使用9207版本的库文件。

Firefox 2008下载日

创造吉尼斯世界记录。体验更好的互联网。听上去很不错吧!您只需要在下载日下载Firefox 3就可以──就是这么简单。我们不会要求您表演杂技或者在脸上放30把勺子,没有那么困难,不过倒也是非常有趣的事情。

Firefox3

如果您支持Firefox,请点击上面可爱的小狐狸。

Firefox3能成为世界上首个24小时内下载次数最多的软件么?,让我们拭目以待吧!

至少,可以第一时间知道FF3的发布日期。