Windows 10 升级:在 23% 处停止且无错误,Dism 未安装 boot.wim WIM 映像

Windows 10 升级:在 23% 处停止且无错误,Dism 未安装 boot.wim WIM 映像

我正在尝试将操作系统升级从 Windows 8.1 Pro -> Windows 10 Pro。

问题

安装程序除了说它在大约 23% 时失败之外没有给出任何消息,打开 setuperr.log,我最后得到了这个,前两行似乎指向了问题:

2016-07-22 13:23:14, Error                 SP     SPMountWIMCallback: Error mounting/unmouting C:\$WINDOWS.~BT\Sources\SafeOS\SafeOS.Mount\Windows\WinSxS\Temp\PendingDeletes\7a3a0cd544a0d101300100002017d421.CbsMsg.dll. GLE [87][gle=0x00000057]
2016-07-22 13:23:24, Error                 SP     CMountWIM::DoExecute: Failed to mount WIM file C:\$WINDOWS.~BT\Sources\SafeOS\winre.wim. Error 0x80070057[gle=0x00000057]
2016-07-22 13:23:24, Error                 SP     Operation failed: Mount WIM file C:\$WINDOWS.~BT\Sources\SafeOS\winre.wim, index 1 to C:\$WINDOWS.~BT\Sources\SafeOS\SafeOS.Mount. Error: 0x80070057[gle=0x000000b7]
2016-07-22 13:23:24, Error                 MOUPG  MoSetupPlatform: ExecuteCurrentOperations reported failure!
2016-07-22 13:23:24, Error                 MOUPG  MoSetupPlatform: Using action error code: [0x80070057]
2016-07-22 13:23:24, Error                 MOUPG  CDlpActionImageDeploy::ExecuteRoutine(329): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CDlpActionImpl<class CDlpErrorImpl<class CDlpObjectInternalImpl<class CUnknownImpl<class IMoSetupDlpAction> > > >::Execute(441): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CDlpTask::ExecuteAction(3243): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CDlpTask::ExecuteActions(3397): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CDlpTask::Execute(1631): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CSetupManager::ExecuteTask(2024): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CSetupManager::ExecuteTask(1987): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CSetupManager::ExecuteInstallMode(804): Result = 0x80070057
2016-07-22 13:23:25, Error                 MOUPG  CSetupManager::ExecuteDownlevelMode(389): Result = 0x80070057
2016-07-22 13:23:31, Error                 MOUPG  CSetupManager::Execute(232): Result = 0x80070057
2016-07-22 13:23:31, Error                 MOUPG  CSetupHost::Execute(371): Result = 0x80070057

特别是,好像无法安装 winre.wim 映像。我不知道源文件夹中的匹配文件名是什么,所以我尝试使用 273MB 的 boot.wim。

在我想要升级的计算机上安装此映像失败。DISM.exe /Mount-Image /ImageFile:c:\temp\boot.wim /Index:1 /MountDir:C:\Temp\offline /ReadOnly

错误报告与 SetFileSize 有关。有足够的可用空间,而且我检查了该文件的路径总共只有 128 个字符。

2016-07-22 19:52:19, Info                  DISM   DISM Provider Store: PID=9648 TID=3564 Provider has previously been initialized.  Returning the existing instance. - CDISMProviderStore::Internal_GetProvider
[9648] Caller did not request sparse mount
[9648] Mounting new image.
Wim:         [c:\temp\boot.wim]
Image Index: [1]
Mount Path:  [C:\Temp\o]
[9648] [0xc144012e] 
2016-07-22 19:52:21, Error                 DISM   DISM WIM Provider: PID=9648 [CreateDestinationFileEx:(5082) -> SetFileSize failed] C:\Temp\o\Windows\WinSxS\x86_microsoft-windows-b..d-bootfix.resources_31bf3856ad364e35_10.0.10586.0_de-de_7d99a6b16a9ee7bb\bootfix.bin (HRESULT=0x80070057) - CWimManager::WimProviderMsgLogCallback
[9648] [0x80070057] RestoreFileNodeList:(3490): Falscher Parameter.
[9648] [0xc144012e] 
2016-07-22 19:52:21, Error                 DISM   DISM WIM Provider: PID=9648 C:\Temp\o\Windows\WinSxS\x86_microsoft-windows-b..d-bootfix.resources_31bf3856ad364e35_10.0.10586.0_de-de_7d99a6b16a9ee7bb\bootfix.bin (HRESULT=0x80070057) - CWimManager::WimProviderMsgLogCallback
[9648] [0x80070057] RestoreFilesCallback:(5201): Falscher Parameter.
[9648] [0x80070057] EnumImageDataEntries:(1591): Falscher Parameter.
[9648] [0x80070057] RestoreAllData:(2551): Falscher Parameter.
[9648] [0x80070057] WIMApplyImageInternal:(1189): Falscher Parameter.
[9648] [0x80070057] ImageStubMountDirectory:(296): Falscher Parameter.
[9648] [0x80070057] WIMMountImageHandle:(1061): Falscher Parameter.
2016-07-22 19:52:23, Error                 DISM   DISM WIM Provider: PID=9648 TID=3564 Failed to mount the image. - CWimImageInfo::Mount(hr:0x80070057)

