Home −>
PEの作成方法 // 魔法のキキv3

☆ 1.必要なもの   最終更新:2015.3/9

ページ1 −> ページ*


 ここではWindowsPEをコマンドなどを用いて作成することを,原理(?)を含めて解説していきます.一通り動くPEを作るだけならGUIでPEを作れるWinPe-tchを利用した方が楽でしょう.


・ Windows Automated Installation Kit (WindowsAIK)
WindowsPEを作るのに必須.必ずインストールしてください.いくつかのバージョンがある上にMSサイトでの表記がわかりにくいので注意.(なお,XPでは.NET Framework2.0以上を入れることになる,AIKには同封) また,ISO形式であることに注意.

・Windows AIK for PE2.0
 日本語: AIK / 直リン


・Windows AIK for PE2.1
 日本語: AIK / 直リン / MD5:afcffddc5df24594e93a1e9769a63eb5, Size:1,263,761,408byte
 English: AIK / Direct / MD5:B83FAD8FD28E637B82CB4A6BEF7D6920, Size:1,442,787,328byte


・Windows AIK for PE3.0
 日本語: AIK / 直リン / MD5:4253e4cbdb883082a3815e113dbbb7d1, Size:1,771,159,552byte
 English: AIK / Direct / MD5:1E73B24A89ECEAB9D50585B92DB5482F, Size:1,789,542,400byte


・Windows AIK for PE3.1 (手動で? 3.0に上書きする形になります)
 日本語: AIK / 直リン / MD5:6e10c6b12e8c2bf6739d339026b6bcc6, Size:1,412,718,592byte
 English: AIK / Direct / MD5:7337304bfbb025fd298f3e48821e99ce, Size:1,353,234,432byte



・ Windows Assessment and Deployment Kit (WindowsAIK)
Win8時代のWinAIKと言ってもよいだろうか。AIKと違いISO形式でダウンロードではなく、インストーラー(ダウンローダー)を実行して自動的に必要なファイルをダウンロードする方式をとっている。直リンも可能だが、ダウンロードが途中で止まる?ことも多い気がする。気のせい?


・仮想PC (VMwarePlayerやVirtualBoxなど)
無くても製作は可能だが,動作テストに事実上必須であると考えてください.総合的にVMwarePlayerがお勧め.USBが使えなくてもいいならVirtualBoxも.MS製のVirtualPCは性能面で弱いし時代遅れなので却下.

・ライティングソフト (ImgBurnなど)
PEをCD/DVDに書き込むには必須.ISOファイルが書き込み可能であることが条件.もしなければ,フリーウェアのImgBurnやInfraRecorderがお勧めです.もちろん,CD/DVDを書き込むドライブとCD-RかDVD-Rも必要.

・イメージファイルマウントツール (DaemonToolsなど)
AIKはISOファイルでの提供なのでマウントツールは準必須、少なくとも後述の7-Zipとどちらかは必須と考えた方がいい。DaemonTools LiteやAlcohol 52%が有名か.

・7-Zip (Portable)
wimやISOの中身をのぞけるのであると便利.サイズ小さいし関連付けも変えないので入れておいて損することは無い.おまけにPEに組み込めばファイラーの代用にもなる.通常版とPortable版がある.

・WindowsインストールDVD (評価版も可)
無くてもPE自体の製作は可能.IMEやWinREなどAIKに含まれないものを入れるときに必要になる.MSのサイトで無料で手に入る評価版でも可能
特に,Server版は配布期間が長いのでぜひ活用しよう.最近のWinはクライアント版とサーバー版が同一ソースからビルドされており互換性が高いので特にそうだ.IME導入については32bitのIMEは64bitのWinからも抜き出せるので心配することは無い.

・Windows Server 2008 (PE2.1に対応)
 日本語: Server2008 / 直リン(32bit) / 直リン(64bit)
 English: Server2008 / Direct(32bit) / Direct(64bit)


Windows 7 Enterprise (PE3.0に対応) *現在は登録しないと入手できない

・Windows Server 2008 R2 (PE3.0に対応,64bitのみ)
 日本語: Server2008R2 / 直リン(64bit)
 English: Server2008R2 / Direct(64bit)


*↑一部はダウンロードマネージャー必須.IEでアクセスすればOK.


・ビルド環境
PE2.x:Windows 7 / Vista / XP SP3以上
PE3.0:Windows 7 / Vista
もっと詳しく書くとこうなる.なお非対応環境でも後に紹介する方法やWinPe-tch Direct使用などの回避手段もある.ただ,どっちにしろXPsp3以上が実質上必須である.CPUは出来れば仮想化対応の方がいい.メモリは仮想PCを使う関係上最低でも1GBと思った方がよい.HDDは最低でも4GB以上は空き容量があった方がいい.
PE4/5は詳しく調査はしていないが、おおむね同じような感じか。


