Skyrim起動しない…起動時に固まる…Updateでエラー:DISMに挑戦【Windows 10 20H2】

PC
スポンサーリンク
スポンサーリンク

はじめに

Windows Updateで0x800f0900、0x8024200Bのエラーが出てしまい、Windows起動時に固まる、ブルースクリーンという現象まで発生したため、まずはWindows Updateのエラーの解消を目指したのですが、ドハマリしてしまいました。

今回はDISMコマンドを使ってWindowsを修復する方法にチャレンジしています。

大半の場合、後述の「やったこと(その1)WIMファイル(esdファイル)からの復旧」で解消するのだと思いますが、私の環境では”エラー: 0x800f081f ソース ファイルが見つかりませんでした。”が発生しました。

それでは、と「やったこと(その2)”ソースファイルが見つかりませんでした”と出た時の対処法」をやってみたのですが、それでも”エラー: 0x800f081f ソース ファイルが見つかりませんでした。”となってしまいました。

たぶん、普通の環境では上記のいずれかの方法でうまくいくのだと思いますが、私の環境だとエラーとなる理由を「(考察)なぜDISMで”ソースファイルが見つかりませんでした”になるの?」で私なりに考えてみました。

最終的には「結局どうしたか?Windows Update 情報クリアで応急処置」でWindows起動時にエラーで固まる現象は回避しました。が、根本的な解決には至っていません。

今回の現象の解決方法はもう少し考えるとして、今回覚えたことは今後Windowsに不具合が発生した際には使えるかな、と思っています。

きっかけはクリアインストール後の環境再構築

CPUをFX8350に変更したらなぜか交換前のPhenomIIより遅くなってしまったのでWindows10をクリアインストールしました。

クリアインストール後はFX8350の性能が出てホッとしたのですが、その後の環境再構築の際にどうも不安定な現象が発生しだしました。

発生した現象

Skyrimが起動しない

Skyrimランチャーで「PLAY」を選択すると、ランチャーが落ちてしまいました。

Skyrimランチャー

エクスプローラーで”SkyrimSELauncher.exe”(※)を右クリックし、「管理者として実行」を選択してランチャーを起動してみます。
※Cドライブ直下にインストールしている場合のパスはC:\Steam\steamapps\common\Skyrim Special Edition\SkyrimSELauncher.exe

ランチャー起動後、「PLAY」を選択すると、以下のエラーが出ました。

d3dx9_42.dll エラー状態 0xc000012f

d3dx9_42.dllはゲームで利用しているDirectX9のdllです。”0xc000012f”はWindows Updateがファイルを読み込めなかった時に出るエラーのようです。

DirectX12を使ったRise of the Tomb Raiderも3DMarkも動作します。DirectXが単純に壊れた、というわけではなく、古いゲームを司るDirectX9部分が壊れたようです。

Windows Updateでエラー 0x800f0900

スタートメニューを右クリックし「設定」-「更新とセキュリティ」-「Windows Update」を見てみます。

Windows Update エラー 0x800f0900

「再試行」を選択してみましたが、やっぱり同じエラーになります。

スタートメニューを右クリックし「イベントビューアー」を見てみます。

WindowsUpdateで0x800f0900エラーの他に0x8024200Bというエラーも出ています。

イベント 20 WindowsUpdateClient

インストールの失敗: エラー 0x800F0900 で次の更新プログラムのインストールに失敗しました: 2021-01 x64 ベース システム用 Windows 10 Version 20H2 の累積更新プログラム (KB4598242)。

イベント 20 WindowsUpdateClient

インストールの失敗: エラー 0x8024200B で次の更新プログラムのインストールに失敗しました: 2021-01 .NET Framework 3.5 および 4.8 の累積的な更新プログラム (x64 向け Windows 10, version 20H2 用) (KB4586876)。

Windows Update エラー0x8024200B

Windowsが起動しない

Windows起動時にWindows Updateの処理を失敗することが関係あるのかもしれませんが、Windowsが起動しない(固まる、アクセスランプ点きっぱなし)ということが頻繁に発生しました。

リセットボタンで強制的に再起動すればたいていは起動するのですが、再起動してもまた固まる時もあります。イベントビューアーにはKP41がたくさん出ていました。

イベントID 41 Kernel-Power

ブルースクリーンは発生していないので、固まった時に無理やりリセットした事で発生するKP41なのだと思います。

他にもイベントID2という見慣れないエラーも出ています。

イベント 2 Kernel-EventTracing

