読者です 読者をやめる 読者になる 読者になる

とある技術者のお遊びフライト日記

ゲームをきっかけに国内飛び回る謎な人の日記。時々技術ネタもご提供。

UEFIで起動するリカバリ用Windows PE(x64)の作り方

技術系ネタ

最新版のご案内

(2014/2/24 追記)
最新のWindows PE 5.0に対応した方法を公開しました。
http://d.hatena.ne.jp/idinor/20140224/1393249489

はじめに

Microsoft純正のツールで基本をすべて固めた、x64かつUEFIで起動する、リカバリ・簡単なメンテナンス用のWindows PEメディアの作成方法です。

なお、本手順ではUEFIブートすることだけしか考えていません。
BIOSブートの環境では使えないので注意してください(MSDNのソースに当たれば、BIOS環境対応のメディア作成もできます)。

基本方針・注意点につきましては、本記事の末尾をご一読願います。

Secure Bootについて(2014/2/13 追記、2014/2/25 一部変更)

ここで紹介している手順で作成したWindows PEは、Secure Bootが有効な環境では起動できません。
Windows 7 SP1ベースのPE3.1を使用しているためです)
Secure Bootが有効な環境で使用される場合は、BIOS/UEFIの設定からSecure Bootを無効化してご利用ください。

このドキュメントの改訂履歴

2014/2/27 ver 1.2 基本方針・注意事項を記事末尾へ移動しました
2014/2/25 ver 1.1 内容を手直しし、PE 3.1に対応させました
2013/10/27 初版

手順

準備:Windows AIKのダウンロードとインストール

1. http://www.microsoft.com/ja-jp/download/details.aspx?id=5753 より、Windows AIK 3.0をダウンロードします。
2. Windows AIK 3.0をインストールします。インストール手順は、無償入手可能なミニWindows OS「Windows PE」実践活用術:改訂 管理者必携! 最強のデータ・サルベージ・ツールWindows PE 3.0(前編) (3/4) - @ITの『WAIKのインストール』と同じです。
3. http://www.microsoft.com/ja-jp/download/details.aspx?id=5188 より、Windows AIK 3.1をダウンロードします。
4. Windows 7 SP1 用の Windows AIK について - Ask CORE - Site Home - TechNet Blogsで紹介されている手順に従い、AIK 3.0を3.1へ更新します。

作業用ディレクトリとデータの準備

スタートメニューの「Microsoft Windows AIK」―「Deployment ツールコマンドプロンプト」を管理者権限で実行します。
Deployment ツールコマンドプロンプトが開いたら、下記コマンドを入力します。

copype.cmd amd64 C:\winpe-x64

この作業で、次のディレクトリが自動的に作成され、必要なデータが展開されます。

\winpe-x64
\winpe-x64\ISO
\winpe-x64\mount

ベースとなるboot.wimをコピーします。以後の変更は、このコピーしたイメージに対して行います。

copy c:\winpe-x64\winpe.wim c:\winpe-x64\ISO\sources\boot.wim
ベースイメージのマウント

ベースイメージを作業用ディレクトリへマウントします。

Dism /Mount-Wim /WimFile:C:\winpe-x64\ISO\sources\boot.wim /index:1 /MountDir:C:\winpe-x64\mount
コンポーネントの追加

1. WMI:Windows Management Instrumentation(WinPE-WMI)

Dism /image:C:\winpe-x64\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\winpe-wmi.cab" /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\ja-jp\winpe-wmi_ja-jp.cab"

2. 有線ネットワークの802.1Xサポート(WinPE-Dot3Svc)

Dism /image:C:\winpe-x64\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\WINPE-DOT3SVC.cab" /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\ja-jp\WINPE-DOT3SVC_JA-JP.cab"

3. WSHWindows Scripting Host(WinPE-Scripting)

Dism /image:C:\winpe-x64\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\winpe-scripting.cab" /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\ja-jp\winpe-scripting_ja-jp.cab"

4. イメージキャプチャツールと展開サービスクライアント(WinPE-WDS-Tools)

Dism /image:C:\winpe-x64\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\winpe-wds-tools.cab" /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\ja-jp\winpe-wds-tools_ja-jp.cab"

