在 Hyper-V 中运行的 Windows Server 2016 出现故障并且似乎已损坏(在撰写本文时,我能够启动它并且某些服务可用,但它在蓝色背景上显示旋转的圆圈,没有文字,并且不允许 RDP/桌面访问)。
由于这是一台虚拟服务器,因此我能够安装该服务器的 VHDX 来尝试修复。我运行CHKDSK
修复了所有 NTFS 级别的问题,然后继续尝试使用修复操作系统本身DISM
。
唉,DISM
失败了,因为它缺少所需的源。我尝试的确切命令是dism /image:f:\ /cleanup-image /restorehealth
,从那时起,我尝试向/source
其中添加不同的值。我尝试使用官方 Windows Server 2016 安装 ISO(/source:wim:g:\sources\install.wim:2
),我尝试通过提供我们网络中其他 Windows Server 2016 安装的路径(\\other-windows-server\c$\Windows
和相同Windows\WinSxS
)来尝试,并且我尝试从 MS(订阅)下载许多不同的安装 ISO my.visualstudio.com
。在所有这些情况下都DISM
失败并出现以下错误:
Error: 0x800f081f
The source files could not be found.
查看该DISM.log
文件似乎缺少相同的文件:
=================================
Checking System Update Readiness.
(p) CSI Payload Corrupt amd64_microsoft-windows-shell32_31bf3856ad364e35_10.0.14393.1794_none_e1adcedb6cb8eae3\apps.inf
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt amd64_microsoft-windows-apisetschema-server_31bf3856ad364e35_10.0.14393.1715_none_61379ad2ce2e3654\apisetschema.dll
Repair failed: Missing replacement payload.
(p) CSI Payload Corrupt amd64_microsoft-windows-pnpsysprep_31bf3856ad364e35_10.0.14393.479_none_7b790dc55511835d\sppnp.dll
Repair failed: Missing replacement payload.
知道从哪里可以找到这些丢失的文件以及如何正常DISM
运行并修复损坏的安装吗?
答案1
值得一试。Dism restorehealth 故障最终通过识别与 winsxs 文件夹中丢失的文件相关的 KB 来解决。如果您有另一台具有相同版本的 VM,您可以找到这些损坏的文件并将其复制到损坏的服务器中,然后重新运行 dism 命令以恢复健康。
答案2
我最终在另一台 Windows Server 2016 VM 上的文件夹中的 DISM.log 中找到了确切的文件夹列表WinSxS
。这使得 DISM 操作能够正确完成。
唉,服务器仍然很乱,但现在这是另一个问题了……