バックアップ/リストアのときに重宝するので、CDやUSBフラッシュメモリからブートできるWindows環境 (Windows Preinstallation Environment; WinPE) 環境を作ってみる。MS-DOSのすごいやつのようなものです。

最新バージョンは3.0で、Windows 7と同じカーネルが使われています。というよりもWindows 7からカーネル周りの機能を取り出したものがWindows PE 3.0 (以下WinPE3.0) です。つまりWindows 6.1です。ダウンロードページは↓

http://www.microsoft.com/downloads/details.aspx?FamilyID=696dd665-9f76-4177-a811-39c26d3b3b34&displayLang=ja (1.7GB)
WinPE2.0で用のWindows AIKは700MBだったのが、2倍以上の大きさになっています。

このWindows Automated Installation Kit、すなわちWindows AIKの中にWindows PE作成ツール及び、その他のツール(ImageX、DISMなど)が入っています。Windows PEだけをダウンロードすることはできません。自分で作る必要があります。

WinPE環境を作るには、一旦作業用マシン(テクニシャンコンピュータというらしい)にこのWindows AIKをインストールしてから、そのマシン上でWinPE起動イメージを作成します。ダウンロードページに記載の通り、このバージョンのWindows AIKはWindows 5.2以上、つまりWindows Server 2003, Windows Server 2008, Windows Vista, Windows Server 2008 R2, Windows 7でしかサポートされていません。Windows XP (Windows 5.1) を使っている人は、WinPE2.0用のWindows AIKをインストールしてください。検索してみると、Windows XP上でWinPE3.0を作ることは可能なようですが、インストールしたWindows AIKが怪しい動きをするなど、失敗する可能性もあるらしいので注意です。以下はWindows Vistaを使った環境です。

とりあえずダウンロードしたISOイメージをマウントします。このイメージの中にDocs¥CHMs¥WinPE.chmという日本語のヘルプがあり、詳しい説明があります。

ここでは、カスタマイズは行なわずにデフォルトのWindows PE 3.0を実行するところまでをやってみます。

■ Windows AIKのインストール

イメージ上のAutoRun.exeを実行すると、次の初期ウィンドウが起動します。「Windows AIK セットアップ」を選択してインストールを開始します。

→ → → →

Windows AIKだけで1.6GBほど使います。けっこう大きいですね。

■ WinPE3.0 起動イメージの作成

スタートメニューから 「Deployment ツールのコマンドプロンプト」 を選択します。

Windows AIKのコマンドなどが使えるように環境変数が設定されたコマンドプロンプトが開きます。

ここで以下のコマンドを実行します。

copype.cmd <arch> <destination>

<arch> は x86 または amd64 を指定可能です。つまり、32bit, 64bit両方のWinPE環境を作ることができます。<destination> はWinPE起動環境のファイルを出力するためのローカル ディレクトリへのパスです。ここでは作業ディレクトリをC:\workに作り、次のように指定します。

copype.cmd x86 c:\work\winpe_x86

数秒で、指定された場所にファイルが展開されます。ISOフォルダ、mountフォルダ、etfsboot.com、winpe.wimが作られています。

  • ISOフォルダ: WinPE起動イメージのコア部分
  • mountフォルダ: 空フォルダ(Windows PEをカスタマイズするときに使う)
  • etfsboot.com: ブートセクタファイル
  • winpe.wim: Windows PE 3.0の本体が入ったイメージファイル

ISOフォルダの中にCDブートに必要なブートローダーみたいなのが入っていて、要はWindows インストールディスクの雛形のようなものです。ブートしたときに展開されるイメージファイルとしてwinpe.wimを指定すれば、WinPE起動イメージの完成です。

デフォルトのままwinpe.wimを使うこともできますが、不要な機能を消したり、多言語対応などの追加機能を追加したりと、いろいろとwinpe.wimをカスタマイズすることもできます。ここでは、何もせずに展開されたwinpe.wimをそのまま使います。

ヘルプによると、このブートローダーはISO\sources\boot.wimにあるイメージファイルをRAM上に展開する仕組みになっているようなので、winpe.wimをboot.wimとしてそのままコピーすれば完了です。簡単ですね。ちなみにWindows PE 2.0のときはデフォルトでboot.wimが入っていたのですが、3.0の場合は最初は空っぽなようです。

copy C:\WORK\winpe_x86\winpe.wim C:\WORK\winpe_x86\ISO\sources\boot.wim

最後にISOイメージを作ります。ISOイメージを作るツールもWindows AIKの中に入っていて、ヘルプにコマンドも書かれています。親切です。他にもハードディスクやUSBフラッシュメモリからブートするときの方法もヘルプに書かれていました。

oscdimg -n -bc:\work\winpe_x86\etfsboot.com c:\work\winpe_x86\iso c:\work\winpe30_x86.iso

etfsboot.comをブートローダーとして、ISOフォルダをイメージファイルにするというコマンドです。できたファイルが下記です。160MBぐらいでした。

■ 仮想マシンで起動確認

VMware2.0の環境で試してみます。作ったisoイメージを仮想マシンにマウントして、CDブートします。

余談ですが、仮想マシンのBIOS画面の表示タイミングが速すぎて見えない場合は、vmxファイルに次のパラメータを設定することで、強制的にBIOS設定画面を表示させることができます。仮想マシンをシャットダウンするとこのパラメータが勝手にFALSEに置き換わるので、その都度設定する必要があります。

bios.forceSetupOnce = "TRUE"

ブートすると次のようなメッセージが出るので、任意のキーを押します。なお、起動イメージのISO\boot\bootfix.binファイルを消すと、このメッセージは出なくなります。

Windows PE 3.0が起動しました。このプロンプト上でリカバリ作業などを行なうことができます。機能制限はありますが、標準のWindowsコマンドや、単純なGUIアプリケーションであれば起動することができます。

バージョンを確認してみると、確かにWindows 6.1となっています。

例えば、メモ帳を起動して「ファイルを開く」ダイアログボックスを出すことができます。エクスプローラを起動することができませんが、複数のメモ帳でダイアログボックスを開いて、ファイルをD&Dすることは可能なようです。

ここで存在するX:ドライブはRAM上のドライブで、起動イメージの中のwinpe.wimがマウントされています。つまりWindows PEがインストールされたドライブです。もちろん読み書きも可能です。ここはデフォルトで32MBですが、512MBまで拡張可能です。RAM上でWindows PEを動かすため、WinPE3.0の場合はRAM最低要件が512MBとなっています。

Windows PEをシャットダウンするときは次のコマンドを実行します。

wpeutil shutdown