(* ̄︶ ̄)y
遇到0xc190070b这个错误无数次,后来看到了这个帖子:Error 0xc190010b when installing Windows 8.1 Preview – Microsoft Community
根据这个帖子中的回答,遇到这个问题时需要:
- 安装所有挂起的windows update更新和商店更新
- 关闭杀毒软件和防火墙(个人猜想可能是现在很多杀软都用了内核钩子,和更新产生了冲突
- 重置商店缓存,运行WSReset.exe
完成这些操作后再商店更新那里按“再试一次”。和帖子中提到的一样,后来又遇到了各种奇怪错误号好多次,一直按“再试一次”就可以了。
期间我还遇到了0x80070002这个错误,这应该是商店缓存出问题了。可能是你在商店外手动修改了商店缓存导致的(类似yum db modified beyond yum)
重置商店缓存即可,如果还有问题,可以重命名%windir%\SoftwareDistribution文件夹
虽然微软说win8升级8.1是无痛升级,但实际上基本所有非微软兼容驱动都要重新安装一遍,包括网卡声卡独立显卡等厂商自己发布的驱动
最后,我用资源监视器(perfmon -res)跟踪了更新的过程,有兴趣的可以研究一下
- 首先商店下载了一个2G左右的更新包,是一个sdb格式的二进制文件
- 兼容性检查,相当于运行了“windows8升级助手”
- 在C分区下新建了$Windows.~BT文件夹作为临时目录,猜想是使用了符号链接来完成热更新
- driver repository 更新
- 从boot区拷贝了window re的wim镜像
- 更新winsxs下的文件,先释放到$Windows.~BT\work下,再作更新链接。如果安装了office、vs则更新相关文件
- 更新注册表
- work目录内容移动到store中,可能是最终产物?
- 收集重启需要的字体
完成这些后,系统提示需要重启,估计是进入了winre环境,然后替换了链接。
完成