Windows Vista

Windows PE 2.0 に備える

Wes Miller

 

概要:

  • Microsoft Windows Imaging テクノロジ
  • ドライバの更新と保守性
  • 無人セットアップのカスタマイズ

先月号と先々月号の TechNet Magazine では、Windows プレインストール環境 (Windows PE) の生い立ちを紹介し、設計についてのさまざまな決定事項や、現在、Windows® PE をどのように使用できるのかを説明しました。今月は、Windows Vista™ と同時にリリースされる Windows PE 2.0 自体について説明します。ただし、この記事は、Windows PE 2.0 の各機能の使い方を詳しく説明するものではなく、Windows PE 2.0 で導入された新機能の概要を説明します。実践的な情報も多少提供しますが、Windows PE 2.0 の詳しい使い方については、今後の記事で紹介します。

Windows Vista の開発が始まったとき、当時、私が所属していた Windows のセットアップ チームでは、まったく新しいセットアップのアーキテクチャを構築し、展開を支援する新しいイメージング ツールを作成し、リモート インストール サービス (RIS) に代わるものをデザインすることに重点を置いていました。しかし、私たちは、Windows PE の中間バージョンと Windows XP Service Pack 2 (SP2) に焦点を向けることになり、その後は、Windows Server® 2003 SP1 にも焦点を向ける必要がありました。そのため、Windows Vista 対応 Windows PE の開発作業が少し遅れてしまいました。この途中の Windows PE の更新により、当初 Windows PE 2.0 に含める予定であった一部の機能を早い段階で提供できるようになったので、私たちの努力はまったく無駄というわけではありませんでした。

Windows PE チームは、Windows PE 2.0 に含める新しい機能を決める際、持続性と Windows PE ユーザーの一般的な使用事例を重視しました。では、主要な新機能について説明しましょう。

イメージを使用する

Microsoft® Windows Imaging (WIM) テクノロジと Windows 展開サービスには理解する必要がある基本的な概念があります。WIM は、イメージを使用して Windows を展開するためにゼロから設計されたテクノロジです (このイメージは、Sysprep イメージと呼ばれていました)。多くのイメージング ツールと同様に、WIM は、セクタ ベースではなくファイル ベースです。つまり、WIM では、ハード ディスクのすべてのセクタ 1 つ 1 つをレプリケートするのではなく、ハード ディスクと関連付けられているファイルとメタデータ (アクセス制御リスト、短いファイル名、長いファイル名など) を取得し、そのデータを 1 つのファイルに格納します。

WIM イメージを使用する主な利点の 1 つは、1 つの WIM ファイルに複数ボリュームのコピーを格納できることです (各ボリュームのコピーは、ボリューム イメージと呼びます)。キャプチャしたボリュームの数に関係なく、各ファイルは 1 度だけ格納されます。これは "単一インスタンス" と呼ばれます。機能面において、WIM で使用されている技法はリモート インストール サービスで使用されている技法と似ていますが、使用されているテクノロジは大きく異なります。WIM イメージの作成には、ImageX という名前のツールが使用されます (このツールは XImage と呼ばれていた時期もありますが、現在は ImageX という名前になりました)。

Windows Vista と (オペレーティング システムの展開に Windows PE を使用する) イメージ ベースのセットアップ エンジンを開発する際、メディアの領域を節約するために裏技の使用を検討しました。当時、Windows Vista は CD-ROM で出荷されるのか、または DVD で出荷されるのかは未定でした。そのため、セットアップに必要なディスク領域を最小限に抑えるようにする必要がありました。CD-ROM に収録されている Windows PE の構成ファイルのバージョンは、同じく CD-ROM に収録されている WIM ファイルに含まれているファイルと同じなので、WIM ファイルに Windows PE を含め、WIM ファイルから Windows PE を起動することを検討するようになりました。Windows Core オペレーティング システム チームのアーキテクトによるすばらしい作業のおかげで、私たちのアイディアは一連のプロトタイプになり、2003 年に開催された Professional Developers Conference でリリースされた Developer Preview 版 "Longhorn" (現在の Windows Vista) より前に、私たちのアイディアが製品に統合されました。現在、Windows PE はメディアに収録されている WIM ファイル (boot.wim) に含まれており、インストール メディアは別の WIM ファイル (install.wim) に含まれています。当初、私たちが考えていた Windows PE と Windows との間における単一インスタンスは、インストール メディアには含まれていませんが、Windows PE は、ディスク上で圧縮されることでスペースの節約という利点を享受しています。Windows PE 1.6 で導入された RAMDisk のブート機能の統合により、WIM ブート ワークの初期段階でメディアを交換する機能 (ブートアップ完了時にブート CD-ROM や DVD を取り出す機能) が追加されました。