次のエラーのため、セッション “Cloud Files Diagnostic Event Listener” を開始できませんでした: 0xC0000022

イベントID 2 次のエラーのため、セッション “Cloud Files Diagnostic Event Listener” を開始できませんでした: 0xC0000022

とうとうブルースクリーン発生

それはSteamからRise of the Tomb Raiderをダウンロードしていた時に発生しました。いきなりのブルースクリーン。

久しぶりに見たけど、何度見ても慣れることはありませんね。

ブルースクリーンはその一度だけですが、不安定な状況であることは間違いありません。

Windows Updateもできない状態です。何とかしなければなりません。

やったこと(その1)WIMファイル(esdファイル)からの復旧

Windwos Updateで失敗し、ファイルが壊れている可能性が高いので、何とかWindows Updateを正常な状態にしたいと考えました。0x800F0900で検索したところ、参考になりそうなサイトがあったので試してみました。

Windows Updateのエラー0x800f0900を解決
今回はWindows Updateがエラー0x800f0900となっていた状況を解決したことを紹介します。なかなか解決できなかったのですが、DISMというコマンドにWIMファイルを指定することで私の場合は回復することができました。同じ問題にはまっている方は試してみてください。

DISMコマンドのエラー0x800f081f

このサイトに倣い「Windows Power Shell (管理者)」で以下のコマンドを叩いてみました。

DISM.exe /Online /Cleanup-image /Restorehealth

るとエラーコード”0x800f081f”が発生しました。同じ状況ですね。このサイトの対処方法で解決できるかもしれません。

WIMファイルの作成

Windows10インストールメディアを作成し、”install.esd”をC:\tempにコピーし、Power Shell (管理者)で以下のコマンドを実行します。(”cd c:\temp”でカレントディレクトリーを移動しておいてください)ちなみに私はWindows10Proを使っているので”SourceIndex:3″としています。

PS C:\temp> dism /export-image /SourceImageFile:install.esd /SourceIndex:3 /DestinationImageFile:install.wim /Compress:max /CheckIntegrity

(実行結果)エラー:605

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572
イメージをエクスポートしています
[========== 18.0% ]
エラー: 605
指定したバッファーに誤った形式のデータが含まれています。
DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります
PS C:\Temp>

あらら。途中18.0%で”エラー:605″となってしまいました。

この原因が分からず徹夜してしまいましたが、Windowsが起動しない時に何度もリセットで強制再起動していたのでディスクが不整合を起こしていたのだと思います。

“CHKDSK c: /f”を行い、念のためUSBにWindowsインストールメディアを作り直し”install.esd”を取得し直し実行したところ、すんなり完了しました。

(実行結果)正常に完了

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572
イメージをエクスポートしています
[==========================100.0%==========================]
操作は正常に完了しました。
PS C:\temp>

C:\tempに”install.wim”ができました。”install.esd”よりファイルサイズは大きくなっています。

DISMコマンドでシステムファイルを修復する

続いて「Windows Power Shell (管理者)」で以下を実行します。

DISM /Online /Cleanup-Image /StartComponentCleanup

正常に完了しました。次に以下を実行します。

DISM /Online  /Cleanup-Image /AnalyzeComponentStore

次です。私はWindows10Proを使っているので、”install.wim:3″にしています。Homeなら”install.wim:1″ですね。

DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:C:\temp\install.wim:3 /LimitAccess

(実行結果)エラー: 0x800f081f

PS C:\temp> DISM /Online /Cleanup-Image /RestoreHealth /source:WIM:C:\temp\install.wim:3 /LimitAccess
展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572
イメージのバージョン: 10.0.19042.631
[===========================84.9%================= ]
[==========================100.0%==========================]
エラー: 0x800f081f
ソース ファイルが見つかりませんでした。
機能の復元に必要なファイルの場所を指定するには、"Source" オプションを使用してください。ソースの場所の指定方法の詳細につ いては、https://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。
DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります

がっがり…。”0x800f081f”発生です。

やったこと(その2)“ソースファイルが見つかりませんでした”と出た時の対処法

“0x800f081f”がどうしても発生してしまうので、何か方法は無いものかと探していたところ、次のサイトが見つかりました。

dism /online /cleanup-image /restorehealth で「ソースファイルが見つかりませんでした」と出て修復できないときの対処法
まず下記リンクからWindows10メディア作成ツールをダウンロード/実行し、を選択、USBメモリに展開します。

“0x800f081f”「ソース ファイルが見つかりませんでした。」が出た時の対象法です。期待できそうです。

