Windows 10 が起動しなくなったのでレジストリを復元したら直った件

# 本記事の要約
- Windows 10 が起動しなくなった。セーフモードも無理
- DISM 実行したらレジストリマッピングに失敗した → レジストリが壊れた？
- レジストリのバックアップがあったので復元したら直った

# Windows が起動しない！
しばらく使っていなかった Windows 10 を最新の状態にしたほうがいいかな〜と思い、Windows Update をかけるために Windows を起動しようとしたらエラーメッセージ。

<img width="640" title="Windowsブルースクリーン1" alt="問題が発生したため、PC を再起動する必要があります。エラー情報を収集しています。自動的に再起動します。" src="https://qiita-image-store.s3.amazonaws.com/0/243580/46ce5e25-58dd-51cf-57a0-d087ced7bc87.png">

自動的に再起動したので自動修復してくれるのかなーと待っていたら再びエラーメッセージ。

<img width="640" title="Windowsブルースクリーン2" alt="自動修復で PC を修復できませんでした" src="https://qiita-image-store.s3.amazonaws.com/0/243580/f12abf42-9d39-259c-686c-fdbfe81c2e8c.png">

その後、\[詳細オプション\] - \[トラブルシューティング\] と進んでスタートアップ修復を試みたが失敗。
復元ポイントも作成していないし、システムイメージファイルなんて作っていない。

セーフモードで起動すればどうにかなるんじゃないかと思ったものの、同じエラーメッセージが出現。

最終手段として Windows の初期化があるが、不用意にデータを削除したくなかったので色々調べた結果、コマンド プロンプトを使えばどうにかなるかもしれないとの考えに至った。

# ファイルシステムには異常なし
まずはファイルシステムに問題がないか確かめるため、chkdsk コマンドを実行。

```console:cmd  
X:¥Windows¥System32>chkdsk /r c:
```

しばし待機後、スキャン終了のメッセージが表示された（以下は抜粋）。

```console:cmd
Windows でファイル システムのスキャンが終了しました。
問題は見つかりませんでした。
これ以上の操作は必要ありません。
```

どうやらファイルシステムには異常はないようだ。

ただ、一番最後の行に`ログに記録されたメッセージを、状態 50 のイベント ログへ転送できませんでした。`というメッセージが表示されていた。よく分からないので、とりあえずスルー。オフラインだからだろうか。

# システムファイルチェックに失敗？
次に、Windows にシステムファイルを修復するツールがないかどうか調べてみたところ、Microsoft 公式サイトに以下の記事があった。

- [システム ファイル チェッカー ツールを使用して不足または破損しているシステム ファイルを修復する](https://support.microsoft.com/ja-jp/help/929833/use-the-system-file-checker-tool-to-repair-missing-or-corrupted-system)

Windows 10 の場合、`DISM`コマンドを実行後、`SFC`コマンドを実行するようだ。

対象の Windows は現在オフラインであることに注意して、`DISM`コマンドでチェックだけしてみようとする（オプション等は[こちらの記事](https://pc-taskal.net/howto/windows/sfc-dism-system-recovery)を参考にした）。

```console:cmd
X:¥Windows¥System32>dism /Image:c:¥ /Cleanup-Image /ScanHealth
```

すると、エラーが発生。まじかー。（エラーメッセージのログ取り忘れました。すみません）

作成された DISM ログファイルを参照してみる。すると以下のような気になるエラーメッセージが。

```:dism.log
2018-05-06 17:55:37, Error                 DISM   Offline Registry: PID=2564 TID=2584 "Error creating registry mapping: SOFTWARE" - COfflineRegistry::Init(hr:0x800703f1)
2018-05-06 17:55:37, Error                 DISM   DISM OS Provider: PID=2564 TID=2584 Failed to mount the remote registry. - CDISMOSServiceManager::SetWindowsDirectory(hr:0x800703f1)
2018-05-06 17:55:37, Error                 DISM   DISM.EXE: Failed to set the windows directory to 'C:¥Windows'. HRESULT=800703F1
```

`Error creating registry mapping`と書かれているので、これはもしやレジストリファイルの破損では？
復元すればどうにかなるかもしれない。

# レジストリファイルの復元

レジストリファイルの復元方法を探していたところ、以下の記事を見つけた。

- [日々精進 |Windows10のレジストリ復旧](http://z0001.blog87.fc2.com/blog-entry-473.html)

どうやら Windows はレジストリのバックアップを定期的に取っているらしく、現在のレジストリファイル（以下の5ファイル）をバックアップファイルで置き換えることで復元が可能らしい。

- SAM
- SECURITY
- SOFTWARE
- SYSTEM
- DEFAULT

このうち、`SOFTWARE`というのは先程の DISM ログでも出てきた。恐らくこのファイルが壊れているのだろう。
現在のレジストリファイルを一旦退避し、バックアップファイルをコピーする。

```console:cmd
X:¥Windows¥System32>cd /d C:¥Windows¥System32¥config
C:¥Windows¥System32¥config>ren SOFTWARE SOFTWARE.BAK
C:¥Windows¥System32¥config>copy RegBack¥SOFTWARE SOFTWARE
```

念のため、他の4ファイルも差し替える。

```console:cmd
C:¥Windows¥System32¥config>ren SAM SAM.BAK
C:¥Windows¥System32¥config>copy RegBack¥SAM SAM
C:¥Windows¥System32¥config>ren SECURITY SECURITY.BAK
C:¥Windows¥System32¥config>copy RegBack¥SECURITY SECURITY
C:¥Windows¥System32¥config>ren SYSTEM SYSTEM.BAK
C:¥Windows¥System32¥config>copy RegBack¥SYSTEM SYSTEM
C:¥Windows¥System32¥config>ren DEFAULT DEFAULT.BAK
C:¥Windows¥System32¥config>copy RegBack¥DEFAULT DEFAULT
```

PC を再起動したところ、Windows が無事起動しました！
めでたしめでたし。