2017年10月25日水曜日

Windows イメージを修復する

Windows イメージを修復する

イメージが修復できるかどうかを調べるには

1. イメージをスキャンして、破損していないかどうかをチェックします。この操作には数分かかります。たとえば、コマンド プロンプトで次のコマンドを入力します。

> Dism /Online /Cleanup-Image /ScanHealth

2. イメージをチェックし、破損が検出されたかどうかを確認します。
たとえば、コマンド プロンプトで、次のように入力します。

> Dism /Online /Cleanup-Image /CheckHealth

/CheckHealth 引数を使うと、DISM ツールによって、イメージが正常、修復可能、修復不可能のどれになるのかが報告されます。イメージが修復できない場合、イメージを破棄してやり直す必要があります。イメージが修復できる場合、/RestoreHealth 引数を使ってイメージを修復できます。

イメージを修復するには

1. イメージを修復するには、/RestoreHealth 引数を使います。たとえば、修復ソースとしてマウントされたイメージを使ってオフライン イメージを修復する場合は、コマンド プロンプトで次のコマンドを入力します。

> Dism /Image:C:\offline /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows

また、Windows Update ではなく独自のソースを使ってオンライン イメージを修復する場合は、次のコマンドを入力します。

> Dism /Online /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows /LimitAccess

修復ファイルの /Source を指定しない場合、オンデマンド機能の既定の場所が使われます。詳しくは、「Windows の修復ソースを構成する」をご覧ください。複数の /Source を指定した場合、ファイルは最初に見つかった場所からコピーされ、他の場所は無視されます。/LimitAccess を使うと、DISM ツールで修復ソースやオンライン イメージのバックアップ修復ソースとして Windows Update を使わないようにすることができます。



2017年10月1日日曜日

Windows 10の「Push-Button Reset」を使う

Windows 10を再インストールする「Push-Button Reset」を使いこなす


 Windows 10には、「Push-Button Reset」と呼ばれる機能がある。これは、Windows 8から搭載された機能で、簡単にいえば、Windowsを再インストールして不具合を解消する機能だ。このPush-Button Resetには、大きく3つの機能がある。

  • リフレッシュ:ユーザーファイルを維持したまま再インストール
  • リセット:すべてを削除して再インストール
  • ベアメタルリカバリー:HDD交換などでまっさらになったPCに再インストール

 このPush-Button Resetは、設定などでは「回復」という名前が使われている。「回復」とは英語の“Recovery”の訳だ。しかし、Windowsには、似たような言葉が少なくない。たとえば「修復」(Repair)、「復元」(Restore)といった用語だ。また、「回復」も「回復パーティション」「回復環境」「回復オプション」「回復ドライブ」とさまざまある。


今回はWindows 10を初期状態に戻す「回復」について見ていく


Windowsの調子が悪くなったときの最終解決法としての再インストール


 あらためて「回復」とは、Windowsを再インストールする仕組みだ。動作がおかしくなり、他の方法では戻せないような場合に、再インストールを行ない、Windowsを初期状態に戻して、動作を回復させる。Windows 7以前でも調子が悪いときの再インストールは、「最後の武器」的な扱いではあったものの、比較的よく行なわれていた解決方法だった。

 Windows 8では、これをWindowsの標準機能とした。これがPush-Button Resetの始まりである。つまり、ハードウェアのリセットのようにボタンを押すだけでWindowsを初期状態にリセットするというのが「Push-Button Reset」の意味なのである。

 Windows 8.1 Updateでは、リフレッシュは「PCをリフレッシュする」(PC設定→保守と管理→回復)から、リセットは「すべてを削除してWindowsを再インストールする」(同)として利用することができた。

 また、ベアメタルリカバリーは、「回復ドライブの作成」(コントロールパネル→回復)で回復ドライブを作成し、これを使ってPCを起動することでできた。このとき、重要な役割を果たしていたのが「回復パーティション」だ。PCメーカーはここにプリインストールWindowsの「イメージ」を保存しておけば、Push-Button Resetがこれを使ってWindowsを再インストールしてくれるわけだ。

 ただし、回復パーティションはPCメーカーがプリインストールの一環として作成するもので、Windowsのインストーラーは、これを作成しない。このため、自作PCなどではユーザーが手動で回復パーティションを作らない限りPush-Button Resetの機能は利用できなかった。もっとも、最近では自作PCはすっかり少数派で、世界中の大多数のユーザーはメーカー製PCを利用している。このため、基本的にWindowsでは「Push-Button Reset」が使えるといっても間違いではない。

Windows 10のリセットとリフレッシュ


 Windows 10では、このリセットとリフレッシュの機能には変更はないのものの、仕組みが改良されている。まず、再インストールするイメージに「回復パーティション」を使わなくなった。これは、Windows 10の大多数がWindows 7/8からのアップグレードであり、回復パーティションには、購入時(工場出荷時)にインストールされていたWindows 7/8のイメージがある。

 このため、これをWindows 10のPush-Button Resetで使うわけにはいかない。だからといって、回復パーティションを削除してしまうと、工場出荷時に戻すことができなくなってしまい、製品としての仕様が変わってしまう。

 また、ここにWindows 10を入れることも難しい。というのは回復パーティションには、PCメーカーの独自アプリやドライバがあり、カスタマイズも施されているためWindowsだけを入れ替えるためには、Windows 10のインストーラーがイメージを完全に理解する必要があり、これは事実上不可能だ。また、元々のものとは別にWindows 10用の回復パーティションを作ると今度は空き領域を圧迫してしまう。

 そのため、Windows10のPush-Button Resetでは、C:\WindowsなどにインストールされているWindowsそのものから再インストール用のイメージを作成することにした。自分自身を再インストールする必要があるのに自分自身からイメージを作成するのは、なにか問題があるような気がするが、これには、「Windowsコンポーネントストア」という仕組みを使う。

 Windowsを構成するシステムファイルは、すべてこのWindowsコンポーネントストアに保存されている。コンポーネントストアは「C:\Windows\WinSxS」フォルダにある。実際には、ここにあるファイルが、Windowsフォルダに見えている。いわゆるハードリンクと呼ばれるもので、同じものが複数あるように見えるが記憶装置上の実体は1つしかない。ここでは、ファイルがバージョンでも管理されており、Windows UpdateでWindowsを更新する場合、ここにシステムファイルを追加し、リンクを書き換える。

 システムファイルなどは保護されているため、プログラムファイルが勝手に書き換えられることはないため、問題は、Windows Updateで配布されたファイルとレジストリなどの設定の不具合から起こる。少なくとも、システムを構成するプログラムモジュール自体は安全だと想定できる。

 そこで、Windows 10では、Windows Updateで更新されたファイルは、28日を経過したものが、Push-Button Resetの再インストール用のイメージに採用される。このため、Windows 10では、回復パーティション自体を不要にしている。ただし、Windows 10プリインストールマシンもあり、PCメーカーが工場出荷時の状態に回復できる仕組みを用意する必要がある。

 このためにCドライブのルートフォルダにRecoveryフォルダがあり、ここにカスタマイズ用の情報を保存する。このC:\Recoveryフォルダは、システムフォルダ属性となっており、エクスプローラーでは、表示することはできないが、パス名を直接入力してフォルダを開くことは可能だ。