2.最低限の機能のPEを作ってみる(PE2/3) 


 さて,必要な物をそろえたところでPEを作っていきましょう.コマンドが多く面倒ですが,一つ一つ見ていきましょう.おっと,その前に

PEの起動の仕方には2つある.CDに記録したシステムを,
 1.RAM-Load法 −起動時にRAMドライブにコピーしてそこから起動
 2.Disk-Load法 −直接ディスクから起動し,逐次データーを読み込む



 1の方はディスクの内容をRAMドライブにコピーし,そこから起動する,そのためメモリは512MB以上は欲しい.ただし、現在であれば一切問題にはならないでしょう。WindowsPEの標準はこちら.長所は,起動後はCDへのアクセスが無いのでうるさくない,CDを抜いてしまえば他のCDを読み書きできる,そして互換性が高いこと.短所は多くのメモリが必要なこと.
 2の方はディスクを直接読みながら起動する.BartPEや1CDLinuxはこちらに近い.長所は1に比べてメモリ消費が少ないこと.短所はCDのドライブを1つふさいでしまうこと.
現在はRAM-Load一択。RAMが400MB以下のマシンなんて絶滅危惧種だし。なお、私がWPD作った(2010)ときは一部に残ってたんだ、これが。なお,この2つをデュアルブートにすることも出来る.なお,RAM-Load法やDisk-Load法という名前は当サイトで勝手につけた名前なので,他では通じない可能性が高いので注意.

まずは共通部分.

 まずはWindowsAIKのインストールが必要.ダウンロードしたAIKのISOイメージファイルをマウント(またはCD/DVDに書き込み),その中のsetupを開き,インストールを開始する.XPで.NET Framework2以降やMS-XML6.0以上が入っていない場合はそこで入れる.

 次に,PE用のコマンドプロンプトの起動.スタートメニューから,WinAIKの専用コマンドプロンプトを起動する(ただし,Vista以上でUACが有効であれば,右クリックから管理者で実行を選ぶこと!).すると,PE用のコマンドプロンプトが起動する.通常のとの違いは,WinAIKにパスが通っているかどうかだ.例えば通常のコマンドプロンプトからpeimgあるいはdismと打っても何も起こらないが,PE用のコマンドプロンプトはパスが通っているので実行される.


・必要なファイルの作成

 起動した専用のコマンドプロンプトで,以下のように打ち込む.なお,ここではI:\winpe_x86以下に作成しています.