まず、”install.esd”をHドライブ直下に置き、Hドライブに”mount”というフォルダを作成し、以下を実行しました。

DISM.exe /Apply-Image /ImageFile:H:\install.esd /index:3 /Applydir:H:\mount

(実行結果)正常

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572
イメージを適用しています
[==========================100.0%==========================]
操作は正常に完了しました。
PS C:\WINDOWS\system32>

次です。

Dism /Online /Cleanup-Image /CheckHealth

(実行結果)正常

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572
イメージのバージョン: 10.0.19042.631
コンポーネント ストアは修復できます。
操作は正常に完了しました。

正常に完了しました。次です。

Dism /Online /Cleanup-Image /RestoreHealth /Source:H:\mount\windows /LimitAccess

(実行結果)エラー: 0x800f081f

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572
イメージのバージョン: 10.0.19042.631
[===========================84.9%================= ]
[==========================100.0%==========================]
エラー: 0x800f081f
ソース ファイルが見つかりませんでした。
機能の復元に必要なファイルの場所を指定するには、"Source" オプションを使用してください。ソースの場所の指定方法の詳細につ いては、https://go.microsoft.com/fwlink/?LinkId=243077 を参照してください。
DISM ログ ファイルは C:\WINDOWS\Logs\DISM\dism.log にあります
PS C:\WINDOWS\system32>

やっぱりエラーです。どうしても「ソース ファイルが見つかりませんでした」になってしまいます。H:\mount\windowsにソースファイルはちゃんとあるのに…。なんで?

ダメだと思いつつも残りの手順を続けてみました。

PS C:\WINDOWS\system32> DISM.exe /Cleanup-Wim

(実行結果)正常

展開イメージのサービスと管理ツール
バージョン: 10.0.19041.572

ドライブ C で古いファイルをスキャンしています
ドライブ D で古いファイルをスキャンしています
ドライブ E で古いファイルをスキャンしています
ドライブ F で古いファイルをスキャンしています
ドライブ G で古いファイルをスキャンしています
ドライブ H で古いファイルをスキャンしています
操作は正常に完了しました。

次です。

PS C:\WINDOWS\system32> sfc /scannow

(実行結果)整合性違反を検出しませんでした。

システム スキャンを開始しています。これにはしばらく時間がかかります。

システム スキャンの検証フェーズを開始しています。
検証 100% が完了しました。

Windows リソース保護は、整合性違反を検出しませんでした。

何だかうまく行くかも?

次です。

Get-AppXPackage -AllUsers |Where-Object {$_.InstallLocation -like "SystemApps"} | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}

(実行結果)

Add-AppxPackage : 次の HRESULT で展開に失敗しました: 0x80073D02, 変更されるリソースが現在使用中であるため、パッケージを インストールできませんでした。
エラー 0x80073D02: 次のアプリを閉じる必要があるため、インストールできません: Microsoft.Windows.StartMenuExperienceHost_ 10.0.19041.610_neutral_neutral_cw5n1h2txyewy。
注: 詳細については、イベント ログで [ActivityId] 4ea70ec1-ec8f-0007-f819-a74e8fecd601 を検索するか、コマンド ラインの Get-AppPackageLog-ActivityId 4ea70ec1-ec8f-0007-f819-a74e8fecd601 を使用してください
発生場所 行:1 文字:96
…(略)…

何だかエラーが出ました。やっぱりダメそうです。

Windows Updateを再試行してみましたが、案の定、何も改善はみられません。やっぱりエラー 0x800F0900 、 0x8024200Bが発生しました。

(考察)なぜDISMで”ソースファイルが見つかりませんでした”になるの?

「”ソースファイルが見つかりませんでした”と出たときの対処法」をやってみてもやっぱり”エラー: 0x800f081f ソース ファイルが見つかりませんでした。”が出た時はショックでした。

“sfc /scannow”でも「整合性違反を検出しませんでした。」となりますし、Windows Updateのトラブルシューティングツールでも「問題を特定できませんでした」となってしまいます。

エラー 0x800F0900 、 0x8024200Bは問題を特定できず

Windows的には問題が発生しているとは認識できていないようです。実際、起動してしまえば普通に使えます。

でも、実際にWindows Updateでエラーが起きますし、Windows Updateができないのは困ります。何とか修復しなければなりません。なぜソースファイルがあるのにDISMでエラーになってしまうのでしょう?

「ソースファイルが見つかりませんでした」となる理由

あくまで推測ですが、私の環境が

