Windows 7 の 製品版(RTM) に合わせて Windows Preinstallation Environment 3.0 こと WindowsPE3.0
、さらに縮めて WinPE3.0 の正式版が利用可能になったので、とりあえずメモ。
Windows Automated Installation Kit for Windows 7 こと Windows AIK for Windows
7 に含まれているのが WinPE3.0 。
個人的には最近めっきり使う機会が減ったものの、新しい事は良い事だ、という事で。
Windows 7 世代になったおかげで対応するデバイスが増えて、nVidia の AHCI 等の WindowsPE 2.0 ではドライバーが別途必要だったものが特に追加しなくてもよくなっていたり使えるものが増えている点では便利。
なお、微妙に長いので WindowsPE3.0 を WinPE3.0 もしくは単に WinPE、Windows Automated Installation
Kit for Windows 7 を WindowsAIK もしくは WAIK、と略す。
また、この記事では特に断り無くバージョンが書いていない場合、WindowsPE2.0/2.1 は含まず、基本的に全て WinPE3.0 のことを指す。さらに、日本語版
WindowsAIK 、日本語版 WindowsPE を前提にしているのでご承知おきを。
準備調達物
- Windows AIK
入手は ダウンロードセンターから
Windows 7 用の Windows 自動インストール キット (AIK) / 英語版
【2011/02/18:追記】
先日の Windows7 SP1 提供開始(MSDNなど)に時期を同じくして、もともと WAIK のダウンロードだったものがWAIKフルセットではないサプリメント? (waik_supplement_ja-jp.iso)に置き換わってしまっています。
【2011/02/19:追記】
本日の 『Windows7 SP1 統合日本語版』など提供開始(MSDNなど)に時期を前後して、今度はサプリメント?の方がダウンロードセンターから消えて、元々のこれまでのWAIKフルセットがリンク先に復活。
状況からしてしばらくすれば WindowsPE3.1 の方も復活すると思われるものの、リンクを確認したついでに 2011/02/19 20:18 現在の直リン。
リンク先が消失あるいは変更されても今後このリンクは更新しません。
将来的に変更される可能性があるので、
ダウンロードセンターから検索してダウンロードすることを強くおすすめします。
- 日本語版の WAIK(約1.6GB) の isoイメージ には英語版のドキュメントも入っているので、ドキュメントのためだけに英語版(約1.7GB)を落とす必要はない
- OSのサポート自体が基本的に終わっている WindowsXP はサポート環境から外れている
- WindowsXP(32bit/64bit) で WAIK のインストールがインストーラに蹴られる事はない、が動作が色々おかしい
- WAIK の isoイメージの Hotfix フォルダには WindowsXP の KB914882 が入っていたりするのは抜き忘れなのか Microsoft
の親心なのか
- 仮想マシン環境
必須ではないものの仮想マシン環境があれば、32bit/64bit をそれぞれ試す場合には何かと便利、というより無いとやっていられない
何でも良いので好みに応じて適当に
- isoイメージを扱える仮想ドライブもしくはアーカイバなど
isoイメージ(1.7GB程度)で提供されている WAIK をいちいち DVD に焼くのは面倒
- iso をマウントできる DAEMON Tools などの仮想ドライブ
- isoイメージを解凍できる 7-zip などのアーカイバ
など好みに応じて適当に
7-zip は isoイメージ だけでなく、wimイメージ も解凍可能(中身の確認可能)なので入れておくと便利
- ブートさせるもの
WindowsPE をブートさせたいもの、環境を準備
- ブータブルCD/DVD を作成するなら isoイメージを焼くためのライティングソフトとブランクメディア
- ブータブルUSBメモリ を作成するなら、中身を消しても構わない USBメモリ
- PXEブートさせるなら、PXEブート環境
など
最近の傾向ならブータブルUSBメモリ作成が主流かと思われる
- Windows 7
WinPE3.0 に IME を追加するなら Windows 7 が正当
ここでは、ブータブルUSBメモリの作成手順を一通り行う。
インストール準備
WindowsPE3.0 の Beta版、RC版、もしくは WindowsPE2.1や WindowsPE2.0 など別のバージョンの何かをインストールしていたらまずアンインストール。
- 以前のバージョンのアンインストール
普通に「プログラムの追加と削除」で
- 再起動要求で再起動
再起動がかかるので、うっかり 「はい」 でなにかを保存し忘れないように注意するぐらい。
Windows AIK のインストールとドキュメント
- とりあえず WAIK の isoイメージの readme.htm と Docs\Whitepapers の stepbystep_itpro.htm
を読む
- Docs\CHMs フォルダに ヘルプファイルがあるので、事前に WinPE.chm 、WinAIK.chm あたりも目を通しておく事もおすすめ
English に英語ドキュメントが用意されているので、何処か適当な場所にコピーしておくと便利かも
- 必要に応じてシステム要件を満たすように入れるべきものを入れる
(諸々承知の上で XP SP2 にてレジストリハイブを触るなら こちら も)
- WAIK をインストール
StartCD.exe を実行してダイアログに従ってインストール
- コマンドプロンプトの調整
作業の効率化のための設定変更をするべく [スタート]→[すべてのプログラム] → [Microsoft Windows AIK] の「 Deployment
ツールのコマンド プロンプト 」のプロパティを開く
- 『ショートカット』の『詳細設定』を選択
- 『管理者として実行』にチェック
- 『オプション』を選択
- 編集オプションの『簡易編集モード』にチェック
- コマンドの履歴の『バッファーサイズ』を『200』、『バッファー数』を『20』程度に増やす、『重複する古い履歴を破棄』にチェック
『簡易編集モード』にするとプロンプト内でのマウスのドラッグで選択が直ちに可能になり、選択時右クリックでコピー、非選択時にペーストができるようになる
この動作が不要ならチェックしない
- 『レイアウト』を選択
- 画面バッファーのサイズの『高さ』を最大の『9999』に
- ウィンドウのサイズの『幅』を『100』程度に(画面バッファーのサイズの『幅』も連動するので適当に合わせる)
- ウィンドウのサイズの『高さ』を『35』程度に
ここでのウィンドウサイズの幅と高さは広くすると結構邪魔にもなるので好みで
- 『適用』→『OK』でプロパティダイアログを閉じる
- UAC のダイアログが出たら素直に『続行』
WAIK のダウンロード前にオンラインで readme を読むなら、TechNetで 日本語:Beta版 / 英語:正式版 (2009/08/07現在)。
インストール後に、 WinPE.chm は [Windows PE ユーザーズ ガイド]、WinAIK.chm は [Windows 自動インストール
キット ユーザーズ ガイド] としてメニューに出てくる。これらのドキュメントの内容は何の前触れもなく互いに言及している事があり [Windows
PE ユーザーズ ガイド] だけを読んでいても話が見えてこない場合があるので注意。
なお日本語ドキュメントが WinPE2.0 のころからいい加減な出来なのは相変わらず。最初に読ませるべきであろうドキュメントからしておかしい。WAIK
インストール後なら 「ステップ バイ ステップ ガイド - IT プロ用 Windows の基本展開」 としてスタートメニューに追加される、
Docs/Whitepapers/stepbystep_itpro.htm
は 2行目あたりに見える <b> で、ドキュメントのやる気、本気の程度が知れるというより、もはや”ツッコミ期待でリリースしたとしか思えない”ので、めげない様に。普段ならスルーできる『CD-R
や DVD-R じゃなく「空の CD-ROM / blank CD-ROM」 なんて貴重なものが何処で手にはいるのか』とか・・・、ささくれ立った気持ちにならないよう寛容な心で読んでいく。
WinPE3.0 のイメージ作成の前に
インストールすると [スタート]→[すべてのプログラム] → [Microsoft Windows AIK] ができているはず。
WinPE の基本的な作成手順は [Microsoft Windows AIK] → [Documentation] → [Windows PE
ユーザーズ ガイド] の
「Windows PE をカスタマイズする」
→ 「Windows PE のチュートリアル」
に幾つかのパターンで説明されているのでどれか一つ合致するものをやってみることをおすすめ。
ドライバーの追加や IME の追加などのカスタマイズに関しては [Windows PE ユーザーズ ガイド] の
「Windows PE をカスタマイズする」
→ 「Windows PE のカスタマイズ方法に関するトピック」
に情報のとっかかりがあるので適当に目を通しておく。
IME の追加に関しては有る事を把握する程度で軽く適当に読む(2009/08/08 現在) ★後述★。
ここからは、 x86版 WinPE をブータブルUSBメモリで作成する場合の作業の簡単な流れ。
内容的には 「 チュートリアル: 起動可能な Windows PE RAM ディスクを UFD に作成する 」に適当なカスタマイズを追加した程度。
ビルド環境作成場所は d:\winpe\pe30x86 にする。
ここからのコマンドは基本的に全て一行で入力。
WinPE3.0 のイメージ作成
- [スタート] → [Microsoft Windows AIK] の 「 Deployment ツールのコマンド プロンプト 」を実行
- 必要ファイルをコピーする
>copype <アーキテクチャ> <コピー先>
となる。 x86版を d:\winpe\pe30x86 にコピーしたいので次のように。
>copype x86 d:\winpe\pe30x86
作成場所に既存のフォルダがある場合エラーになるので注意。
上位ディレクトリとなる d:\winpe は無くても自動的に作成されるので事前に作っておく必要はない。
このコピー後、プロンプトのカレントディレクトリがコピー先(ここでは d:\winpe\pe30x86 )になっている事には留意。
- WinPE ビルド環境のコピーが完了したら、基本イメージ (winpe.wim) を boot.wim に名前を変えてコピー
>copy winpe.wim boot.wim
作業性を考えてなるべく浅い階層(カレントディレクトリ)にコピーし、後で d:\winpe\pe30x86\ISO\sources へコピーしなおす。
- wimファイルを読み書き可能でマウント
>dism /Mount-Wim /WimFile:<wimへのパス> /Index:<番号> /MountDir:<マウント場所>
となる。boot.wim を D:\winpe\pe30x86\mount に読み書き可能な状態でマウントしたいので
>dism /mount-wim /wimfile:d:\winpe\pe30x86\boot.wim /index:1 /mountdir:d:\winpe\pe30x86\mount
とする。
相対パスでも動作し、相対パスにすると次のようにのようにスッキリして入力も楽。
>dism /mount-wim /wimfile:boot.wim /index:1 /mountdir:mount
ただしこの記事では、相対パスだと何をしているのか分からなくなりがちなので、読みにくくなるを承知の上で以降は絶対パスで表記する。
imagex で書き込み可能でマウントする場合は次
>imagex /mountrw d:\winpe\pe30x86\boot.wim 1 d:\winpe\pe30x86\mount
boot.wim の index 1 を mount へマウントした例。
- パッケージの内容を確認してみる
>dism /Image:<マウント場所> /Get-Packages
なので
>dism /image:d:\winpe\pe30x86\mount /get-packages
として確認。
- 練習を兼ねてパッケージの追加をしてみる
>dism /Image:<マウント場所> /Add-Package /PackagePath:<パッケージへのパス>
が基本で、言語に非依存パッケージ⇒言語依存パッケージ とペアで追加するので、 WinPE-Scripting パッケージ追加の場合
>dism /image:d:\winpe\pe30x86\mount /add-package /packagepath:"C:\Program
Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\winpe-scripting.cab"
>dism /image:d:\winpe\pe30x86\mount /add-package /packagepath:"C:\Program
Files\Windows AIK\Tools\PETools\x86\WinPE_FPs\ja-jp\winpe-scripting_ja-jp.cab"
のようにして追加。
全ての追加が完了したら /Get-Packages で内容も再確認
- 練習を兼ねてドライバーの追加(削除)をしてみる
少々余分なものが追加されても構わない、余分が追加されるおそれが無い場合はフォルダ指定の方が楽
>dism /Image:<マウント場所> /Add-Driver /Driver:<.infのあるフォルダ>
とすれば良いので、nVidia の nforce の AHCI ドライバーを追加してみる。ドライバーは d:\winpe\pe30x86\sata_ide に用意して次のようにする。
>dism /image:d:\winpe\pe30x86\mount /add-driver /driver:d:\winpe\pe30x86\sata_ide
一つずつ追加するよりドライバーをまとめたフォルダを用意して /Recurse オプションでサブフォルダごと追加させるとさらに楽
d:\winpe\pe30x86\drivers\sata_ide と d:\winpe\pe30x86\drivers\Ethernet のように用意した時
>dism /image:d:\winpe\pe30x86\mount /add-driver /driver:d:\winpe\pe30x86\drivers
/recurse
とすると、drivers 配下の sata_ide と Ethernet が追加される。
追加したドライバー(サードパーティのドライバー)の確認は
>dism /Image:<マウント場所> /Get-Drivers
とすれば良いので
>dism /image:d:\winpe\pe30x86\mount /get-drivers
のように確認。
追加したドライバーを削除する時は追加後の infファイル名 「例: oem0.inf 」が必要になるので /Get-Drivers で「公開名」と「元のファイル名」を確認してから削除
>dism /Image:<マウント場所> /Get-Drivers
(メッセージ省略:ここで公開名を確認)
>dism /Image:<マウント場所> /Remove-Driver /Driver:<inf公開名>
(メッセージ省略)
とすれば良いので
>dism /image:d:\winpe\pe30x86\mount /get-drivers
(メッセージ省略:ここで公開名を確認 "oem0.inf" )
>dism /image:d:\winpe\pe30x86\mount /remove-driver /Driver:oem0.inf
のように削除。
全ての追加(削除)が完了したら /Get-Drivers で再確認。
- WinPE 起動時の RAMディスク のスクラッチサイズ(RAMディスクの自由に使える空きのサイズ)を変更してみる
増やしても使いきる事はまず無いし、余計に確保することでメモリを圧迫するのも事実だし、HDD/SSD や USBメモリに書き込めば済む話でもあるのでHW構成と実運用面と相談しながら変更、などと慎重な事は言わず、ドーンと上限まで割り当ててみる。
>dism /Image:<マウント場所> /Set-ScratchSpace:<size>
であり、size には 32,64,128,256,512 が割り当て可能。上限の 512MB は
>dism /image:d:\winpe\pe30x86\mount /set-scratchspace:512
のように指定。
スクラッチサイズを大きくすると、仮想マシンで実行する時には途端に鬱陶しい事にもなるので注意。
- よく使うユーティリティ、アプリケーションを追加する
d:\winpe\pe30x86\mount\apps\editor のように mount したフォルダ内に直接置く。
追加したファイルサイズ分だけ起動に時間がかかるようにもなるので、大きなもの、使用頻度の低いものなどはUSBメモリ上から実行するなど、適宜使い分ける。
何も追加しないのも寂しいので、timeout.exe、choice.exe などを d:\winpe\pe30x86\mount\widows\system32 へコピーしてみる。
(アクセス権云々やアンマウント時の事を考慮すると、プロンプトで copy や xcopy を使ってコピーした方が良いかも)
- 日本語 IME を追加
必要な状況は少ないものの、WinPE で起動した後そのPCでメモって保存する時に日本語で打ち込めると楽。
必要に応じて追加。
手順をヘルプの記述まま鵜呑みにするとハマるので要注意。 【2009/08/08 現在】
[Windows PE ユーザーズ ガイド]の
→ Windows PE をカスタマイズする
→ Windows PE のカスタマイズ方法に関するトピック
→ Input Method Editor (IME) を Windows PE に追加する
にある日本語IME用のバッチファイルのには有るべき改行がいくつも抜けているので、そのままコピー&ペーストで作成すると確実に失敗する。
修正すると最終的には WinPE2.0/2.1 の時と同じバッチファイルとなるので、チマチマ修正するより
KB926181 : Windows PE 2.0 に Input Method Editor (IME) サポートを追加する方法
にあるサンプルをコピー&ペーストしてバッチファイルを編集作成する方が早い。
【補足】
64bit の OS 上で 32bit版 WinPE を作成し IME を追加する場合には バッチファイル内の
「%IMEBinSrc%\System32」
を
「%IMEBinSrc%\SysWOW64」
に全て置換
- キーボードレイアウトを変更する 【通常は必要ない作業】
WinPE 起動直後から英語キーボード配列にしたい時に
>dism /Image:<マウント場所> /Set-LayeredDriver:<番号>
上記のようにレイアウトは番号で指定し 「101キーボードは 1 」、「106/109キーボードは 6 」。101配列に変更する時は
>dism /image:d:\winpe\pe30x86\mount /set-layereddriver:1
のようにする。106/109配列に戻す時は 6 を指定。
キーボードの設定を含む言語設定全般を確認するには
>dism /Image:<マウント場所> /Get-Intl
なので
>dism /image:d:\winpe\pe30x86\mount /get-intl
のように確認する。
【余談】
101配列のPCしかない、106配列キーボードをストレス無く101配列として使える、むしろ106配列だと困る、などの比較的レア?な場合には101配列への変更が効果的。
WinPE 起動後に wpeutil コマンドでキーボード配列を変更する場合、日本語 WinPE なら 106⇒101 はコピペで済んで簡単だけれど、101⇒106
は(準備しなければ)面倒なので、これを考慮すると日本語106配列のままの方が汎用性を考えれば無難といえば無難。
- 変更を保存する
変更を保存してマウントを解除するには次のように /Commit 。
>dism /Unmount-Wim /MountDir:<マウント場所> /Commit
実際には下記。
>dism /Unmount-Wim /MountDir:d:\winpe\pe30x86\mount /Commit
変更を保存せずに破棄して終了する時には /Commit に代えて /Discard 。
imagex でマウントした場合に保存してアンマウントする時は次。
>imagex /unmount /commit d:\winpe\pe30x86\mount
mount へ加えた変更を 保存 /commit した例。保存したくない時は /commit を付加せずに実行。
- アンマウントが完了したら boot.wim を d:\winpe\pe30x86\ISO\sources にコピーする
何かおかしなマウント(アンマウント)状態になったら
>dism /Cleanup-Wim
してみるのも一つの手。
WinPE3.0 のイメージの動作確認 (仮想マシンにて)
一旦 isoイメージを作成して仮想マシンで動作確認をする。
既存のブータブルUSBメモリのwim差し替え、PXEブートでwim差し替えだけで完結、などの場合を除いて仮想マシンで一応動作チェック。
仮想マシンで動作確認をせずに、直接ブータブルUSBメモリを作成する場合はスキップ。
- isoイメージファイルの作成
基本的には次のコマンドで作成可能。
>oscdimg -n -b<etfsboot.comへのパス> <ISOのターゲットフォルダ> <ISOファイルへのパス>
実際には次のように作成
>oscdimg -n -bd:\winpe\pe30x86\etfsboot.com d:\winpe\pe30x86\ISO d:\winpe\pe30x86\pe30x86.iso
- 適切な設定をした仮想マシンで、作成した WinPE3.0 の isoイメージをマウントして動作確認
問題なければ引き続きブータブルUSBメモリの作成に。
WinPE3.0 のブータブルUSBメモリ作成
中身が消えても構わない USBメモリを用意してPCに取り付け。
- プロンプトから diskpart を実行
>diskpart
DISKPART>list disk
DISKPART>select disk <該当するdisk番号>
DISKPART>clean
DISKPART>create partition primary
DISKPART>list partition
DISKPART>select partition 1
DISKPART>active
DISKPART>format fs=fat32 label=flash
DISKPART>assign
DISKPART>exit
基本は上のパターン
disk 番号の確認と partition の確認はその都度しておいた方が無難
既存のブータブルUSBメモリの .wim ファイル差し替えのみならこのステップは省略
- WinPE のイメージ、「ISO 配下のファイルとフォルダ」を全てUSBメモリへコピーする
- RAMディスク上には配置しない(wimに含めない)ツール類をUSBメモリにコピー
- ブータブルUSBメモリから起動して動作確認
何事も問題なければ作成終了。
自blog内の関連リンク 【2009/08/23 追加】
WinPE2.0/2.1 での方法が WinPE3.0 でまるで使えない技という訳でもないので、参考用に
【雑感】
ブータブルUSBメモリをひっさしぶりに作った、何か懐かしいより新鮮だった。
OS自体のサポートが終わっている WindowsXP 。
それでも WindowsAIK for Windows 7 のインストールはエラーもなく可能。
dism がエラーを吐くので dism のみで変更を加えるのは無理でも初期状態のままなら、WinPE3.0 のブータブルなにかは作成可能。
ブータブルUSBなどから起動した WindowsPE3.0 環境から、dism コマンドなど一通りの wim作成は可能っぽい。
仮想マシンで主な作業を行えば、言葉遊びに近いながらも WindowsXP(+VMのWinPE) 上で WindowsPE3.0 が行ける?!
正攻法で純粋に WindowsXP 上で dism がエラーを吐かずに実行できる技をお持ちの方、
是非その技を教えて下さい。
【追記&補足】
2009/08/09
- 恥ずかしい語句の間違いをひっそり訂正
- タイポ&日本語として変な所&コピペ忘れ&意味の分かりにくい所、を修正
- 幾つかの場所を太字にして強調
2009/08/23
- 2週間ほど待ったものの想定していたコメントが無かったので当初の予定どおりマウントに関して & それに付随的な説明を追加
- WinPE2.0/2.1 関連へのリンクを追加