2014年12月12日金曜日

Windows回復環境(WindowsRE)

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がサーバーをさらに破損させることはないと予想されますが、問題を修正できない可能性があります。

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


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 コマンドプロンプトで、下記を行う。
    copype x86 c:winre_x86
    imagex /export /boot d:sourcesboot.wim 2 c:winre_x86winre.wim "Windows Recovery Environment"
    imagex.exe /mountrw c:winre_x86winre.wim 1 c:winre_x86mount
    解説
    c:winre_x86 にWindows PE ビルド環境をセットアップしています。
    Windows Server 2008インストールメディアに入っているboot.wimよりWinREを取り出しています。
    これからカスタマイズするために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作成(※オプション)
    copy c:winre_x86winre.wim c:winre_x86isosourcesboot.wim
    oscdimg -n -bc:win_x86etfsboot.com c:winre_x86ISO c:winre_x86winre.iso
    解説
    boot.wimをwinre.wimで上書き
    winreのISOイメージを作成
フェーズ2:WindowsREイメージのインストール
DiskPartツールを使用してWindowsREパーティションを作成してからWindows Server 2008をインストールします。Windows Server 2008インストール後にWindowsREのインストールを行います。
Windows Server 2008のインストールメディアより起動し、「コンピュータの修復」から「コマンドプロンプト」をクリックしてコマンドプロンプトウインドウを開きます。
Diskpart
sel disk 0
clean
Create Partition Primary Size=1500
Create Partition Primary
sel part 1
Format FS=NTFS Label=”Recovery” Quick
sel part 2
Format FS=NTFS Label=”Windows” Quick
Active
Exit
パーティションの設定ができたら先ほど作成したWindowsボリュームにWindows Server 2008をインストールします。
  1. c:winreフォルダを作り、5で作成した下記の3つのファイルをc:winreフォルダへコピーする。
    winre.wim
    boot.sdi
    setautofailover.cmd
  2. D:ドライブにWinREのインストールを行う。
    copy c:winrewinre.wim d:
    copy c:winreboot.sdi d:
    copy c:winresetautofailover.cmd d:
    d:setautofailover.cmd /target d: /disk 0 /partition 1 /wim
    これでドライブ文字は外されインストール終了
    *マニュアルにはドライブの先頭にWindowsREを入れないといけないと書いてあります。実際にWindowsAIKの初期バージョンでは先頭パーティションにインストールしないと起動しませんでした。そこで試しに最新バージョンのWindowsAIKを使用して後ろのパーティションにWindowsREをインストールしてみました。
    d:setautofailover.cmd /target d: /disk 0 /partition 2 /wim
フェーズ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が起動してしまいます。ということは、エラーのダンプなどが取れないということになります。サーバーなどではなぜエラーになったのか?などを追求しなくてはいけない場合がありますが、それができないということになります。

0 件のコメント:

コメントを投稿