web-dev-qa-db-ja.com

Windows 10のアップグレード:エラーなしで23%で停止し、Dismはboot.wimWIMイメージをマウントしません

Windows 8.1 Pro-> Windows 10ProのOSアップグレードを試みています。

問題

インストーラーは、約23%で失敗したことを除いてメッセージを表示せず、setuperr.logを開きます。これは最後に表示されます。最初の2行は、問題を示しているようです。

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\offset/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)

これは、OSのアップグレードで発生したエラーとまったく同じだと思います。

Falscherパラメータ無効なパラメータを意味します。

私がすでに修正しようとしたもの

  1. システムファイルを修復する

    sfc /scannow
    DISM.exe /Online /Cleanup-image /Scanhealth && DISM.exe /Online /Cleanup-image /Restorehealth
    
  2. WADK(Assessment and Deployment Kit)をインストールし、そこからdismを起動します

  3. C:\ドライブにたくさんの空き容量を作りました(200GB)

  4. 他の2つのWin8.1 Proシステム(ドイツ語版と英語版)で同じ構文とファイルを同じ位置にマウントします。

  5. 現在ドイツ語に設定されている日付/時刻の設定を確認し、英語も試しました(。と、交換)

エラーは同じままです。

イメージを再度マウントできるようにするために、dism/wimを修正するにはどうすればよいですか?

3
Andreas Reiff

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\offsetを手動で作成する必要があります。イメージを正常にマウントしたら、を介して手動で再度マウントを解除する必要があることに注意してください。

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)が、動作中のマウントケースで1回発生し、失敗したケースで2回発生したことに気付きました。失敗したアクションのスタックトレースを調べたところ、フィルタードライバーcbftlsfs4.sysに追加の呼び出しが1つあることがわかりました。

Stacktrace failing operation in Process Monitor

いくつかのグーグルで、このファイルがCloudfoggerに属していることが明らかになりました。 Cloudfoggerをアンインストールすると(Cloudfoggerでさまざまな問題が発生した後、しばらく前にviivoに移行したため、アンインストールは問題ありませんでした)、フィルタードライバーとマウントの問題の両方が削除されました。

その後、Windows10のアップグレードが機能しました。

おそらく、これとまったく同じ問題を抱えている人はほとんどいないでしょう。古いバージョンのCloudfoggerを使用している別のマシンでは、この問題は発生しませんでした。私にとっては、2日間の作業と調査でしたが、おそらくこれは他の誰かに役立つので、手順を非常に詳細に書き留めました。

3
Andreas Reiff

Dism.exeコマンドは、問題を修正する可能性があります。このスレッドを見てください:

DISM復元

ディスカッションの一環として、2つの.batファイルが投稿されています-それらの中にあるものを見て、自分で実行するか、直接使用してください。

ただし、他のユーザーは、修正不可能であり、Win 8.1をリロードする必要があると報告しています- こちらをご覧ください

彼らはマイクロソフトを非難します(それについてはよくわかりません)が、データをバックアップし、Windows 10を新しいコピーとしてインストールし、8.1ライセンスキーを使用してアクティブ化する方が時間がかからない場合があります

1
TomEus