5. HTML アプリケーションサポート(WinPE-HTA

Dism /image:C:\winpe-x64\mount /Add-Package /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\winpe-hta.cab" /PackagePath:"C:\Program Files\Windows AIK\Tools\PETools\amd64\WinPE_FPs\ja-jp\winpe-hta_ja-jp.cab"

6. ImageXと必要なDLLの追加
wimgapi.dllを追加する際に上書きするか尋ねられますが、“yes”としてください(キーボードの“y”を押すだけです)。

xcopy "C:\Program Files\Windows AIK\Tools\amd64\imagex.exe" "C:\winpe-x64\mount\Windows\System32"
xcopy "C:\Program Files\Windows AIK\Tools\amd64\wimgapi.dll" "C:\winpe-x64\mount\Windows\System32"

7. gimagex……DLLと実行可能ファイルをすべてSystem32以下へ配置します

xcopy "C:\gimagex\install\com\x64\gimagex_com.dll" "C:\winpe-x64\mount\Windows\System32"
xcopy "C:\gimagex\install\x64\gimagex.exe" "C:\winpe-x64\mount\Windows\System32"
xcopy "C:\gimagex\install\gimagex.chm" "C:\winpe-x64\mount\Windows\System32"

番外:Windows PEで使用するキーボードレイアウトをUSキーボードにしたい場合は、下記コマンドを入力します。
日本語キーボードのままでよい場合は、この手順を飛ばしてください。

Dism /image:C:\winpe-x64\mount /Set-LayeredDriver:1
独自のプログラムやファイルを追加する

無償入手可能なミニWindows OS「Windows PE」実践活用術:改訂 管理者必携! 最強のデータ・サルベージ・ツールWindows PE 3.0(前編) (4/4) - @ITの『そのほかの必要なファイルを追加する(省略可能)』をご覧の上、必要に応じて追加してください。

変更の適用

ブートイメージに、これまで行った変更の内容を適用します。

Dism /Unmount-Wim /MountDir:C:\winpe-x64\mount /Commit

何か理由があって変更を破棄したい場合は、下記のコマンドを入力します。

Dism /Unmount-Wim /MountDir:C:\winpe-x64\mount /Discard

イメージの作成

イメージをiso形式で作成する
Oscdimg -bC:\winpe-x64\Efisys.bin -pEF -u2 -udfver102 C:\winpe-x64\ISO C:\winpe-x64\winpe31_x64_uefi.iso
イメージをUSBメモリに書き込む

前提条件

最初にUSBメモリを初期化します。

diskpart
select disk 1
convert gpt
clean
create partition primary
select partition 1
format quick fs=fat32
assign
exit

次に、USBメモリにファイルをコピーします。

xcopy C:\winpe-x64\iso\*.* /e F:\

このあと、イメージを書き込んだCDまたはUSBメモリを挿入して、ブートすることを確認します。

ImageX, gimagexを使用した展開用イメージの作成と、イメージの展開方法

ここでは、監査モードで作成した展開用の環境をイメージ化し、それを別のコンピューターへ適用するシナリオを考えます。
下記例にあるImageXコマンドのオプションの詳細については、ImageX のコマンド ライン オプションをご覧ください。
また、ImageXがイメージ作成時に既定で除外するファイルの一覧については、ImageX 構成ファイルを作成するをご覧ください。

コマンドライン(ImageX):展開用環境のイメージ化

ご注意:イメージの吸い出しには、ご使用のマシンの構成などにもよりますが、1時間ほどかかる場合があります。

吸い出し対象がドライブ C:\ で、イメージ保存場所がドライブ D:\ の場合は下記の通りです。

imagex /capture C: D:\my-factory-image.wim "My factory image" /verify /check /scroll

吸い出し時に、イメージの圧縮を同時に行うことができます。圧縮レベルはnone(無圧縮), fast, maximumの三段階です。
圧縮レベルを指定しなかった場合(既定の動作)は、fastが指定されます。
圧縮レベルmaximumを指定する場合は下記の通りとなります。

imagex /capture C: D:\my-factory-image.wim "My factory image" /compress maximum /verify /check /scroll
コマンドライン(ImageX):イメージ化した環境を別のPCへ展開する

適用するイメージのファイル名が my-factory-image.wim で、ドライブ D:\ に保存されており、これをドライブ C:\ へ適用する場合のコマンドは下記の通りです。

imagex /apply D:\my-factory-image.wim 1 C:\ /check /verify
GUIフロントエンド:gimagexを使った展開用環境のイメージ化

コマンドラインで、“gimagex”と入力しEnterキーを押すと、gimagexを起動できます。

  1. 『Capture』タブを選びます。
  2. 『Source』は『C:\』とし、他は適当に入力します。
  3. 下半分のエリアにある、『Verify』『Check』にチェックを入れます。
  4. 『Create』を押します。
GUIフロントエンド:gimagexを使ってイメージ化済み環境を別のPCへ展開する
  1. 『Apply』タブを選びます。
  2. 『Source』の右にある『Browse』を押し、作成したイメージを選択します。
  3. Destination』は『C:\』とします。
  4. 『Verify』『Check』にチェックを入れます。
  5. 『Apply』を押します。

展開終了後

まず、起動に使用したメディアを取り外します。
作業終了後、再起動する場合は

wpeutil reboot

シャットダウンする場合は、

wpeutil shutdown

とします。

基本方針および注意点について

基本方針
  • 展開用イメージ作成と、作成したイメージの展開はMicrosoft純正のツールで行う
  • イメージ作成と展開を手助けするGUIツールを組み込む
  • ネットワーク(802.1X)とWindows Scripting Host(WSH)も使えるようにする(注1)

(注1)PEで802.1Xの設定をする方法までは扱いません。設定の方法については、こちらをご覧ください(英語):Configuring 802.1x Network Authentication for WinPE 3.0 and ConfigMgr Deployments - Ryan Lakey

注意点

1. 日本のMicrosoft Download CenterからダウンロードしたPE 3.1は、あらかじめ日本語環境・日本語キーボードの設定になっています。
2. コンポーネントを追加するときは、対応する言語パックも入れる必要があります。
3. PE 3.1は、PE 3.0の更新として配布されており、PE3.1だけをインストールしてWindows PEのメディアを作成することはできません。
あらかじめWindows AIK 3.0をインストールし、Windows 7 SP1 用の Windows AIK について - Ask CORE - Site Home - TechNet Blogsで紹介されている方法に従って更新してください。
4. PE 3.1では、ネットワークのサポートが標準で含まれています。(3.0では含まれていません)