移动 ProgramData 文件夹后导致 Windows10 更新失败

Windows 10 的 2018 春季更新终于提发布了。然后我想起来这个月有一个无限安装失败的4月补丁 KB4093112 ,错误代码提示 0x80070011 。这个错误的名称是 ERROR_NOT_SAME_DEVICE ,也算是一个上古时代就有的一个错误。

原因很简单,对系统的 Program Files 目录以及 ProgramData 目录进行了移动之后就会发生这种错误。根据微软的解释[1],自从 Windows Vista 之后,微软在各个系统文件夹中使用了硬链接,如果移动了这些文件夹的盘符,原来的硬链接自然会失效,导致安装更新的时候出现问题。

我只移动了 ProgramData 这个文件夹,于是我直接删掉了 C 盘中的软链接,然后把 Microsoft 开头的文件复制回了 C 盘。事实证明还是会出错,估计要把注册表中修改过的路径给改回 C 盘才行。

不过我懒,直接下载了 Windows 10 易升。提示1803更新之后就让它自己装了。安装过程一切顺利,还自动帮我把 D 盘中的 ProgramData 全部内容移动回了 C 盘。看了看现在硬盘空间也不是这么的紧凑,也就不用忙着转移到 D 盘了。等什么时候完全没空间了再去处理吧。来自 120G SSD 的怨念

话说回来,上个月初还在使用 Insider Preview 的,但由于某些更新经常会有 BUG ,在换 CPU 和主板的时候就顺便重装回了正式版。1803的界面变化就不算什么新奇的了。这次更新比较有用的一个新功能就是:可以自由切换应用所使用的显卡了[2]

这个功能吧,对笔记本用户肯定是不陌生的,N 卡和 A 卡的控制面板都有相应的设置。但对于保持核显开启的台式机来说,终于可以像笔记本一样方便切换软件所使用的显卡了。

具体位置,就在分辨率设置的页面下面有。由于我的独显还是上个世纪的 HD6850 ,驱动已经不在 AMD 的支持范围之内,最新的驱动版本已经是2015年的产物。所以在解码视频方面肯定会有兼容性的问题。如果用 DX11 的 DXVA 是可以选择核显硬解的,但并不是所有软件都支持。比如 Google Chrome ,在开启了视频硬解之后很多60fps的视频奇卡无比,只有用 CPU 软解才能流畅播放。在这次系统更新之后,我就直接把 Google Chrome 分配给了核显,硬解某些测试视频的时候也可以完美播放了,Video Decode 项目占用仅 40% 左右。

当然,这个功能不算很完美。在 OpenGL 的应用上基本不受控制, DX9 支持也有些问题,在我电脑上便出现了蜜汁撕裂。不过大部分游戏类我也并没有在核显上运行的打算,所以问题不大。

PS:有没有人能推荐一个方便添加 External Links 的方法呢?目前我纯靠手打,也太复杂了一点。

 

Update:发现微软把音频设备的面板也整合到了设置 App 里面了,点开一看,这不就是我前几天才说 AudioRouter 所要实现的功能吗?微软终于内置了给软件指定任意音频设备的功能,太棒了。

New Audio Setting Panel

New Audio Setting Panel

当然,AudioRouter 还有另一个功能并没有被微软添加到面板,那就是可以一个软件同时输出在多个音频设备上,这就有保留 AudioRouter 的意义了。

Screenshot of AudioRouter

Screenshot of AudioRouter

 


外部链接:

[1]Error: ERROR_NOT_SAME_DEVICE(0x80070011)

[2]WINDOWS 10 APRIL 2018 UPDATE (VERSION 1803): 10 BEST NEW FEATURES