前阵子说过了,家用主力机 ThinkPad X230T 上的系统 Windows 10,在各种机缘之下,“忽忽悠悠就瘸了”。费了好大的劲,总算是让它能启动起来,这段时间,也就这么一直瘸着。
当时急切之下,把桌面上的图标点了点,发现 Adobe 的 PDF 软件和微软自家的系统自带浏览器 Edge 都罢工了,后续使用中,Adobe 系的,都到控制面板的“程序和功能”里面修复了一遍,重新焕发生机,但 Edge 则无论如何也没能缓过来。
再往后,才逐步发现损失超出预期。系统的“设置”,几乎全残,打开时有时能显示各个功能图标,有时候连图标也不能显示;即使可以显示,图标也不会响应任何点击选取事件。这意味着,修改系统设置必须要退回到经由控制面板。默认浏览器被强行设置/回落到了 Edge 上,但 Edge 却无法打开,在其他软件里的所以要调起浏览器导向某页面的操作,现在均会以一个错误提示告终;进一步地,由于设置功能不可用,还无法把默认浏览器切换到 Chrome 或者 Firefox 上。
为了解决浏览器问题,曾试图借助“启用或关闭 Windows 功能”,非常遗憾地看到,里面的组件树又是一片空白。这个窗口出现空白的话,经常标志着系统的组件体系收到了比较严重的伤害。于是尝试使用 dism.exe /Online /Cleanup-image /Restorehealth 命令来修复,失败(步骤参见微软文档)。
在此期间发现,Edge 不能启动的原因是其可执行文件竟然是一个受损的非法文件,根据系统的版本号,最后安装的更新的 KB 号,以及 Edge 相关的文件的版本号等综合判断,可以基本排除此系统损毁是由于 X200 的系统盘乱入导致,极有可能是 Windows 10 的更新出了问题。
强行手动安装新的补丁包,被提示告知已无需安装。既然如此,不妨来点狠的。用 Windows 10 的媒体创建工具烧录了 1903 版本的安装 U 盘,令人心碎的是,离线升级竟然也失败了,报一个什么 SAFE_OS 阶段的语焉不详的错误。与此同时雪上加霜,发现 Office 2016 不能再使用,也无法修复,卸载倒是成功了,可再次安装立刻遇阻。
结合之前和 Windows 搏斗的一些经验,最终症结应该是落在了 CBS 上(这个东东全名叫 Component Based Servicing),应该是它的信息库受到了毁灭性打击。它的相关信息应该位于注册表键值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\ 之下,现在打开一看是白茫茫一片大地真干净的状态,一个键值也无。
下一步琢磨琢磨怎么修复这个,印象中上一次与其搏斗是惨败告终的。
附录
1. 执行 dism.exe /Online /Cleanup-image /Restorehealth 的输出结果是,进展中止于 10.2%,错误 605,指定的缓冲区中包含类型错误的数据。提示可以参看日志 C:\WINDOWS\Logs\DISM\dism.log。再该文件中可以看到
1 2 3 4 5 6 |
16:21:02, Error DISM DISM Package Manager: PID=10624 TID=14796 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x8007025d) 16:21:02, Error DISM DISM Package Manager: PID=10624 TID=14796 Failed processing package changes with session option CbsSessionOptionRepairStoreCorruption - CDISMPackageManager::RestoreHealth(hr:0x8007025d) 16:21:02, Error DISM DISM Package Manager: PID=10624 TID=14796 Failed to restore the image health. - CPackageManagerCLIHandler::ProcessCmdLine_CleanupImage(hr:0x8007025d) 16:21:02, Error DISM DISM Package Manager: PID=10624 TID=14796 Failed while processing command cleanup-image. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x8007025d) 16:21:02, Info DISM DISM Package Manager: PID=10624 TID=14796 Further logs for online package and feature related operations can be found at %WINDIR%\logs\CBS\cbs.log - CPackageManagerCLIHandler::ExecuteCmdLine 16:21:02, Error DISM DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=8007025D |
显然,最终还是要到 CBS 里。