Windows PE イメージを WIM に含めることは、ImageX を使用してファイルを取得したり、ImageX に /boot フラグを渡すことによってイメージが起動可能であることを示すのと同じくらい簡単な作業です (ImageX によるファイルの取得については、今後の記事で紹介します)。ブート セクタについて考えてみましょう。Windows ブート マネージャで WIM ファイルが読み込まれると、/boot フラグに含まれているマーカーにより、WIM ファイルに含まれている、どのイメージが起動可能であるのかが示されます (WIM ファイルには、複数の起動可能なイメージが含まれている場合もあります)。WIM ファイルから起動できるのは Windows PE だけで、Windows Vista を起動することはできません。また、CD-ROM や DVD に収録されている WIM ファイルは読み取り専用です。そのため、WIM イメージから Windows PE を起動したり、イメージに含まれているファイルを編集することはできません。Windows PE に変更を加えるには、WIM ファイル自体を変更する必要があります。

ドライバについて

Windows PE では、大容量記憶装置デバイスやネットワーク デバイスのサポートを重視してきました。もちろん新しいシステムのデバイスについては、Windows PE でサポートしていない事象があることも認識しています。Windows PE 1.5 では、デバイス ドライバの追加に関するサポートが強化されましたが、Windows PE 2.0 では、この機能がさらに効率的になりました。すべての種類のデバイスがサポートされ、すべてのデバイスがコンピュータの起動時に動作するようになりました。つまり、factory.exe や drvinst.exe を実行する必要がなくなりました。Windows PE 2.0 に新しいデバイス ドライバを追加するのに必要な作業は、新しい peimg.exe ツールを実行するだけです。次の例のように、このツールの構文は単純です。

peimg.exe /inf drivername.inf builddirectory\Windows

drivername を .inf ファイルの名前に置き換え (net*.inf のようにワイルドカードを使用することもできます)、builddirectory を Windows PE イメージがあるディレクトリの名前に置き換えます。**

スクラッチ領域

Windows PE で実行しているアプリケーションで発生する問題は、多くの Windows アプリケーションだけでなく、多くの Windows のコンポーネントまでもが書き込み可能な記憶域で実行されるのを前提としていることに起因します。多くのアプリケーションは、CD-R などの読み取り専用メディアから実行されると、望ましくない動作をします。たとえば、Windows PE で Microsoft Internet Explorer® を実行しようとしたときに、主要な DLL が登録されませんでした (その後、MSHTA (Windows コンポーネントの Microsoft HTML アプリケーション) だけを実行しようとしたときも同様でした)。これは、DLL が登録プロセスの一環として行う必要がある一部のタスクで書き込み可能な記憶域を必要とするためです。

Windows PE 2.0 では、ファイル システムによる書き込みに使用できる最大 32 MB のスクラッチ領域があるため、このような問題は発生しません。その結果、Windows PE の読み取り専用という特性によって動作しなかったコンポーネントも、ディスクへの書き込みが行えるため動作するようになります。このスクラッチ領域は、これまでに Windows PE ユーザーが慣例的に使用していた RAMDrive のスクラッチ領域とは異なります。RAMDrive では、スクラッチ領域は別の一時ドライブにありましたが、Windows PE 2.0 では、スクラッチ領域はブート ボリュームと同じボリューム上にあります。

オプション コンポーネント

