Windows回復環境(WindowsRE)に関して

Windows回復環境とは?

Windows回復環境(WindowsRE)とはWindows Server 2008オペレーティングシステムに組み込まれているツールであり、Windows Server 2008を正常に起動できない時にエラーを診断し、エラーから回復できるようにするテクノロジーになります。

しかし通常インストールを行ってもWindows回復環境はインストールされません。

ではこのWindows回復環境を使用するにはどうすればいいのか?2つのパターンが想定されます。

  1. インストールメディアから起動してWindows回復環境を起動する
  2. ハードディスクへのWindows回復環境のインストール

になります。(Windows回復環境=WinREと表記します)

Windows Server 2008のWinREはWindows Vistaと同じバイナリを使用します。ただし、クライアントモードとサーバーモードがあり、Windows Vistaではクライアントモード、Windows Server 2008ではサーバーモードで動作します。よって、Windows VistaのWinREではOSに問題がある場合、自動的に修復を行いますが、Windows Server 2008のWinREのサーバーモードでは問題を自動的に検出および修正は行いません。ただし、Windows Server 2008のWinREをクライアントモードで動作させることもできます。この場合、WinREがサーバーをさらに破損させることはないと予想されますが、問題を修正できない可能性があります。

Vista Windows RE

Windows Vista(クライアントモード)のWinRE

2008 Windows RE

Windows Server 2008(サーバーモード)のWinRE

ハードディスクへのWinREインストール方法

要件(最低限の要件になります。場合によっては他の用件も出る可能性あり)

  • WinREはOSとは別のパーティションにインストールする必要があります
  • パーティションのサイズは1.5GB以上必要です
  • パーティションはNTFSフォーマットにする必要があります

フェーズ1:WindowsREイメージの作成

Windows 自動インストール キット (Windows AIK)をマイクロソフトのHPより入手する

*現在はWindows Vista SP1 および Windows Server 2008 用の自動インストール キットが最新となっています。

Windows 自動インストール キット (Windows AIK)のインストールを行う

1.スタートメニュー>すべてのプログラム>Microsoft Windows AIK>Windows PE Tools コマンドプロンプトで、下記を行う。

  1. copype x86 c:winre_x86
  2. imagex /export /boot d:sourcesboot.wim 2 c:winre_x86winre.wim “Windows Recovery Environment”
  3. imagex.exe /mountrw c:winre_x86winre.wim 1 c:winre_x86mount

解説

  1. c:winre_x86 にWindows PE ビルド環境をセットアップしています。
  2. Windows Server 2008インストールメディアに入っているboot.wimよりWinREを取り出しています。
  3. これからカスタマイズするために2で作成したwinre.wimを展開しています。

*メディアによってはboot.wimの内容が異なっていることがあり、3でwinre.wimを展開してもsourcesなどの他フォルダができないものがあります。筆者はこれではまりました(マイクロソフトのHPで提供されているisoファイルなど)ボリュームライセンスで提供されているメディアでは想定のフォルダができました。

2.下記の内容のテキストファイルを作り、c:winre_x86mountwindowssystem32フォルダに、winpeshl.iniの名前で保存。
[LaunchApp]
AppPath=x:sourcesrecoveryrecenv.exe

解説

WinRE起動時にシステム回復オプション画面が上がる設定を行っている

3.c:winre_x86mountsourcesrecoveryフォルダにToolsサブフォルダを作る。
下記の内容のテキストファイルを作り、このToolsフォルダに、WinREConfig.xmlの名前で保存。
<Recovery>
<Server/>
</Recovery>

解説

WinREをサーバーモードに設定している

参考

Windows RE エクスペリエンスをカスタマイズする

4.Windows PE Tools コマンドプロンプトで、下記を行う。
imagex /unmount /commit c:winre_x86mount

解説

カスタマイズが完了したのでwinre.wimを固めている

5.WinREインストール用のモジュールをWinREフォルダを作りコピーしておく

  • c:winre_x86winre.wim
  • c:program fileswindows aiktoolspetoolsx86bootboot.sdi
  • c:program fileswindows aikrecoverysetautofailover.cmd

6.WinREのブータブルCD作成(※オプション)

  1. copy c:winre_x86winre.wim c:winre_x86isosourcesboot.wim
  2. oscdimg -n -bc:win_x86etfsboot.com c:winre_x86ISO c:winre_x86winre.iso

解説

  1. boot.wimをwinre.wimで上書き
  2. winreのISOイメージを作成

フェーズ2:WindowsREイメージのインストール

DiskPartツールを使用してWindowsREパーティションを作成してからWindows Server 2008をインストールします。Windows Server 2008インストール後にWindowsREのインストールを行います。

Windows Server 2008のインストールメディアより起動し、「コンピュータの修復」から「コマンドプロンプト」をクリックしてコマンドプロンプトウインドウを開きます。

  1. Diskpart
  2. sel disk 0
  3. clean
  4. Create Partition Primary Size=1500
  5. Create Partition Primary
  6. sel part 1
  7. Format FS=NTFS Label=”Recovery” Quick
  8. sel part 2
  9. Format FS=NTFS Label=”Windows” Quick
  10. Active
  11. Exit

パーティションの設定ができたら先ほど作成したWindowsボリュームにWindows Server 2008をインストールします。