☆ - - - - - - - - - - - - - - - - - - - - - - -
copype <CPUアーキテクチャ> <出力先>
   (( 実際には,このように↓
copype x86 "I:\winpe_x86"
☆ - - - - - - - - - - - - - - - - - - - - - - -

 アーキテクチャはCPUの種類で32bitのPEならx86を指定.出力先のI:\winpe_x86フォルダは先に作っておくとエラーになるので注意.


2.1.RAM-Load法 (標準,メモリにコピーして起動)

 ファイルが出力された場所を開いてみましょう.100MB以上あるwimファイルがありますね.これがWinPEのシステムファイル.boot(BIOS起動)もしくはefi(EFI起動)フォルダのブートローダーからwimファイルが読み込まれることによりPEが起動する.
 RAM-Load法の場合は,このboot.wimをiso\sourceフォルダにコピーして(PE3のみ,2は不要),そのまま3のISO作成(下↓の方)を行ってしまえばそれだけでPEができてしまう.ただし,これは一切カスタマイズを行わないとき.

 PEをカスタマイズするにはwimファイルの中を書き換えるが,それにはimagexコマンドでwimをマウントすればよい(PE3ではdismコマンドも可能).ISOファイルなどと違い書き換え可能でマウントできる.

☆ - - - - - - - - - - - - - - - - - - - - - - -
imagex /mountrw <対象のwimファイル> 1 <マウント先フォルダ>
   (( 実際には,このように↓
imagex /mountrw "I:\winpe_x86\winpe.wim" 1 "I:\winpe_x86\mount"
☆ - - - - - - - - - - - - - - - - - - - - - - -

 <マウント先フォルダ>は,wimファイルをマウントしたときに表示するフォルダだ.フォルダ自体は中身が空で存在する必要がある.このコマンドにより%WinPEDir%\mountにwimファイルの中身が映し出され,操作することが出来る.
 中身をカスタマイズするときは,

ドライバの組込み,パッケージの追加/削除
ソフトを組込んでみる


 あたりを参考に,mountフォルダ以下の編集をいろいろと行うと良い.特にPE2の時はpeimg /prepコマンドにより最適化をかけておくことを勧める.

 編集が終わったらアンマウントしてイメージファイルに戻す必要がある.変更を反映するために/commitオプションで変更も適用しましょう.

☆ - - - - - - - - - - - - - - - - - - - - - - -
imagex /unmount <マウント中のフォルダ> /commit
   (( 実際には,このように↓
imagex /unmount "I:\winpe_x86\mount" /commit
☆ - - - - - - - - - - - - - - - - - - - - - - -

補足:dismコマンドを利用した場合
マウント
☆ - - - - - - - - - - - - - - - - - - - - - - -
dism /Mount-Wim /WimFile:<wimファイル> /index:1 /MountDir:<マウント先>
   (( 実際には,このように↓
dism /Mount-Wim /WimFile:I:\winpe_x86\winpe.wim /index:1 /MountDir:I:\winpe_x86\winpe.wim
☆ - - - - - - - - - - - - - - - - - - - - - - -

アンマウント
☆ - - - - - - - - - - - - - - - - - - - - - - -
dism /Unmount-Wim /MountDir:<マウント中のフォルダ> /Commit
   (( 実際には,このように↓
dism /Unmount-Wim /MountDir:I:\winpe_x86\mount /Commit
☆ - - - - - - - - - - - - - - - - - - - - - - -


 ソフトやファイルについては,ここで追加するほかに,wimファイルを閉じた後に追加する方法もある.
 ところで,PEを実際に起動させるとこうなります.



 RAMドライブに展開されたwimファイルがXドライブ,CDはDドライブかそこらになっている.XドライブはRAMドライブでありwimファイルの中身が正体で書き換えも可能,その反面メモリを圧迫する.CDドライブはbootフォルダなどがある部分が正体であり,読み込み専用(?)だがメモリは圧迫しない.
 システムフォルダに関連するファイルはwimファイルに組み込むとして,それ以外のファイルはwimファイルに入れた方がいいのか入れない方がいいのか.@ITではできればwimの外に入れるべきとあったが...個人的な意見だが,メモリの量を気にするくらいなら始めからDisk-Load法を使った方がいいだろう.


2.2.Disk-Load法 (ディスクから直接起動,省メモリ)

 copypeコマンドを行った後はこんな風になっている.このままだとwimファイルから起動するRAM-Load法になる.Disk-Load法でCD-Rから直接起動するには,wimファイルを解凍する必要がある.

 PE2/3ではimagexを使用してwimファイルを解凍(展開)する.PE3ではdismコマンドも使えるがここではimagexコマンドを使う.

☆ - - - - - - - - - - - - - - - - - - - - - - -
imagex /apply <対象のwimファイル> 1 <展開先>
   (( 実際には,このように↓
imagex /apply "I:\winpe_x86\winpe.wim" 1 "I:\winpe_x86\mount"
☆ - - - - - - - - - - - - - - - - - - - - - - -

 中身をカスタマイズするときは,

ドライバの組込み,パッケージの追加/削除
ソフトを組込んでみる


 あたりを参考にいろいろと行うと良い.またPE2の時はpeimg /prepコマンドにより最適化をかけておくことを勧める.

☆ - - - - - - - - - - - - - - - - - - - - - - -
peimg /prep <ターゲットのWindowsフォルダ>
   (( 実際には,このように↓
peimg /prep "I:\winpe_x86\mount\windows"
☆ - - - - - - - - - - - - - - - - - - - - - - -

 編集が終わったら,bootフォルダをコピーする.PEのデフォルトはRAM-Load法であり,そのままだと起動に関係するファイル(BCD)がうまく動かないので,修正してあげる必要がある.
 Vista以降はboot.iniではなくBCDというファイルに起動設定を記述する.メモ帳ではなくコマンドで作成する.本来は自分で作ってほしいのだが,いろいろと面倒くさいのでこちらで作成したファイルを使ってみてください.BCDのファイルの作り方,マルチブートのやり方はマルチブート関連で後述するので,そちらを参照してください.


 Disk-Load法で作って起動するとこうなる.ごく普通ですね.


3.ISO作成〜CDへ書き込み,USB起動,起動テスト 


 CDに含めるファイルが確定したら,oscdimgコマンドを利用してISOファイルを作成する.USBメモリ起動では不要.

☆ - - - - - - - - - - - - - - - - - - - - - - -
oscdimg -n -m -o -b<ブートセクタ> <作成対象> <出力先>
   (( 実際には,このように↓ (もちろん,実際は1行で記述すること)
oscdimg -n -m -o -b"I:\winpe_x86\etfsboot.com" I:\winpe_x86\mount I:\winpe_x86\WinPE.iso
☆ - - - - - - - - - - - - - - - - - - - - - - -

 ここで注意するのは,-bとブートセクタ指定の間にスペースは入れないことだ.

 補足:参考までにmkisofsを利用する場合も書いておく.oscdimgは自身のパスに全角があると起動しないときがあるし,オプションの豊富さはこちらの方が上.ISO作成速度はoscdimgの方が速いと思うが.ま,ぶっちゃけ自分もmkisofs推奨だw
☆ - - - - - - - - - - - - - - - - - - - - - - -
mkisofs -iso-level 4 -b <ブートセクタ> -no-emul-boot -duplicates-once -V "<CDのラベル名>" -o <作成対象> <出力先>
   (( 実際には,このように↓ (もちろん,実際は1行で記述すること)
<mkisofsのフォルダ>\mkisofs -iso-level 4 -b "boot/etfsboot.com" -no-emul-boot -duplicates-once -V "WinPE" -o "I:\winpe_x86\WinPE.iso" "I:\winpe_x86\mount"
☆ - - - - - - - - - - - - - - - - - - - - - - -



・仮想PCを利用した起動テスト

 一回試しただけでは望み通りのPEはなかなかできないはず.CD-Rと時間を無駄にしないためにも仮想PCを使って動作テストを勧めておく.どの仮想PCも,CD/DVDのところで,作ったISOファイルを指定すれば大丈夫なはず.ハードディスクは作らなくてもよい.OSのバージョン指定はVistaあるいは7にしておけばよいだろう.


・CD-Rへの書き込み

 ISOファイルを,イメージファイルとして書き込み.Windows7であればダブルクリックで手軽に書き込める.XPであれば何らかのライティングソフトがあればいいが,ImgBurnあたりがわかりやすいだろう.ファイルとしてではなく,イメージファイルとして書き込むこと.間違えて,ISOファイルがCDの中にぽつーんをやらないように.


ImgBurnならこんな感じで.


ありがちな失敗例.


・USBメモリからの起動

 CD起動は互換性は高いが起動はのろい.USBメモリからなら素早く起動できる.そのままだとたぶん起動できないので,最初に領域確保を行う必要がある.Vista/7/PEのdiskpartコマンドが必要なので,XPの場合はCD版を作ってそこからdiskpartコマンドがいいだろう.もしくはPeToUSBなどのソフトを使う方法もある.
 まずは,コマンドプロンプトを,右クリックの"管理者として実行"から起動する.次にコマンドを打っていく.

☆ - - - - - - - - - - - - - - - - - - - - - - -
> diskpart
☆ - - - - - - - - - - - - - - - - - - - - - - -
diskpartが起動する.

☆ - - - - - - - - - - - - - - - - - - - - - - -
> list disk
☆ - - - - - - - - - - - - - - - - - - - - - - -
ディスクのリストが表示されるので,USBメモリがどれか容量などで把握する.

☆ - - - - - - - - - - - - - - - - - - - - - - -
> select disk (↑で出たUSBメモリの番号)
☆ - - - - - - - - - - - - - - - - - - - - - - -
USBメモリを選択する.絶対に間違えないこと.

☆ - - - - - - - - - - - - - - - - - - - - - - -
> clean
☆ - - - - - - - - - - - - - - - - - - - - - - -
USBメモリ,内容が全部消えます.

☆ - - - - - - - - - - - - - - - - - - - - - - -
> create partition primary
> select partition 1
> active
> format fs=fat32 quick
> assign
> list volume
☆ - - - - - - - - - - - - - - - - - - - - - - -
後は順番に実行.list volumeで,ドライブレターを確認.

USBメモリへのコピーはxcopyコマンドで,
☆ - - - - - - - - - - - - - - - - - - - - - - -
xcopy I:\winpe_x86\mount\*.*" /cherky <USBメモリのドライブレター>:\
☆ - - - - - - - - - - - - - - - - - - - - - - -
といった感じにしてもいいが,隠しファイル等を表示する設定であればエクスプローラーなどで単純にコピーしても良い.もちろん,USBメモリ直下にbootフォルダやbootmgrファイルなどがくるようにコピーすること.

なお,それでも起動できないときは,Win7用のブートセクタを書き込むと認識率が上がるらしい.これも行う対象を間違えると大変なことになると思われるので注意.
☆ - - - - - - - - - - - - - - - - - - - - - - -
bootsect /nt60 <USBメモリのドライブレター>:
☆ - - - - - - - - - - - - - - - - - - - - - - -
bootsectコマンドはWindowsAIKにしか含まれていないので,使うときはWindowsAIKのコマンドプロンプトから実行する必要がある.なお、Direct/Miniで一度PE作るとcmdappsにコピーされるのでそちらでも。もちろん管理者権限で.また,PE上で実行するときはPEのsystem32フォルダにコピーする必要がある.このとき,必ず作るPEと同じアーキテクチャのbootsect.exeをコピーすること.通常はx86だろう.


 どっちみち,一度領域確保してしまえば,ファイルの方は上書きコピーで更新できるので,領域確保&フォーマットだけ間違わないように確実に行いましょう.



ページ1 −> ページ*


Home −>
広告Scriptは http://x6.syakuhati.com/ufo/089822600 です,Adblockする人へ.