以前のバージョンの Windows PE と同様に、新しいバージョンの Windows PE にも、機能を追加するためのオプション コンポーネントが用意されています (もちろん、オプション コンポーネントをインストールするとサイズが大きくなるため、これらのコンポーネントはオプションになっています)。また、Windows スクリプト ホスト (WSH)、Windows Management Instrumentation (WMI)、および MSHTA のサポートも引き続き利用できます。新しいバージョンの Windows PE では、MSXML、Windows Vista 回復環境、追加の Windows フォント、Microsoft Data Access Components (MDAC) のサポートが追加できるようになりました (MDAC のサポートは、以前のバージョンで部分的な MDAC のサポートを提供していた ADO for SQL サポートに代わるものです)。オプション コンポーネントに関する最も重要な変更点は、これらのコンポーネントを簡単に追加できるようになったことです。コンポーネントは、荒削りな WSH スクリプトを使用して実装する必要はなく、peimg.exe を使用して簡単に追加または削除することができます (peimg.exe は、ドライバの追加に使用するツールと同じものです)。

言語パック

Windows Vista の当初の基本方針は、Windows 2000 で導入され、Windows XP で改良された多言語ユーザー インターフェイス (MUI) の概念を取り入れ、オペレーティング システム全体に MUI を実装するということでした。Windows 2000 と Windows XP では、英語以外の言語を指定できましたが、MUI 自体は英語版のオペレーティング システムに依存していました。つまり、英語が併記されていれば、他の任意の言語を使用できました。

Windows Vista では、この点が変更されました。詳細については割愛しますが、この変更は Windows PE に大きな影響があることについては説明しましょう。以前のバージョンの Windows PE では、MUI は公式にはサポートされておらず、サポートする必要がある言語のローカライズ版の Windows からイメージを作成する必要がありました。Windows PE 2.0 では、言語のサポートを追加または変更する操作は、他のオプション コンポーネントの追加と削除と同じように行えます。つまり、peimg.exe を使用して、言語パックを追加または削除して、Windows PE のニーズに対応できます。

保守性の強化

以前のバージョンの Windows PE には、保守機能のサポートがありませんでした。Service Pack を追加するには、Windows PE 全体を作成し直す必要がありました。また、修正プログラムを追加する場合も、間に合わせで作り直す必要がありました (それだけ余裕と体力があるなら、という話ですが)。Windows PE には、サイズが小さく、同梱されている Windows の機能に制限があり、長時間に渡って実行できないという特徴があるため、Service Pack や修正プログラムを簡単に追加できないということは大きな問題ではないと考えていました。しかし、不名誉な Blaster の脆弱性により事態が一変しました。Windows PE にはリモート プロシージャ コールが含まれており、特定の条件が揃うと、この脆弱性を利用して、Windows PE が無限に再起動されることがあります。

この問題により、Windows PE 1.5 には Windows ファイアウォールを同梱しました。また、今後リリースする Windows PE では、製品版の Windows と同じように対応するために、Windows PE チームが発足されました。Windows Vista で重視した主な領域の 1 つは、保守性の強化ですが、Windows PE では、これを継承しています。Windows PE は、他のオプション コンポーネントや言語と同様に peimg.exe を使用して更新できます。更新プログラムは Windows ダウンロード センターから入手できます。

無人ファイルのサポート

以前のバージョンの Windows PE で factory.exe という名前の小さいアプリケーションを実行するために使用していた winbom.ini はご存知でしょうか。新しいバージョンの Windows PE では、これらのファイルが別のファイルに置き換えられましたが、Windows PE のカスタマイズに使用できる新しい XML インフラストラクチャと wpeinit.exe という名前の新しいアプリケーションが導入されました (この XML インフラストラクチャは、Windows Vista の無人セットアップに使用される XML メカニズムと同じものです)。

wpeinit.exe では、Windows Vista 標準の unattend.xml 形式を使用して、Windows PE のカスタマイズと操作を指定します。図 1 は、Windows PE のカスタマイズに使用できる unattend.xml のサンプル ファイルです。unattend.xml ファイルの形式については、Windows OEM プレインストール キット (OPK) および Windows 自動インストール キット (WAIK) で説明されています。WAIK については、この記事の最後に説明します。

Figure 1 unattend.xml ファイルのアーキテクチャ

XML ファイル 説明
<ComputerName>MyWinPEMachine</ComputerName>
Windows PE で使用するコンピュータ名を MyWindowsPEMachine と設定します。
<Restart>Shutdown</Restart>
再起動時にシステムをシャットダウンします (以前のバージョンの Windows PE では、リブートされていました)。
<RunSynchronous>
 