7.c:winreフォルダを作り、5で作成した下記の3つのファイルをc:winreフォルダへコピーする。
winre.wim
boot.sdi
setautofailover.cmd

8.D:ドライブにWinREのインストールを行う。

  1. copy c:winrewinre.wim d:
  2. copy c:winreboot.sdi d:
  3. copy c:winresetautofailover.cmd d:
  4. d:setautofailover.cmd /target d: /disk 0 /partition 1 /wim

これでドライブ文字は外されインストール終了

*マニュアルにはドライブの先頭にWindowsREを入れないといけないと書いてあります。実際にWindowsAIKの初期バージョンでは先頭パーティションにインストールしないと起動しませんでした。そこで試しに最新バージョンのWindowsAIKを使用して後ろのパーティションにWindowsREをインストールしてみました。

d:setautofailover.cmd /target d: /disk 0 /partition 2 /wim

結果から申しますとうまくいきました~

ということは、運用後にWindows回復環境(WindowsRE)を導入することができるということですね。

フェーズ3:エラーから回復できるようにするには

System File Checkerを使用することによりエラーから回復処理を行います。

sfc /scannow
全ての保護されたシステムファイルの整合性をスキャン + 可能な場合には問題のあるファイルを修復

sfc /scanfile
完全パスを指定されたファイルの整合性をスキャン + 問題が識別された場合は修復

sfc /verifyonly
全ての保護されたシステムファイルの整合性をスキャン(修復なし)

sfc /verifyfile
完全パスを指定されたファイルの整合性をスキャン(修復なし)

sfc /offbootdir
オフライン修復の場合は、オフライン起動ディレクトリの場所を指定

sfc /offwindir
オフライン修復の場合は、オフラインWindows ディレクトリの場所を指定

  • sfc /verifyonly
  • sfc /verifyonly /offbootdir=c: /offwindir=c:windows
  • sfc /scannow /offbootdir=c: /offwindir=c:windows

このようにWinRE環境上でコマンドを実行することによりエラーからの回復を行います。

余談ですが、この設定ではエラーが出ると自動的にWinREが起動してしまいます。ということは、エラーのダンプなどが取れないということになります。サーバーなどではなぜエラーになったのか?などを追求しなくてはいけない場合がありますが、それができないということになります。はたしてサーバー環境でこのWinREを使うことがいいのか悩むところですね

IPv6の無効化(Win2008 or Vista)

企業ネットワークではIPv6を使用しているというのは、現状ではあまりないのではないでしょうか?しかし、Windows Server 2008やVistaはデフォルトでIPv6が使用されています。

ここで考えなくてはいけないのが、使用していないものを使用できる状態にしておくのはいいのか?ということです。

もし、使用していないのであれば無効にするのがセキュリティ的な考え方になります。

しかし、Windows Server 2008やVistaではIPv6が優先のプロトコルとなりシステム上削除することはできません。それではどうするか?

<IPv6の無効化>

IPv6を使用しないなら、無効化することができる。
設定手順は、下記の通り。

① ネットワーク接続(通常、「ローカル エリア接続」)のプロパティ
> [TCP/IPv6]のチェックボックスをオフ。

② %Systemroot%System32Driversetcフォルダ
HOSTSファイルから「::1 localhost」の行を削除。

③ レジストリで次の設定を行う。
HKLMSystemCCSServicesTcpip6Parametersキー
値の名前:DisabledComponents (REG_DWORD)
設定値:0xFFFFFFFF

④ コンピュータを再起動。

解説

Windows Server 2008ではIPv6を削除することはできませんが無効にすることはできます。ネットワーク接続のプロパティよりInternet Protocol version 6 (TCP/IPv6)のチェックを外すことにより無効にできます。

しかし、IPv6のトンネルインターフェイスとループバックインターフェイスは無効になりません。

そこでレジストリを修正することによって目的のIPv6コンポーネントを無効にすることができます。

レジストリキー

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicestcpip6ParametersDisabledComponents(REG_DWORD)

DisabledComponentsキーは自分で作成する必要があります。

デフォルトの値は「0」です。

この値は6ビットの2進数で構成されています。

「000000」

右側からビット0、1、2、3、4、5と構成されます。

ビット 0 を「1」にすることにより全てのIPv6トンネルインターフェイス(ISATAP、6to4、Teredo)を無効にします。デフォルトは「0」です。

ビット 1 を「1」にすることにより「6to4」のトンネルインターフェイスを無効にします。デフォルトは「0」です。

ビット 2 を「1」にすることにより「ISATAP」のトンネルインターフェイスを無効にします。デフォルトは「0」です。

ビット 3 を「1」にすることにより「Teredo」のトンネルインターフェイスを無効にします。デフォルトは「0」です。

ビット 4 を「1」にすることによりIPv6のトンネルインターフェイス以外(LAN、PPP)を無効にします。デフォルトは「0」です。

ビット 5 を「1」にするとIPv6よりIPv4を選択するようにデフォルトプレフィックスポリシーテーブルを変更します。デフォルトは「0」です。

ここでは設定値:0xFFFFFFFFを設定しているが、意味のある設定は6ビットのみ。

ということで、もしIPv6を社内で使用していないのであれば、これらの設定は必須作業になると考えられます。