Windows 10 20H2、OSビルド:19042.631 (バージョン:10.0.19042.631)

に対し、Microsoftから提供されている現在のWindowsインストールメディアのバージョンが

Windows 10 October 2020 Update(20H2) (バージョン:10.0.19041.572)

となっているのが原因と思われます。

私の環境(新)10.0.19042.631 > インストールメディア(旧)10.0.19041.572

となっているため、DISMの制限事項に当たるのではないかと思われます。

制限事項

バージョンの互換性。 DISM は、古い Windows オペレーティング システムのターゲット イメージで使用できますが、インストールされている DISM のバージョンよりも新しいオペレーティング システムのターゲット イメージでは使用できません。 たとえば、Windows 10 バージョン 1511 の DISM では、Windows 10 バージョン 1511 およびバージョン 1507 を操作できますが、バージョン 1607 は操作できません。

(引用)https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/what-is-dism

単純に「ソースが見つからない」と言っているわけではなく、「あなたの環境を修復するのに必要な最新バージョンのソースが見つからない」というエラーなんだと思います。

だったら私の環境をWindows 10 の回復オプションでWindows 10 October 2020 Update(バージョン:10.0.19041.572)に戻せないか、と色々試してみましたが、インストール済のアプリを消さずに戻す方法は無さそうです。

インストール済の更新プログラムをアンインストールすることもできませんでした。

手詰まりです。アプリを消して「回復」させるしかないのか…。それってクリアインストールと同じですよね。

結局どうしたか?Windows Update 情報クリアで応急処置

Windows起動時に、”イベント 20 WindowsUpdateClient”の”エラー:0x800f0900″、”エラ:0x8024200B”が発生するのがアクセスランプ点きっぱなしで固まる要因になっていると考え、これだけでもまずは回避したいと考えました。

以下のサイトを参考にしました。

マウスコンピューター FAQ
マウスのアフターサポートは、ご購入頂いた製品に役立つ情報や、専任スタッフによる問い合わせサポートをご用意しています。ドライバ・マニュアルのダウンロードや修理のお申し込みもこちらから。365日24時間対応。

コマンドプロンプトを管理者権限で起動し、以下のコマンドを実行していきます。

C:\WINDOWS\system32> (net stop usosvc)
Orchestrator Service の更新 サービスを停止中です.
Orchestrator Service の更新 サービスは正常に停止されました。
C:\WINDOWS\system32> (net stop dosvc)
Delivery Optimization サービスを停止中です.
Delivery Optimization サービスは正常に停止されました。
C:\WINDOWS\system32> net stop wuauserv
Windows Update サービスは開始されていません。
C:\WINDOWS\system32> net stop bits
Background Intelligent Transfer Service サービスは開始されていません。
ren %systemroot%\SoftwareDistribution SoftwareDistribution.old

次のコマンドについては、参考にしたサイトでWindows10の1703以前と以降の説明を書いてくれているようなのですが、どちらも「1703以降」の説明になっていたので、実際に存在するファイルを確認し、以下のコマンドを実行しました。

del /Q %ALLUSERSPROFILE%\Microsoft\Network\Downloader*

C:\ProgramData\Microsoft\Network\Downloader 配下のファイルが消えました。

停止したサービスを起動していきます。

C:\ProgramData> net start bits
Background Intelligent Transfer Service サービスを開始します.
Background Intelligent Transfer Service サービスは正常に開始されました。
C:\ProgramData>net start wuauserv
Windows Update サービスを開始します.
Windows Update サービスは正常に開始されました。
C:\ProgramData>(net start dosvc)
Delivery Optimization サービスを開始します.
Delivery Optimization サービスは正常に開始されました。
C:\ProgramData> (net start usosvc)
Orchestrator Service の更新 サービスを開始します.
Orchestrator Service の更新 サービスは正常に開始されました。

Windows Updateを見てみるとエラーの状態から「最新の状態です」に戻りました。

Windows Updateクライアントの情報をクリア後、最新の状態と表示

ただし、「更新プログラムのチェック」を押してしまうと、結局またUpdateがかかり、エラーの状態になってしまいます。もう一度Windows Update情報をクリアし、最新の状態に戻しました。

根本的な解決は先送り

応急処置により、Windows起動時に固まる現象は回避できました。

しかし、Skyrimは動きませんし、またWindowsUpdateがかかるとエラーの状態に戻ってしまいます。

やはりクリアインストールしかないのか?もう少し考えてみます。

コメント

タイトルとURLをコピーしました