<RunSynchronousCommand> <Order>1</Order> <Path>notepad.exe</Path> </RunSynchronousCommand>
notepad.exe を実行します。
<RunSynchronousCommand> <Order>2</Order> <Path>cmd.exe</Path> </RunSynchronousCommand>
notepad.exe の実行が終了すると、cmd.exe を実行します。
</RunSynchronous>
 
<EnableFirewall>true</EnableFirewall>
起動時に Windows ファイアウォールを有効にします。
<PageFile> <Size>1000</Size> <Path>C:\pagefile.sys</Path> </PageFile>
C ドライブに 1 GB のページ ファイルを設定します。
<LogPath>C:\mylog.txt</LogPath>
wpeinit.exe と、このスクリプトの出力を C:\mylog.txt に記録します。

Windows 展開サービス

既に説明したように、Windows PE 2.0 では、セットアップが CD-ROM、DVD、またはネットワークのどこから起動されたかを気にする必要がない統合されたインフラストラクチャに移行することによって、ネットワーク ベースのセットアップを強化することを目標としていました。残念ながら、RIS ベースで Windows をインストールする際には、セットアップ中に相当量の追加の作業が必要になっています。この複雑で冗長な処理を可能な限り取り除くために、Windows 展開サービスを作成しました。

RIS と同様、Windows 展開サービスも PXE ベースのインストールです。Windows 展開サービスでは、Windows 2000 以降、RIS で提供している一元管理されたエンタープライズ インストール インフラストラクチャが提供されますが、RIS と異なるのは、ネットワーク経由で Windows PE を起動し、通常の CD-ROM または DVD ベースのセットアップと同じイメージ ベースのセットアップ インフラストラクチャを使用する点です。WIM と Windows 展開サービスについては説明すべきことがたくさんありますが、今回の記事では割愛します。この 2 つのテクノロジについては、今後の記事で詳しく説明しますので、ご心配なく。今後の記事にご期待ください。

WAIK を使用する

この時点では、Windows PE 2.0 にどのように取り掛かるべきなのかを疑問に思う人もいるでしょう。まずは、WAIK を入手してください。以前のバージョンの Windows PE は、Windows OPK またはソフトウェア アシュアランスのメディアの一部として提供されていました。Windows PE 2.0 は、Windows のライセンスを所持しているすべてのユーザーに提供される予定です。そのためマイクロソフトでは、非 OEM ユーザーのために WAIK を用意しました。

WAIK では、Windows PE 2.0 の独自のコピーを作成するのに必要なすべての Windows PE ビルド ツールが提供されます。現在、WAIK は、Windows Business Desktop Deployment (BDD) 2007 ベータ版の一部として提供されています。BDD では、WAIK に加えて WAIK とビルド ツールの使用方法に関するガイドが提供されています。当然ながら、Windows PE 2.0 と Windows Vista に同梱されている他の新しいセットアップ テクノロジや展開テクノロジを理解するには、できるだけ早い段階で実際に使ってみることをお勧めします。

Windows PE 2.0 の新機能

Windows PE 2.0 には、Windows PE 1.6 のすべての機能と、多数の新しい機能やコンポーネントが追加されています。次にその一部を示します。

  • Microsoft Windows Imaging (WIM) イメージからの起動
  • ドライバの追加とリアルタイムのプラグ アンド プレイのサポート
  • 書き込み可能なスクラッチ領域 (CD-ROM から起動した場合も含む)
  • 簡単に追加できるオプション コンポーネント (Microsoft Core Extensible Markup Language Services、Windows 回復環境、Microsoft Data Access コンポーネント)
  • 言語パック
  • 無人セットアップ ファイルのサポート
  • Windows PE の作成と更新のための強化されたツール

Wes Miller は、テキサス州オースティンにある Pluck (www.pluck.com) の開発マネージャです。以前は、オースティンにある Winternals Software に勤務しており、その前はマイクロソフトで Windows のプログラム マネージャとプロダクト マネージャを兼任していました。Wes の連絡先は、technet@getwired.com です。

© 2008 Microsoft Corporation and CMP Media, LLC. All rights reserved; 許可なしに一部または全体を複製することは禁止されています.