我最终决定将我的桌面从 Windows Vista SP2 64 位更新到 Windows 7 64 位。因此,我取出 Windows 7 Professional 64 位 DVD,将其放入 PC,然后启动安装程序并告诉它进行升级。
安装程序告诉我有些东西可能与升级不兼容,所以我取消了安装并运行了升级顾问。我卸载了程序并删除了它说不兼容的驱动程序。
升级到了最后一步(恢复设置);它已经升级到了 92%,但我不想再看它了,所以我离开了房间。当我回来时,它已经重新启动回到 Vista,并显示一条消息“抱歉,升级失败”。
我搜索了一下,发现有人卸载了 Wireshark 和 ATI 驱动程序等后,问题就解决了。卸载后,我又试了一次,结果还是回滚了。
我查看了日志,特别是C:\$WINDOWS.~BT\Sources\Panther\setupapi\setupapi.app.log
,发现了以下行。(每次我尝试升级设备时,此行都不同。这是最新的日志条目,我没有保存较旧的日志条目。)
! cci: !NCI: Op=BIND, Layer=NDIS, Upper=Tcpip6 Lower=\Device\{9A2D9804-A610-4D0B-8B8B-392406EE148F}, Error=00000019
我认为这是我的网络设备的问题,所以我卸载了除以太网端口和 WAN 微型端口之外的所有内容(从设备管理器中)(我无法删除它们,当我从设备管理器中卸载它们时,什么也没有发生)。我还在网卡的属性页中取消选中了 IPv6。
这仍然没有帮助,在我尝试升级后它仍然回滚。
我知道我可以(读作:应该)进行全新安装,但我想让此升级工作。有人知道如何让此升级工作吗?我已卸载显卡 (ATI) 驱动程序、拔下所有 USB 设备、卸载所有网络设备(以太网端口和 WAN 微型端口除外),卸载 Windows 升级顾问要求我卸载的所有程序。什么可能导致 Windows 无法升级并回滚到 Vista?
PS 刚才我找到了所有 Windows 7 升级日志文件的列表:http://support.microsoft.com/kb/927521。
PPS 这是我的副本C:\$WINDOWS.~BT\sources\Rollback\setuperr.log
(奇怪的是它不在微软的日志文件列表中):http://pastebin.com/X03Azd5U。
编辑:我看了一下C:\$WINDOWS.~BT\Sources\Panther\setuperr.log
,发现了这一点:
2011-10-03 22:19:03, Error [0x080a97] MIG HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Drivers32 [msacm.l3codecp] is not a valid registry value[gle=0x00000002]
2011-10-03 22:19:25, Error [0x0808fe] MIG Plugin {e0cbf06c-cd8b-4647-bb8a-263b43f0f974}: BthMig: Failed to migrate bthport keys, bailing out
通过谷歌搜索发现一些微软论坛上的这个帖子,也许会有帮助(见第 2 页)。我将尝试设置MIG_UPGRADE_IGNORE_PLUGINS
为bthmigplugin.dll
,看看会发生什么。
编辑2C:\$WINDOWS.~BT\Sources\Panther\setuperr.log
:这是(运行升级并将其MIG_UPGRADE_IGNORE_PLUGINS
设置为之后bthmigplugin.dll
)的全部内容:http://pastebin.com/ydKFRSL6
2011-10-04 23:24:18, Error Failed to find driver file path. Error=00000002x[gle=0x80092004]
编辑3:我找到了另一个SU 螺纹:并按照提示安装了 WinDBG。我没有C:\$WINDOWS.~BT\Sources\setupmem.dmp
,但我有C:\$WINDOWS.~BT\Sources\Panther\setupmem.dmp
。我在 WinDBG 中打开它,它显示(完整输出:http://pastebin.com/3476mx1m):
WINLOGON_FATAL_ERROR (c000021a)
The Winlogon process terminated unexpectedly.
Arguments:
Arg1: fffff8a001f916c0, String that identifies the problem.
Arg2: 0000000000000001, Error Code.
Arg3: ffffffffc0000001
Arg4: 0000000000110bd8
编辑4:我也在微软论坛上发布了此内容:关联。
现在我们可能已经取得一些进展了!
编辑5:我查看了C:\$WINDOWS.~BT\Sources\Panther\setupact.log
,这是一个 136 MB 的日志文件,我发现了一些实际上有用。
2011-10-10 21:20:34, Info [NdisCompl: Enter HrGetComponentID]
2011-10-10 21:20:34, Info ComponentID=ms_netbt_smb
2011-10-10 21:20:34, Info [NdisCompl: Exit HrGetComponentID]
2011-10-10 21:20:34, Info [NdisCompl: Enter HrGetComponentDriverFilePath]
2011-10-10 21:20:34, Error Failed to find driver file path. Error=00000002x[gle=0x80092004]
2011-10-10 21:20:34, Info [NdisCompl: Exit HrGetComponentDriverFilePath]
2011-10-10 21:20:35, Info [NdisCompl: Enter HrGetComponentID]
2011-10-10 21:20:35, Info ComponentID=ms_rasman
2011-10-10 21:20:35, Info [NdisCompl: Exit HrGetComponentID]
2011-10-10 21:20:35, Info [NdisCompl: Enter HrGetComponentDriverFilePath]
2011-10-10 21:20:35, Info ServiceName = RasMan
2011-10-10 21:20:35, Info FilePathLen = 56
2011-10-10 21:20:35, Info FilePath = C:\Windows\%SystemRoot%\system32\svchost.exe -k netsvcs
2011-10-10 21:20:35, Info Service Binary C:\Windows\%SystemRoot%\system32\svchost.exe -k netsvcs, is not a driver file
2011-10-10 21:20:35, Error Failed to find driver file path. Error=ffffffffx[gle=0x00000003]
2011-10-10 21:20:35, Info [NdisCompl: Exit HrGetComponentDriverFilePath]
我尝试做netcfg -e -u ms_netbt_smb
和netcfg -e -u ms_rasman
,但什么也没发生。
C:\Users\NTICompass>netcfg -e -u ms_netbt_smb
Trying to uninstall ms_netbt_smb ...
...done.
C:\Users\NTICompass>netcfg -e -u ms_netbt_smb
Trying to uninstall ms_netbt_smb ...
...done.
C:\Users\NTICompass>
它似乎不想卸载。 如何卸载ms_netbt_smb
并ms_rasman
?
编辑6:我通过查看注册表并删除引用它们的项来删除它们。现在我的ms_netbt_smb
是空白的,我仍然收到错误。我把它作为一个单独的问题问了:ms_rasman
setuperr.log
cci: !NCI: Op=BIND, Layer=NDIS, Upper=Tcpip6
升级至 Windows 7 后退回至 Vista,因为这个变得有点长而且混乱。
答案1
Vista 和 Windows 7 之间的差异相当小,使用相同的驱动程序架构,因此升级/降级应该可以完成。
当然,有时会发生这种情况,如果不全新安装就无法升级您的计算机,但也可能是企业版到专业版的转换导致了问题。
从企业版降级到专业版不受官方支持,但可以通过注册表黑客实现,就像您所做的那样。
但是,由于您使用的是 64 位版本,因此更改必须在两个注册表项:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\
HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion
。
由于 64 位 Windows 实际上是 32 位和 64 位代码的混合,因此问题可能是因为只有 64 位可以更新,因为您没有破解 32 位的注册表项。
更多信息请参阅文章将 Windows 7 Enterprise 降级(升级)为 Ultimate、Professional 或 Home Premium,其中还提出了Windows 7 降级工具去做这项工作。
如果可能的话,我建议您尝试将 Vista 恢复到您开始黑客攻击之前的时间,然后使用 Downgrader 工具,干净地重新启动,检查上述注册表项,如果一切正常,请再次尝试升级。
即使无法恢复注册表,也请先尝试降级工具,然后再尝试再次升级。
答案2
运行 Windows 7 升级顾问,查看它是否标记任何软件或驱动程序,在升级之前删除建议的内容。
http://windows.microsoft.com/upgradeadvisor
编辑:
以下是 21a 错误的原因
安装了不匹配的系统文件。
服务包安装失败。
用于恢复硬盘的备份程序未能正确恢复可能已使用的文件。
安装了不兼容的第三方程序。
来源(不适用于 Vista 或 W7,但可能有助于诊断)
。
答案3
从 Vista 升级到 Windows 7 就像从 Windows ME 升级到 Windows XP 一样。这是有可能的,而且 1/100 的人可能会有运气,但这仍然不是一个好主意。我想说,备份您的数据,格式化并重新安装。
经过编辑以使 Ramhound 满意。
已编辑:当计算机上安装了第三方驱动程序 Sptd.sys 时,也可能会发生回滚。此驱动程序随 Daemon Tools 和 Alcohol 120% 等多个应用程序一起分发。在将计算机升级到 Windows 7 之前,您可以暂时卸载可能包含此驱动程序的第三方 CD/DVD 创作或虚拟化软件。