我认为这是我在操作系统升级时遇到的同一个错误。

法尔舍尔参数方法无效的参数

我已经尝试修复的问题

  1. 修复系统文件

    sfc /scannow
    DISM.exe /Online /Cleanup-image /Scanhealth && DISM.exe /Online /Cleanup-image /Restorehealth
    
  2. 安装 WADK(评估和部署工具包),然后从那里启动 dism

  3. 在 C:\ 驱动器上释放了大量可用空间 (200GB)

  4. 在另外 2 个 Win 8.1 Pro 系统上使用相同语法和文件在相同位置进行安装即可(德语和英语版本)。

  5. 检查日期/时间设置,当前设置为德语,我也尝试了英语(. 和 , 交换)

错误依旧。

我该如何修复 dism/wim 以便再次允许安装映像?

答案1

如果您设法完全安装 Windows 10,则安装程序将有 2 次以百分比形式计数。

第一次计数时,在重新启动之前,它会复制必要的安装文件,大约 23% 时,它会使用 dism/wim 安装映像。

查看安装日志文件,我发现图像安装存在问题。

2016-07-22 13:23:24, Error                 SP     CMountWIM::DoExecute: Failed to mount WIM file C:\$WINDOWS.~BT\Sources\SafeOS\winre.wim. Error 0x80070057[gle=0x00000057]

在我的例子中,映像安装机制已损坏,我通过将 Windows_10_pro_de_Upgrade.exctracted.iso\sources\boot.wim 从安装源文件夹复制到 C:\temp,然后执行来验证

DISM.exe /Mount-Image /ImageFile:c:\temp\boot.wim /Index:1 /MountDir:C:\Temp\offline /ReadOnly

尝试安装该映像,但失败,错误代码为 87。(必须手动创建文件夹 C:\Temp\offline。请注意,成功安装映像后,应通过以下方式再次手动卸载它

dism /unmount-Wim /MountDir:c:\temp\offline /discard

然后,我可以将故障机器上的行为与我拥有的 Win 8.1 Pro VM 进行比较,后者的安装工作正常。查看日志文件后,我注意到文件存在问题

Windows\WinSxS\x86_microsoft-windows-b..d-bootfix.resources_31bf3856ad364e35_10.0.10586.0_de-de_7d99a6b16a9ee7bb\bootfix.bin

使用Sysinternal 的进程监视器我可以记录 dism.exe 的操作并将其与所需的操作进行比较。我注意到,在正常工作的安装情况下,失败的操作 (SetFileSize) 发生了一次,而在失败的安装情况下,发生了两次。我查看了失败操作的堆栈跟踪,发现在过滤器驱动程序 cbftlsfs4.sys 中还有一个额外的调用。

进程监视器中的堆栈跟踪失败操作

谷歌搜索显示该文件属于 Cloudfogger。卸载 Cloudfogger(我之前在遇到 Cloudfogger 的各种问题后转到了 viivo,因此卸载没有问题)可以解决过滤器驱动程序和安装问题。

之后 Windows 10 升级成功。

可能很少有人遇到同样的问题。在另一台使用旧版 Cloudfogger 的机器上,我没有遇到这个问题。对我来说,这是两天的工作和调查,也许这对其他人有帮助,所以我详细地写下了我的步骤。

答案2

dism.exe 命令有可能修复此问题。请查看此线程:

DISM 还原

作为讨论的一部分,发布了 2 个 .bat 文件 - 查看其中的内容并自行运行或直接使用它们。

然而其他用户报告说这个问题无法修复,他们不得不重新加载 Win 8.1 -看这里

他们指责微软(对此不确定),但备份数据并安装 Windows 10 作为全新副本并使用 8.1 许可证密钥激活可能会节省时间

相关内容