Monday, March 12, 2012

Bart's PE Builder FAQ



lang="ja"> Bart's PE Builder FAQ

Bart's PE Builder FAQ

自身の体験と、2ch の BartPE スレによる "Bart's PE Builder" FAQ (Tips) です。話の内容に多少バイアスが掛かっている箇所が見受けられるかもしれませんが、そこはそれ、個人サイトという事でご勘弁願います m(_ _)m



参考系:
ビルド時のトラブル:
起動時のトラブル:
起動後のトラブル:
~ができません:
質問系:
疑問系:

スクラップブック:


これです。日本語訳するとこんな感じです。
  1. Q: PEBuilder を使う事は Microsoft から WinPE のライセンスを認可されたと考えていいのですか?
    A: いいえ。
  2. Q: PE Builder を使用した結果、システム及びソフトウェアで起こる問題を Microsoft はサポートしてくれるのですか?
    A: いいえ。
  3. Q:  最新のβリリースはどこにあるのですか?
    A: 911 CD Announcements forumにあります。
  4. Q: BartPE 起動時に "File \i386\system32\ntoskrnl.exe could not be loaded. The error code is 14" というエラーが出るのですが?
    A: SP が正常にあてられていません。
    3.1.3 から SP を簡単に適用する方法を提供していますが、英語版以外では正しく動作しない場合があります (FAQ 21 参照)。
  5. Q: Windows XP を通常インストールした時と比較して、BartPE にはどんな制限があるのですか?
    A: 以下のような制限があります。
    • サイズ縮小のために Win32 API のサブセットだけが含まれています。I/O (ディスク/ネットワーク) とコア Win32 API がサポートされます。
    • DFS (分散ファイルシステム) 名前解決はサポートされません。
    • BartPE で割り当てたドライブレターはレジストリ等には保存されず、リブートすると失われてしまいます。パーティションを作成した時のドライブ順序はリブートすると恐らくデフォルトのドライブ順序になってしまうでしょう。
    • BartPE は VGA 互換デバイスを必要とし、800x600 の画面解像度を使用します。Video 設定を検出できない場合にはデフォルトの画面解像度は 640x480 になります。
    • フロッピーに収める事ができないくらい大きいです。
  6. Q: ISO イメージを作るとき、次のような警告が出ます。
    "Warning: ISO-9660 filenames longer than 31 may cause buffer overflows in the OS."
    A: それで正常です。BartPE ではあふれずに無視されるだけでしょう。
  7. Q: Windows Server 2003 Standard で ISO イメージを作って BartPE を実行したら、XP のスプラッシュ画面が表示されます。何故?
    A: 何故なのかは解りませんが、何も間違ってはいません。バージョンを確認するとちゃんと 5.2.3790 になっているのが確認できると思います。
  8. Q: PE Builder で作られた ISO イメージはどこかおかしいのですか? ISO イメージを操作するソフトで閲覧/編集等ができないのですが?
    A: ISO イメージは ISO9660:1999 Standard 準拠で生成されます。
    仕様はここで見れます > http://www.y-adagio.com/public/standards/iso_cdromr/tocont.htm
    この新しい仕様ではフォルダ/ファイル名の最大長が 207 文字と言われています。
    従って、フォルダ / ファイル名は最大 207 文字あるかも知れません。
    多くの ISO イメージ操作ソフトは ISO 9660:1988 準拠となっており、長いフォルダ / ファイル名があると正常動作しないかもしれません。

  9. Q: このようなエラーが出ましたが?
    Loading "C:\pebuilder\setuphiv"
    Error: loadKey failed:
    A:  管理者権限のあるユーザで実行していますか? pebuilder.exe を終了し、もう一度起動してみてください。それでも駄目なら pebuilder.exe を閉じてレジストリエディタを起動して "pebuilder" で始まるサブキーを HKEY_USERS から探し、それを選択してメニューから [ハイブのアンロード] を行って下さい。
  10. Q:  既に Windows 2000 / XP / Server 2003 がインストールされているハードディスクから BartPE を実行できますか?
    A: はい、手軽にテストできますよね。
    • PE Builder を実行します。ISO イメージを生成する必要はありません。"BartPE Harddisk Installer" を有効にしておいて下さい。
    • ビルド後、plugin\pehdinst フォルダへ行き、"pehdinst.cmd " を実行して下さい。 は PE Builder の出力フォルダです (デフォルトは c:\pebldr)。既存の Windows のドライブ (boot.ini のある所) へインストールするので "1" を選択します。
    • "pehdinst.cmd" の実行が正常に終了したら、再起動して OS セレクタで "Boot BartPE (by PE Builder)" を選択して下さい。

  11. Q: BartPE は USB フラッシュドライブ (UFD) から起動できますか?
    A: ...多分。あなたの PC の BIOS は UFD を HDD のように振舞わせる事ができますか? XP の FAT ブートセクタコードは UFD から正しく起動できるようにはなっていませんが、Bart は既にそれを修正しています。しかし、現状では UFD からの起動は非常に不安定です。BIOS がどれだけ正確に HDD エミュレーションを行っているかに依存します。いくつかの BIOS は正確なエミュレーションを行っておらず、起動時にハングアップまたは異常終了してしまいます。将来は精巧なエミュレーションが行われるようになるのでしょうが...
  12. Q: 何故、BartPE を作るのに (ソースとして) 2000 / NT4.0 が使えないのですか?その理由は?
    A: カーネルが "/minnt" スイッチを使ったリードオンリーメディアからの起動に対応していないからです。また、layout.inf に必要な情報が記述されていません。
  13. Q: Windows 9x / me を使って BartPE を作れますか?
    A: 絶対に無理です。
  14. Q: "NIC:Intel PRO 100/1000" プラグインを組み込むと "ファイルがない" と言われてしまいます。
    A: Intel がドライバアーカイブの構成を変更したためです。nic_intelpro.inf 内の ws03xp32 を "ws03xp2k" に変更して下さい。
  15. Q: Aopen の 952E (or 956E)という CD-ROM ドライブから BartPE (Server 2003) を起動するとデスクトップが表示される前に停止してしまいます。何故?
    A: 私もそれに気付きました。Aopen の 952E はファームウェアリビジョンが A75 だと駄目で、A64 なら動きます。何故このような事が起きるのか確信が持てませんが...ファームウェアのバグ?
  16. Q: HDD から BartPE を起動すると Diskpart.exe が動きません。実行すると以下のようなメッセージが出ます。
    The disk management services could not complete the operation.
    A: 正常です。HDD で起動した BartPE / WinPE からは Diskpart.exe は動作しません。CD-ROM / DVD から起動された時のみ正しく動作します。
  17. Q: CD-ROM / DVD から起動しているのに Diskpart.exe が動きません。実行すると以下のようなメッセージが出ます。
    The disk management services could not complete the operation.
    A: "RpcSS needs to launch DComLaunch Service first - SP2 only" プラグインを有効にして下さい。
  18. Q: BartPE では "24 時間制限" が取り除かれていますか?
    A: 古いバージョンには "24 時間制限" があります。3.0.33 以降のバージョンには "24 時間制限" はありません。
  19. Q: BartPE には "6 プロセス制限" がありますか?
    A: 古いバージョンには "6 プロセス制限" があります。3.0.33 以降のバージョンには "6 プロセス" 制限はありません。
  20. Q: XP でビルドすると VBS ファイル関連でビルドに失敗してしまします。Server 2003 の "Virtual Disk Service" に関係しているようなのですが、どうしたらこれを回避できますか?
    A: Server 2003 用の Dislpart プラグインを組み込んでいませんか?もしそうなら無効にして下さい。
  21. Q: 以下のようなメッセージが出るのですが?
    Source files wrong version?
    File version \i386\ntdll.dll is 5.1.2600.0 should be 5.1.2600.1106 or higher.
    何をどうすればいいのですか?
    A: ソースとして使う XP に SP1 以降をあてなければなりません。
    作り方はこうです。
    1. XP のインストール/セットアップ CD の中身をサブフォルダごと HDD にコピーします (例: C:\winxpsp)。c:\winxpsp\i386\ setupldr.bin が存在する事を確認して下さい。なければもう一度やり直してください。
    2. サービスパックに "-s" オプションを付けて展開して下さい。
      xpsp1_en_x86.exe -s:c:\winxpsp
    こうしてできた c:\winxpsp を PE Builder のソースフォルダに指定してやります。
  22. Q: 他に PE Builder のようなビルドツールはありますか?
    A: いいえ。Microsoft の OEM Preinstallation Kit (OPK) 以外には "真の" PE Builder は存在しません。「WinPE が作れる!」 と主張するものがありますが、よく見ると Microsofts WinPE Builder のラッパー (フロントエンド) に過ぎません。
  23. Q:  プログラムを組むとき、BartPE または WinPE で起動しているかどうかを調べる方法はありますか?
    A: レジストリを調べてみて下さい。
    [HKLM\SYSTEM\CurrentControlSet\Control\minint] があれば BartPE または WinPE で起動しています。
    [HKLM\SYSTEM\CurrentControlSet\Control\PE Builder] があれば BartPE で起動しています。
  24. Q: マウスを接続していない状態で NU2MENU の Go ボタンを押すにはどうしたらいいですか?
    A: [Ctrl] + M です (時々、2 回押さないといけませんが)。
  25. Q: PE Builder は XP-SP2 に対応していますか?
    A: はい。3.0.32 以降のバージョンを使って下さい。
  26. Q: BartPE は圧縮された NTFS ファイルをコピーしたり読んだりできますか?
    A: できます。
  27. Q:  BartPE は EFS (Encrypting File System) ファイルをコピーしたり読んだりできますか?
    A: できません。
  28. Q:  Dell の PC に付いている CD で BartPE を作成しましたが、
    "The file iaStor.sys could not be found. Press any key to continue"
    というエラーが出ます。
    A: Dell は XP の OEM-CD に変更を加えました。このために、起動時に問題が発生します。これを直すには手動でドライバファイルをコピーしなくてはなりません。これを最も簡単に行う方法は "Fix Dell XP" プラグインを使うことです。
  29. Q:  ソフトウェアを BartPE にインストールする方法はありますか?
    A: 追加するソフトウェアのプラグインを書かなくてはなりません。プラグインは手動インストール用のプログラムです。
  30. Q: 弊社の社内で BartPE ベースの CD を使用したいと考えています (もちろん顧客に販売したり出荷したりはしません)。ですが "個人" ではなく "会社" です。追加ライセンスなしで BartPE を使ってもいいのでしょうか?
    A: はい。ですが、あなたが個人でないのなら、カンパをお願いしたいところです。
  31. Q: Windows XP でビルドした BartPE を Microsoft Exchange Server (HP Proliant) で起動しましたが、ドライブを見る事ができません。
    A: HP ストレージ用ドライバが正しく導入されていないようです。ドライバは drivers\SCSIAdapter に追加しなくてはなりません。こちらでドライバを探してみて下さい:
    HP Smart Array 5x and 6x Series
    HP ProLiant Dual Channel Ultra320 Host Bus Adapter (LSI Logic PCI SCSI/FC MPI Miniport Driver)
    Adaptec U320 SCSI HostRAID Controller
    Adaptec Ultra320 SCSI Cards
    Intel 82801FR/FMB/ER,6300ESB SATA RAID/AHCI Controller
    Compaq Integrated Smart Array-2 Controller (including 4200, 4250ES and 431)
     
  32. Q: pebuilder.log に以下のような一文がありました。
    "Processing (driver) INF file "C:\pebuilder\drivers\SCSIAdapter\Intel\iastor.inf", class "SCSIAdapter", provider "Intel", ver "06/29/2004" Unsupported class (SCSIAdapter), skipping..."
    SATA コントローラは PEBuilder でサポートされていないのですか?
    A: SATA ドライバはサポートされています。しかし、ドライバは BartPE が使用する iastor.inf ファイルに含まれていません。"unsupported class" メッセージを回避するには iastor.inf を削除すればよかったのですが、それは必要ではありません。PEBuilder はすべてのストレージアダプタドライバと正しいドライバファイルに関連するハードウェア ID を含むようになっている txtsetup.oem ファイルを使用するようになっています。(訳注: 要は PEBuilder が提供している方法でドライバを組み込んでくれ、という事のようです)
     
  33. Q: Windows XP のインストール CD は本物 (SP1 以前) なのにビルドできません。
    A: PEBuilder のスリップストリーム機能を使ってください。(後略) (訳注: 我々にはSP+メーカーがあります^^;)
     
  34. Q: ビルドできません。"c:\windows"をソースにしようとすると PEBuilder に怒られます。
    A: PEBuilder は Windows XP のインストレーションファイルまたはインストール CD を必要とします。(後略) (訳注: 「インストール CD がない場合には PEBuilder のインストレーションファイル検索機能を使ってみてね」 、と言いたいようです。)
     
  35. Q: 何故ウェブサイト nu2.nu の広告があるのですか?
    A: ご存知でしょうが、PEBuilder はフリーウェアです。寄付は歓迎していますが、必須ではありません。ソフトウェア開発費用や Web サーバ維持費はサイト内の広告で賄われています。
      このように考えてみてください。"nu2.nu の広告があるからこそ、PEBuilder はフリーウェアなのだ"、と。
※以前は公式サイトの FAQにもナンバリングが施してあったので比較が容易にできたのですが、現在はナンバリングが廃止されています。端折っている箇所があり、誤訳の可能性も充分考えられますので、必ず公式サイトの FAQにも目を通すようにして下さい。なお、あなたが現在見ているこのサイトは "Bart's PE Builder の公式サイト" ではなく、"公式サイトから公認された日本のサイト" でもなく、" 公式サイトを忠実に翻訳したサイト" でもない事をお断りしておきます。
  1. Q: Bart's PE  Builder って何でしょうか。
    A: Windows XP 以降の OS から CD ブートの Windows 環境を構築するフリーソフトです。 制限はありますが、Windows の一種なので通常使っている Windows アプリが一通り動作します。現在このスレッドでメインで扱っているソフトで、 アプリの追加に使うプラグインの開発を行っています。
  2. Q: 動作環境は。
    A: Windows XP が動作する環境ならたいてい動作しますが、メモリのスワップが作成出来ず、RAMDisk にも容量を取られるのでより多くのメモリを必要とします。 256MB 以上推奨です。
  3. Q:  作成時に Bart's PE Builder 本体以外に必要なものは。
    A: Windows XP 以降の CD-ROM が必要です。推奨は WinXP Pro の SP2 当て済み CD です。  XP Home や Server 2003 の CD でも作成は可能ですが、このスレッドでは推奨されていないので使わないのが無難です。
  4. Q: Windows XP の CD-ROM がついてこないパソコンでブータブル CD が作れない。 file "C:\win51" not found と言われる。
    A: 中身の無いファイルを作って、WIN51、WIN51IP (拡張子なし) にリネームしてエラーが出た時に指定された PATH に置きましょう。Home からの場合は WIN51IP ではなく WIN51IC になります。SP1 適用済み CD で作る場合は WIN51I?.SP1 も必要です。
  5. Q: 日本語ファイルが変な日本語に化ける。
    A: 332 氏のサイトを参考に ISO9660 Lv.4 で iso を作りましょう。
  6. Q: ファイルの登録順がおかしい。
    A: FAT32 フォーマットの HDD 上で Build すると問題が発生します。NTFS に変換しましょう。
  7. Q: knoopix 等他のソフトを含めてデュアルブート CD を作成したい。
    A: CDshell を使いましょう。
  8. Q: CD ブートが出来ないパソコンなのでフロッピーでブートしたい。
    A: Bootable CD Loader

    を使えば出来ます。RawWrite などで書き込んでください。
  9. Q: レジストリに何が追加されたか監視したい。
    A: レジストリの比較には RegDiff を使うと便利です。
  10. Q: REG_EXPAND_SZ によって不具合が発生する。
    A: Sherpya さんの Registry Expander を使いましょう。
  11. Q: 作り方が良く分かりません。
    A: 過去ログ嫁。あと332 氏のサイトも。

 参考になる Web サイトは? 

本家
2ch BartPE関連スレッド
BartPE 関連サイト

 参考になる書籍は? 

 書籍はない...と思っていましたが、
 というのがあるようです。

 月刊誌の連載記事をまとめた小冊子もあります。

 まとめての紹介と言えば
  • Windows100% 2006/04 号
    CD で起動できるクローン Windows を作れ!!
 というのもあります...正直、上の 2 つがあれば要りませんが。

 ...参考までに言っておくと、V.mag の記事の方が日本でのスタンダード (2ch) に沿った形になっています。PCJ の方は本家の流れで紹介されています。まぁ..

当たり前っていえば、当たり前。


 なんですがね(^^;
 Bart'sPE Builder のインストール方法は? 

 難しくはないと思います。基本的に書庫を解凍するだけですので。
  1. 公式サイト Bart's Preinstalled Environment (BartPE) bootable live windows CD / DVD から書庫を DL してきます。とりあえず、ベータ版ではない最新版がいいでしょう。
  2. 書庫を適当な場所に解凍します。"適当" とは言っても、パスに日本語文字を含まない場所がいいと思います。それから、できるだけ NTFS なドライブにインストールして下さい。

 Bart's PE Builder で使える OS は?

 ソースとして使える OS は "XP Professional / XP Home Editon / Server 2003" です (XP は SP が必須)。x64 Edition や for Itanium-based Systems、Vista / 7 等はとりあえず無理です。MCE は未確認です。ビルド環境としてであれば Windows 2000 でも OK です。
 Bart's PE Builder で BartPE をビルドするには? 

 ver3.1.3 を例に話を進めます。
  1. pebuilder.exe を実行します。
  2. なにやら同意を求められますのでそれに従って下さい。(初回のみ)
  3. "Source:" に XP-CD を入れる CD-ROM ドライブか、XP の CD をフルコピーしたフォルダ(推奨)を指定して下さい。
  4. "Custom:" はそのままで構いません。
  5. "Output:" もそのままで構いません。
  6. "Create ISO image" に出力する BartPE の ISO イメージファイル名をフルパスで指定します。
  7. ISO イメージをそのまま CD に焼くには "Burn CD" のチェックを入れ、Device から CD を焼くドライブを指定して下さい。
  8. ISO イメージを CD-RW に焼く前に消去する場合には "Erace CD" にチェックを入れて下さい。
  9. [Plugins] ボタンを押し、プラグインを有効 / 無効にして下さい。終わったら [Close] ボタンで閉じます。
  10. [Build] ボタンを押せば BartPE のビルドが始まります。
See also:
 PE Builder で Explorer & IE が動く PE を作る( 332 氏のサイト)
 

 スタンダードな BartPE の構成は? 

 本家では "Nu2Shell" プラグイン (または "XPE"プラグイン) + "Nu2Menu" プラグインを組み込まれた環境がスタンダードになっており、日本では332 氏作 "Explorer & IE"プラグインを組み込んだ環境がスタンダードとなっています。一概にどちらがいいとは言えません。

 何故このような状況になったのかと言うと、本家では当初 "レスキュー CD" を目指して作られていました。1バイト文字圏の Windows は 2 バイト文字圏のそれと比べてただでさえ小さいのに、フォントサイズも小さく IME も必要としません (当然ですが)。よって、コンパクトな PE が好まれる風潮があったようです。対して日本では、フォントや IME を組み込まなくては使い物になる PE は作れません。必要最低限のプラグインしか導入していなくても、そこそこ規模の大きな PE しか作れない訳です。で、開き直って、CD の容量をギリギリまで使った "高機能 PE" が作られる事になりました。332 氏が "Explorer & IE"プラグインを開発されてからその方向性はさらに顕著になって行きました。

 2ch スタンダードな PE は

 を組み込んだものです。
 "STOP:c000021a unknoun Hard Error" のブルーバックが出て起動しない。

 "Explorer & IE"プラグインフォルダにある winlogon.exe のバージョンが違う可能性があります。もう一度 winlogon.cmd を実行して winlogon.exe を再生成して下さい。
 "CDBOOT:Could't find NTLDR" と出て起動しない。

 PEBuilder 標準添付の mkisofs を 790 氏作の mkisofs と差し替えてみて下さい。最近の PE Builder 添付版ではこの問題は起きないはずです。

See Also:


 BartPE が CD-ROM から起動しない。

  "Boot Fix (Enabling Press any key to boot from CD)" プラグイン (標準添付)を導入してみて下さい。起動時に "Press any key to boot from CD" と表示されるようになります。この時に何らかのキーを押すと BartPE が起動するようになります。

  "Japanese Language - 日本語サポート" プラグイン (Lexus-j 氏)を導入しているのであれば "Boot Fix (Enabling Press any key to boot from CD)" プラグインを組み込む必要はありません。"Press any key to boot from CD" のメッセージは bootfix.bin が出しています。bootfix.bin をコピーしているプラグインが一つでもあるならば起動時に "Press any key to boot from CD" と表示されるはずです。

See Also:


 "Press any key to boot from CD" すら出ませんが?

 BIOS でブートデバイスの最初に "CD-ROM" となっているか、もう一度確認してみて下さい。
もし、FD からのブートしかできない場合には "2ch FAQ #8" を参考に、FD->CD ブートを行って下さい。
 ビルド時に" Error: SetupDecompressOrCopyFile "???\i386\*.dat" to "???\i386\system32\*.dat"
returned error 123: ファイル名、ディレクトリ名、またはボリュームラベルの構文が間違っています。"のエラーが出ます。

  "統合アーカイバ DLL セット" プラグインの 16 行目をコメントアウトして下さい。

 このプラグインを使わず、Caldix と PE Builder の Custom フォルダを使って Output フォルダへ DLL を上書きする方法もあります。

  1. pebuilder.exe を起動し、 "Custom" に任意のフォルダを指定します。
  2. そのフォルダに "i386" -> "system32" とフォルダを作成します。
  3. Caldix のカスタムインストールで "Custom" フォルダ内の "i386\system32" を指定し実行します。
  4. ビルドします。

 日本語で記述されている箇所が文字化けするのですが?

  "Japanese Language - 日本語サポート" プラグインを組み込んでみて下さい。
 日本語のファイル名が文字化けするのですが?

 PE Builder 標準添付の mkisofs を 790 氏作の mkisofs と差し替えてみて下さい。ただし、この場合 "ストレージを最適化する (Optimize storage by encoding duplicate files once)" にチェックを入れてはいけません。mkisofs を直接呼び出している場合には "-duplicates-once" オプションを付けないで下さい。

See Also:


 IE で文字化けするのですが?

  "Japanese Language - 日本語サポート" プラグインを組み込んでも文字化けするのであれば、FAT32 な HDD に PE Builder をインストールしているのではないでしょうか?可能であればドライブを NTFS へ変換して下さい。もし、それが無理なら Plugin Manager v2 を使って [オプション | Plugin フォルダの整列] を実行して下さい。

See Also:


 IE でフォーム上のボタンを押しても反応しないのですが?

 FAT32 な HDD に PE Builder をインストールしていませんか?プラグインの組み込み順序がおかしくなっているからだと思われます。

See Also:


 3.1.3 でビルドしていますが、24 時間制限や 6 プロセス制限がやっぱりあるようなのですが?

  "PE Loder" プラグイン (標準添付) を有効にしてみて下さい。

 但し、PE Builder v3.1.4 以降、"PE Loder" プラグインは標準プラグインから外されています。
 標準でなくなったというだけで、プラグイン自体は "WinPE Tools by TheTruth" から DL する事が可能です。


 PE Builder の英語が読めません。

 英語を勉強しましょう。私なんか、自分の作ったツールはガイジンさんに 「英語に翻訳 (トランスレート)しろ」 と言われ、ガイジンさんの作ったツールは 「日本語化しろ」 と言われ、2ch のスレで
 ちとワロタ。(失礼)
 いや確かに。お疲れ様。

 なんて揶揄される有様ですよ (ノД`;)

 ...失礼、失礼。どうしても解らないのであれば、以下のような方法で英語を回避できます。

  Bart's PE Builder v3.1.10 から、日本語言語ファイルと日本語ヘルプが同梱されるようになりました。これらは自動認識されるため、英語を殆ど意識しなくて済むようになっています。言語ファイルの最新版は "PE Builder 言語ファイル" で入手できます。

See Also:


 PE Network Configurator の英語が読めません。

  "WinPE Tools by TheTruth" にある "PENetCfg v2.30 Multilanguage (Beta)" は多言語対応で、日本語もその中に含まれています (翻訳された "宮本さん" に感謝)。

 初期表示から日本語にしたい場合には penetcfg.ini の [General] セクションに "Language=Japanese" を追加します。


 最近の RAID/ネットワークカードを認識しません。

 自分でドライバを探してきて入れてやればいいのですが面倒ですよね。

  Ultimate Boot CD for Windows (UBCD) の Driver Package を DL し、解凍したものを PE Builder の "drivers" フォルダへコピーして下さい。ほぼすべての RAID / NIC を認識させる事ができるようになります。安定しているのは v1.8 です...しかし、v1.8 のドライバパックが出て随分時間が経ちます。流石に最新の MB 等では認識されないデバイスが増えてきました。v1.9 かv 2.0 への更新をしたい所ですが、v1.9 は "Insufficient memory for ?????.???" のエラーが出たり、挙動不審な所があり、あえて v1.8 をオススメしてきました。v2.0 は未だ検証ができていません。


 もうひとつの "UBCD ドライバパック" があります。これは "AutoHelp" プラグイン用のようですが、ドライバ収集型でないドライバ集で、CPU / Chipset / Graphics / LAN / WLAN / MassStorage の詰め合わせになっています。旧来のドライバの組み込み方をしなくてはならないのでちょっと面倒かもしれません。試して見たい方はこのトピック以降を辿ってみてください。

 ドライバパックに含まれないドライバを見つけたら PE Builder の "drivers" フォルダへ個別にコピーして対応して下さい。新しいデバイスでも、ドライバさえあれば BartPE 起動時に F6 を押してドライバを FDD から追加する事ができる事を覚えておくといいでしょう。

See Also:


 XP (無印) の CD しか持っていません。どうすればいいのでしょうか?

  "公式 FAQ #4 / #21" と "2ch FAQ #4" を参照して下さい。面倒な方は SP +メーカー を使うと簡単に SP 統合 CD が作れます。確かに 3.1.3 以降だと [source | Slipstream] で SP 統合イメージを作れるのですが、公式 FAQ #4 にあるように、英語版以外の Windows では正しく動作しない事があります。
 プラグインを自分で作ってみたいのですが?

 まず、プラグインのヘルプを読みましょう。日本語訳したものはこちらにあります。プラグインの大まかな構造を理解したら、テキストエディタさえあれば簡単なプラグインは作れるようになります。ファイルコピーだけで済むプラグイン等から始めるといいでしょう。

 レジストリへの登録を行わないといけないプラグインはちょっとややこしくなります。レジストリの内容をプラグイン形式で記述しなくてはなりません。Reg2PE.exe を使って実際のレジストリや、インストール前後のレジストリ差分ファイルからプラグイン形式のレジストリ情報を作成する必要があります。

 Explorer & IE 環境ではショートカットも必要になってくるでしょう。ですが、これも手動で作ろうと思うと意外に面倒なものです(実際にやってみれば解ります)。PE_SC.exe を使うと比較的楽にショートカットが作れます。

 オールインワンなプラグイン作成ツールもあります。 Plugin Builder がそれで、先述のツール類を組み合わせたようなツールになっています。先人の作られたプラグインを解析するののにも有益なツールです。


WindowsのCDキーを見つけるためにどのように

 また、プラグインはキャビネット形式 (*.cab) で圧縮すべきです。プラグインをプラグインダイアログで追加する時には cab 形式でないと追加できないからです...とは言え、プラグインダイアログからインストールしているヒトは少ないようで、zip による手動インストールが主流のようです。


 条件ビルドを行いたいのですが?

 複数のバージョンの PE Builder を使っている時や、通常版 / 機能縮小版を管理しようと思うと結構大変です。そんな時には Plugin Manager v2 を使ってみるといいでしょう。このプロファイルではこのプラグインを組み込む、このプロファイルでは組み込まない等、細かな条件ビルドが可能です。

 本家フォーラムにも専用スレッドがあります。


 CD からの起動を高速化したいのですが?

 確かに CD からの起動は遅いです。ですが、この起動速度を若干ではありますが、高速化する方法があります。

 理屈としては、

  • PE の起動時におけるファイル読み込み順を調べる
  • ISO 書き込み時にファイルをその順序で書き込む
 という事を行えば、ランダムアクセス(?)が減る事になります。

  Plugin Manager v2 を使えば比較的簡単にできます。

  1. "PE Builder" のフォルダに "sort.lst" を作成。
    本家フォーラムの "Pebuilder Cd Layout Optimization" を参考にしてソートリストを作成して下さい。
    • 最適なリストは環境によって異なります。
    • ソートリストに記述するパスは %OutDir% からの相対パス / 絶対パスの両方が使えます。
      (mkisofs の最後のパラメータに渡されるパスが絶対パスなら絶対パスで、相対パスであれば相対パスで記述しなくてはなりません。)
    • ソートリストに記述するファイルはビルドデータのファイル名と一致していなくてはなりません。
      (大文字/小文字を区別します。但し、PE Builder 添付版を使う場合にはすべて大文字で記述します。)
    • ソートリストに記述するパス / ファイル名に空白文字が含まれていてもダブルクォーテーションで括る必要はありません。
    • パス区切り文字は "/" になります。

  2. Plugin Manager v2 の環境設定を変更。
    "PE Builder" タブの

    • "ビルド時パラメータ" に "-auto -exit -overwrite" を指定
    • "ISO 作成時パラメータ" に "-auto -exit" を指定
    • "ビルドでの ISO 作成に外部プログラムを使う" にチェックを入れる
    • "ISO 作成に外部プログラムを使う" にチェックを入れる

    "外部プログラム" タブの

    • "パラメータ" に ""@PluginManage "@PEBuilde を作成。
      REM "@PluginManage "@PEBuilde-iso-level 4 -volid "BartPE" -A PEBUILDER/MKISOFS -sysid "Win32" -sort sort.lst -b bootsect.bin -no-emul-boot -boot-load-size 4 -hide bootsect.bin -hide boot.catalog -o %2 %3
      if not ERRORLEVEL 0 goto Exit

      :EraseCD
      if "%5"=="0" goto BurnCD
      cdrecord.exe %7 blank=fast
      if not ERRORLEVEL 0 goto Exit

      :BurnCD
      if "%6"=="0" goto Exit
      cdrecord.exe %7 driveropts=burnfree %2
      if not ERRORLEVEL 0 goto Exit

      :Exit


    • Plugin Manager v2 からビルド。
 ちょっと大変ですが、一度やってしまえば以降設定する必要はありません。

 他の高速化には以下の方法があります。

  • inf ファイルをすべて Unicode (UTF-16) -> ANSI (Shift_JIS)化する。
  • EXE や DLL を UPX 圧縮する
 CD からの読み込みが遅いのは HDD に比べ、CD ドライブの読み込み速度が遅いというのも一因です。で、あれば "ファイルサイズを小さくすればいい" という考え方です。ファイルサイズが小さくなれば、CDドライブへのアクセス時間が減り高速化へつながる...という理屈です。  これらを自動でやってくれる "Postprocessing" プラグインというのがあります。XPE + Nu2Menu が前提のプラグインのようですので Explorer & IE 環境にはそのままでは使えないかもしれませんが、参考にはなると思います。  inf ファイルに関しての追記です。
  • .inf Reducer を使って inf ファイルを縮小する事ができます。使い方は "infred.exe %outdir%\i386\inf" です。
  • Sherpyaさんの "Build Scripts" に含まれる InfCacheBuild.exe でinf ファイルをキャッシュファイルに変換する事ができます。使い方は "InfCacheBuild.exe %outdir%" です。
See Also:
 USB フラッシュメモリからの起動はできますか?

 CD ドライブからの起動に比べると遥かにマシンが限定されてしまいますが、可能です。 公式 FAQ #11 ではお茶を濁してありますが、実際に私の環境では動作しました。

[必要なもの]

[準備]
 (XP の場合、USB フラッシュメモリドライブの復元機能を無効にしておいて下さい)
  1. USBPE.EXE を解凍し、%pebuilder%フォルダへコピー。
  2. "PE2USB" を解凍し、%pebuilder%\srsp1 フォルダへコピー。
  3. "Microsoft Windows Server 2003 SP1" を DL。
  4. USBPE.EXE を実行、[File | Extract ServicePack] を実行。 3. で DL した EXE を指定。
  5. USB フラッシュメモリでエミュレーションモードを変更できるのなら USB-ZIP に変更。
[ブータブル化]
  1. USBPE.EXE を起動。
  2. "USB Flash-Memory Drive:" コンボボックスで USB フラッシュメモリドライブを指定。
  3. [Write Bootsector] ボタンを押下。
[フォーマット]
下記、いずれかの方法でフォーマットして下さい。
  • format %USB フラッシュメモリのドライブ:% /fs:fat /u /v:BartPE /backup
  • "HP Windows-based Format Utility for HP Drive Key or DiskOnKey USB Device" でフォーマット
    うまくブートしない場合はこちらを試してみて下さい。
[ビルド]
 (前もって PE Builder で通常ビルドしておく事、ISO イメージを作る必要はありません)
  1. USBPE.EXE を起動
  2. "USB Flash-Memory Drive:" コンボボックスで USB フラッシュメモリドライブを指定。
  3. "Install Type:" コンボボックスでインストール (ブート)方法を指定。
  4. [Build] ボタンを押下。
 準備 / ブータブル化 / フォーマットは一度やれば次回以降行う必要はありません。無事に BartPE がブート可能な USB フラッシュメモリができたら以下の手順で起動を行います。

[起動手順]

  1. PC の電源が OFF になっているのを確認する。
  2. USB フラッシュメモリを挿す。
  3. PC の電源を入れる。
  4. BIOS 画面を開く。
  5. BIOS の起動に関する設定を行う。
                         Phoenix - AwardBIOS CMOS Setup Utility                     
                                     Boot Sequence                                  
    ╔═════════════════════════════════════════════════════╦════════════════════════╗
    ║    1st Boot Device              [CDROM]             ║        Item Help       ║
    ║    2nd Boot Device              [Floppy]            ╠════════════════════════╣
    ║    3rd Boot Device              [Hard Disk]         ║ Menu Level   >>        ║
    ║    Boot From Other Device       [Enabled]           ║                        ║
    ║  > Hard Disk Boot Priority      [Press Enter]       ║ Select Your Boot       ║
    ║                                                     ║ Device Priority        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ╚═════════════════════════════════════════════════════╩════════════════════════╝
    ↑↓→←:Move Enter:Select  +/-/PU/PD:Value  F10:Save ESC:Exit  F1:General Help
                  F5:Previos Values               F7:Optimized Defaults            

                         Phoenix - AwardBIOS CMOS Setup Utility                     
                                Hard Disk Boot Priority                             
    ╔═════════════════════════════════════════════════════╦════════════════════════╗
    ║    1.USB-HDD0  :  USB 2.0 Flash Disk PRO            ║        Item Help       ║
    ║    2.Bootable add-in Cards                          ╠════════════════════════╣
    ║    3.Ch0 M.    :  Maxtor 6B200P0                    ║ Menu Level   >>>       ║
    ║                                                     ║                        ║
    ║                                                     ║ Use <↑> or <↓> to      ║
    ║                                                     ║ Select a device , then ║
    ║                                                     ║ press <+> to move it   ║
    ║                                                     ║ up , or <-> to move it ║
    ║                                                     ║ down the list.Press    ║
    ║                                                     ║ to exit this     ║
    ║                                                     ║ menu.                  ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ║                                                     ║                        ║
    ╚═════════════════════════════════════════════════════╩════════════════════════╝
        ↑↓:Move Enter:Select  PU/PD/+/-:Change Priority  F10:Save  ESC:Exit  
                  F5:Previos Values               F7:Optimized Defaults            

    • HDD の起動順序が変えられる場合には USB-HDD や USB-ZIP を選択する必要はありません。
    • HDD の起動順序が変えられる場合には USB フラッシュメモリデバイスを起動順序の最上位に持ってきて下さい。
    • HDD の起動順序が変えられない場合には USB 関係のデバイスを起動順序の最上位に持ってきて下さい。

  6. BIOS 画面を抜ける。
  7. BartPE が起動。
[注意]
  • 場合によっては USB フラッシュメモリの挿抜タイミングが必要となる場合があります。
  • 6. の直後に USB フラッシュメモリを抜き、再起動してから最初の FDD アクセスで LED が消灯した直後に USB フラッシュメモリを挿すとブートに成功する事があります。
  • ISO イメージブートの場合、514MB を超える ISO イメージだと正常にブートしないかもしれません。これは恐らく Server 2003 SP1 から持ってきた ramdisk.sys の制限です。


 USB フラッシュメモリからのブートには 2 種類の方法があります。
  1. ISO イメージブート
    起動時に RAM ディスクボリューム (BartPE の RAM ディスクの事ではない) を作って仮想 CD として扱い、それに USB フラッシュメモリ内の ISO イメージを割り当てて起動する方法。ISO イメージを最初に全部読み込むので、512MB の容量をいっぱいに使った ISO イメージだと起動に 10 分程かかる。しかも、RAM ディスクボリューム上に仮想 CD を作る構造なため、メモリは ISO イメージサイズ + 128MB 程度必要となる。但し、一旦起動してしまえば普通の BartPE とは別次元の操作性を体験できる。PE で腰を据えて作業したい人向け。
  2. HDD ライクブート
    HDD ではなく USB フラッシュメモリに対して "PE Installer" を行ったようなもの。ブートプロセスは HDD にインストールした PE と同じ (制限も HDD インストール時と全く同じ)。ISO イメージブートに比べ、起動時間は 4 ~ 6 割と高速。但し、何かする度に突っかかるような感じがするのは通常の BartPE 同様 (若干速い程度)。ハードウェアトラブル等で PE を何度も再起動しなければならない人向け。
 1. の方法は Windows XP Embedded (XPe) の機能を使ったものです。故に Microsoft Windows Server 2003 SP1 が必要となってきます。

See Also:


 ネットワークからの起動はできますか?

 ...できた、との報告があります。

 ですが、ネットワークブートには当然サーバが必要であり、そのサーバには

  • PXE サーバ
  • TFTP サーバ
  • DHCP サーバ
 が必要となります。ここでネックになるのは "DHCP サーバ" です。個人宅にせよ会社にせよ、ルータに DHCP 機能が含まれているハズです。この機能を殺さないとネットワークブートはできませんが、IP アドレスを自動的に取得するには DHCP サーバが必要になります。 "サーバが常時稼動で、DHCP サーバを兼ねてもいい" という条件がクリアできるのであればチャレンジする意義もあるでしょうが、個人的にはあまり意義はないように思えます。

 動作的には上の "USB フラッシュメモリ (ISO イメージ) ブート" をネットワークで行うような感じになります。

 詳細な設定方法は "PXE ブート環境作成手順の日本語版 + 文書で説明しているプラグイン用 inf 付 (2ch Bart's PE Builder Thread Uploader)"、或いは "Bart's PE Builder スレッド 6 枚目" の 107 番以降を参照して下さい。


 BartPE から回復コンソールを利用できますか?

 できません...が、プラグインはあります。

 XP に回復コンソールをインストールするには XP-CD 内の "winnt32.exe" に "/cmdcons" というオプションを付けて実行します。インストールすると "cmdcons" というフォルダができてここに回復コンソール用のファイルがインストールされます。

 ...ですが、回復コンソールは XP 上からは実行できません 。実行するには再起動して XP の OS セレクタから "Microsoft Windows XP 回復コンソール" を選ぶ必要があります。これは BartPE にも当てはまります。

 つまり、"回復コンソール" プラグインは BartPE に回復コンソールを組み込むものではなく、BartPE の CD に回復コンソールを同居させる ものなのです。よって、マルチブートの仕組みが必要となります。

 "回復コンソール" プラグインはマルチブートに BCDW を利用します。ファイル名を小文字で処理する mkisofs をお使いなのであれば、BartPE FileCase 等を使って\BCDW フォルダと\BCDW フォルダ内のファイル / フォルダを大文字化する必要があります。また、mkisofs に指定するブートローダが変更 (BCDW のもの) になりますので、"回復コンソール" プラグイン付属の readme.txt をよく読んでから組み込むようにして下さい。

See Also:


 何かしようとすると"メモリ不足"と出て何もできないのですが?

 日本語環境で普通に BartPE を作ると、少なくとも 128MB のメインメモリが必要となります。例え 128MB あったとしても、VIDEO メモリがメインメモリと共有するタイプであったり、プラグインを追加したり、メモリ喰らいなアプリケーションを実行するとメモリが足りなくなる事があります。

 対処方法は簡単で、BartPE が操作可能になったら

  1. [マイコンピュータ] を右クリック。
  2. "プロパティ" を選択。
  3. [詳細設定] タブを選択。
  4. "パフォーマンス" の [設定(S)] を押下。
  5. [詳細設定] タブを選択。
  6. "仮想メモリ" の [変更(C)] を押下。
  7. 適当な HDD を選択。
  8. "カスタムサイズ(C)" を選択。
  9. "初期サイズ" と "最大サイズ" に 100 程度を設定して [設定(S)] を押下。
 要は仮想メモリを使う訳です。指定したドライブに既に "pagefile.sys" があっても構いません。BartPE での作業終了後に削除すればいいだけの話です。一々マイコンピュータから開くのが面倒な方は Paraglider さんの "SetPageFile" プラグインを使うのもいいでしょう。

 なお、当然ですがこの方法は HDD が見えない場合には使えません。そんな時は USB-HDD (やフラッシュメモリ) を用意して、そこへ仮想メモリを生成しましょう。


 最新の mkisofs が使えないのですが?

 添付版でない最新の mkisofs を使うと BartPE が起動しなくなる事があります。また、ISO のビルドに失敗するかもしれません。
  • BartPE のいくつかのファイルは大文字でなければなりません。
  • PE Builder 添付版はファイルをすべて大文字で処理します。
  • 通常の最新版 mkisofs はファイルを大文字で処理しません。日本語ファイル名は化けません。
  • PE Builder 添付版は日本語ファイル名が文字化けします。
  • 790 氏作のものはファイルをすべて大文字で処理し、日本語ファイル名は化けません。但し "-duplicates-once" オプションが使えません。
 特殊な事をしないのであれば PE Builder 添付版を使うのがいいでしょう。例えば "Postprocessing" プラグイン付属のものを使う場合には、ビルドされたファイルのいくつかを大文字にしてから ISO イメージを生成しなくてはなりません。また、mkisofs に渡すパラメータに "大文字にしたファイル (ブートローダ等)" が含まれる場合にはその記述も大文字にする必要があります。

 PE Builder は内部で mkisofs を起動しますが、ブートローダを小文字で指定しています。PE Builder 添付版はビルドデータが大文字であっても小文字であっても、結局 ISO 作成時には大文字で処理するので問題ないのですが、最新版 mkisofs と差し替えて使うとブートローダを小文字で処理してしまい、起動しない BartPE ができてしまいます。かといって、ISO 作成前にブートローダを大文字にすると、今度は内部で呼び出している mkisofs の引数が小文字固定なため ISO の作成に失敗します。

 ファイルの大文字化を簡単にやってくれるツールがあります。BartPE FileCase がそれで、大文字必須ファイルのみを大文字にしてくれます。使い方は "pefc.exe %outdir%" です。追加で大文字化したいフォルダ/ファイルがあるのであれば pefc.env に記述して下さい。但し、PE Builder 3.1.4 βからは大文字化を自動でやってくれるようになっています。

 PE Builder 添付版でない mkisofs を使うメリットはいくつかありますが、最たるものは、やはりスタートメニューの文字列でしょう。すべて大文字であるより遥かに見易くなります。また、マルチブート CD を作る場合には小文字の使える mkisofs を使う事になると思います。

なお、Bart's PE Builder v3.1.10 から、 "ファイルを大文字化しない" というオプションが追加されています。このオプションを使う場合、プラグインにファイルコピー / 展開時での大文字化の記述が必須となったり、大文字化が必要なファイルが存在する場合には ISO ビルド前に自前でファイルの大文字化を行わなくてはならない事になります。

See Also:


 ガイジンサンは ISO 作成時にどうして面倒なことをしているのですか?

 マニアックなガイジンサンは pebuilder.exe をバイナリエディタで書き換えて独自のスクリプトを走らせるようにしたり、Plugin Manager / v2 を使ったりしています。理由は既に2つほど述べています。
...実はこれらの手法は以前の PE Builder では簡単にできたのですが、3.0.33 以降のバージョンでは簡単にはできなくなっています。以前の PE Builder (3.0.33 以前) はビルド時に独自のスクリプトを実行できていました。この仕様変更には本家フォーラムの住人も混乱したようです (^^; 

 傍目には面倒そうに見えますが、一度環境を作ってしまえば後は意外と楽です。


 BartPE をスリムにしたいのですが?

 プラグインや機能をそのままでスリムにする、という前提で話を進めると、
  • inf / sif / ini ファイルを小さくする。
  • いくつかのファイルを UPX で圧縮する。
  • mkisofs に "-duplicates-once" パラメータを渡す。
 という方法があります。 "CD からの起動を高速化したいのですが?" と話がカブっていますが、ご容赦下さい。
  1. inf/sif/ini ファイルを小さくする。
    .inf Reducer を使って下さい。
  2. UPX で圧縮
    後述します。
  3. mkisofs に "- duplicates-once" パラメータを渡す。
    そのままですね。これを行うと CD 内で重複しているファイルをハードリンク (のようなもの) により一つにまとめます。少し古い PE Builder 添付版の mkisofs ではこの指定ができません。
  4. 使わないフォントを削除する。
    アイコンが青色のフォントは全削除して構いません。フォントの削除により若干の高速化も図れます。青色のフォントを削除するだけで 4.6MB 程度軽量化できます。
 具体的なスクリプトは以下のようになります。これは現在、私が使っているスクリプトです。
@echo off
REM "@PluginManage "@PEBuildeReducer
:: ===================
infred.exe -R -n -s %3\i386
cls

:: ===================
::  Inf Cache Builder
:: ===================
InfCacheBuild.exe %3
cls

:: ===================
::  UPX
:: ===================
cd %3\i386\system32
%1\UPX --best --crp-ms=999999 comp.exe compact.exe ditrace.exe eqndiag.exe eqnlogr.exe eqnloop.exe expand.exe fc.exe finger.exe hostname.exe lpq.exe lpr.exe mountvol.exe nbtstat.exe; ntsd.exe pathping.exe peer.exe pentnt.exe portmon.exe replace.exe route.exe rsvp.exe tftp.exe xlog.exe
%1\UPX --best --crp-ms=999999 *.cpl
%1\UPX --best --crp-ms=999999 ctmasetp.dll ctmrclas.dll diskcopy.dll dnsrslvr.dll msjet40.dll msvbvm50.dll msvbvm60.dll mswstr10.dll netevent.dll netmsg.dll netrap.dll netui2.dll ntlanman.dll nwapi32.dll nwcfg.dll nwevent.dll riched20.dll wsock32.dll xpsp2res.dll
cd %1
cls

set BootLoader=BOOTSECT.BIN
if "%8"==""  goto BuildISO
set BootLoader=%8

:BuildISO

if "%4"=="0" goto EraseCD
mkisofs.exe -version
echo [BootLoader is "%BootLoader%"]
mkisofs.exe -iso-level 4 -volid "BartPE" -duplicates-once -A PEBUILDER/MKISOFS -sysid "Win32" -sort sortlist.lst -b %BootLoader% -no-emul-boot -boot-load-size 4 -hide %BootLoader% -hide boot.catalog -o %2 %3
if not ERRORLEVEL 0 goto Exit

:EraseCD
if "%5"=="0" goto BurnCD
cdrecord.exe %7 blank=fast
if not ERRORLEVEL 0 goto Exit

:BurnCD
if "%6"=="0" goto Exit
cdrecord.exe %7 driveropts=burnfree %2
if not ERRORLEVEL 0 goto Exit

:Exit


 UPX と mkisofs の部分は長いですが一行で記述して下さい。 .inf Reducer 、InfCacheBuilder 、BartPE FileCase、UPX は pebuilder.exe と同じ場所にあるという前提です。

 UPX で圧縮しているファイルは "Postprocessing" プラグインを参考にしています。他にも圧縮できるファイルがありますので、EXE を中心に追加してみて下さい。 "I386\ SYSTEM32" 内の EXE はすべて圧縮しても目に付く問題はなかったように思います...ただ、環境は人によって異なるので、オススメはしません。

  "Plugin Manager v2" の "外部プログラム" 欄には ""@PluginManage "@PEBuilde のように指定して下さい。


 別のバージョンがあるみたいなのですが?

 Reatogoというプロジェクトに対して OEM されたバージョンがあり、これに添付された pebuilder.exe で生成される PE は "BartPE" ではなく "ReatogoPE" になります。Reatogo 版の pebuilder.exe は "Bart's PE Builder" と区別するために "3.1.7-OEM" のように OEM を付けて呼ばれています。最近は OEM 版の方が先行して開発されているようです。

 OEM 版には本家にはない機能があり、そのうちの一つに多言語対応があります。 "lang" フォルダに日本語言語ファイルをコピーして [Builder | Option] で "Japanese" を選択すると、アプリケーション再起動後に日本語化されます。一部、日本語として奇妙な点があるかもしれませんが、これは言語の差異によるものです。英語では倒置がよく使われるのですが、リソース文字列はフォーマット文字列で提供されていないため、そのまま日本語を当てはめるとおかしな日本語になってしまいます。

  Bart's PE Builder 環境に OEM 版を上書きして使っても問題はないと思いますが、気になるのであれば pebuilder.exe と pebuilder.inf 、"lang" フォルダだけを上書きして使うようにすればいいでしょう。

 Reatogo 版を単体で使っていいものか?という質問に対して私は何もお答えする事ができません。Reatogo フォーラムで確認して下さい。Bart's PE Builder 版と Reatogo 版のどちらを使えばいいのか?という質問も同様です。ご自身で決めるべき事だと思います。但し、Reatogo 版を使っていて 2ch 等で質問をする際にはそれを明記すべきでしょう。

  Bart's PE Builder 3.1.9 より、OEM 版からのフィードバックが行われるようになりました。これにより Bart's PE Builder でも日本語化ができるようになりました。

See Also:


 黒い画面で "???.??? is not found" と出て再起動してしまいます。 

 ファイルは存在するのに、このエラーメッセージが出た場合、対象 PC の光学ドライブの読み取り精度が悪い事が考えられます。

 例えば、


どこのプリンタドライバをインストールしない
  • CD-R は正常に読めるのに CD-RW の読み込み速度が遅い。
  • 650MB 以外のメディアの読み込み速度が遅い。
  • CD 系は正常に読み取れるが、DVD の読み込み速度が遅い。
 などです。対策としては
  • 光学ドライブをクリーニングしてみる。
  • DVD に BartPE を焼いているのなら CD 系のメディアに換える。
  • CD-RW に BartPE を焼いているのなら CD-R に換える。
  • 650MB 以上のメディアを使っているのなら、650MB のメディアに換える。
  • ライティングソフトで "Disc を閉じる" 設定で焼く。
  • ライティングソフトで書き込み速度を低速にする。
  • 光学ドライブを交換する(^^;
 以上のようなものがあります。
 黒い画面で "Insufficient memory for ?????.???" と出て再起動してしまいます。 

 対処方法です。 
  • v3.1.9 以降で発生する事があります。
  • UBCD4WIN ドライバパッケージを使っているのであれば、v1.8 に更新してみて下さい。或いは Storage 系のドライバをすべて削除してみてください。
  • Explorer & IEと Nu2Shell のようにシェル関係のプラグインを同時に組み込まないようにしてみて下さい。
  • それでも駄目なら PE Builder の v3.1.3(or v3.1.4 β)を使ってみて下さい。
  • v3.1.3 以前の PE Builder で発生する場合にはプラグインを疑ってみて下さい。
 v 3.1.3 を使うのであれば、プラグインは最新版付属の物を使い、pebuilder.inf も最新版に準拠しておくといいでしょう。

 pebuilder.inf を最新版に準拠させるには...

73 行目の後に
を追加。

927 行目の

0x1, "ControlSet001\Services\vds\SoftwareProviders\{CA7DE14F-5BC8-48fd-93DE-A19527B0459E}", "VersionId"="{21CBA22B-9418-43c7-8B77-80F0B410D503}"

0x1, "ControlSet001\Services\vds\SoftwareProviders\{CA7DE14F-5BC8-48fd-93DE-A19527B0459E}", "VersionId", "{21CBA22B-9418-43c7-8B77-80F0B410D503}"
に変更。

ファイルの最後に

;
; Correct problem related to Fixed Size Fonts not being correctly displayed
; Notably visible under stinger, bst5, putty, vncviewer, adawarese...

[SourceDisksFiles]
coure.fon=22
serife.fon=22
sserife.fon=22
smalle.fon=22
symbole.fon=22

[Software.AddReg]
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","Roman (All res)","ROMAN.FON"
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","Script (All res)","SCRIPT.FON"
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","Modern (All res)","MODERN.FON"

0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","Courier 10,12,15 (VGA res)","coure.fon"
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","MS Sans Serif 8,10,12,14,18,24 (VGA res)","serife.fon"
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","MS Serif 8,10,12,14,18,24 (VGA res)","sserife.fon"
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","Small Fonts (VGA res)","SMALLE.FON"
0x1,"Microsoft\Windows NT\CurrentVersion\Fonts","Symbol 8,10,12,14,18,24 (VGA res)","SYMBOLE.FON"

; enable showing ACL permissions sheet on files and folders
[SourceDisksFiles]
rshx32.dll=2

[Software.AddReg]
0x1,"Classes\CLSID\{1F2E5C40-9550-11CE-99D2-00AA006E086C}",,"Security Shell Extension"
0x1,"Classes\CLSID\{1F2E5C40-9550-11CE-99D2-00AA006E086C}\InProcServer32",,"rshx32.dll"
0x1,"Classes\CLSID\{1F2E5C40-9550-11CE-99D2-00AA006E086C}\InProcServer32","ThreadingModel","Apartment"
0x1,"Classes\CLSID\{F37C5810-4D3F-11d0-B4BF-00AA00BBB723}",,"Security Shell Extension"
0x1,"Classes\CLSID\{F37C5810-4D3F-11d0-B4BF-00AA00BBB723}\InProcServer32",,"rshx32.dll"
0x1,"Classes\CLSID\{F37C5810-4D3F-11d0-B4BF-00AA00BBB723}\InProcServer32","ThreadingModel","Apartment"
0x1,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","Type","checkbox"
0x1,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","Text","@shell32.dll,-30518"
0x4,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","HKeyRoot",0x80000002
0x1,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","RegPath","System\CurrentControlSet\Control\LSA"
0x1,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","ValueName","ForceGuest"
0x4,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","CheckedValue",0x1
0x4,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","UncheckedValue",0x0
0x1,"Microsoft\Windows\Cur rentVersion\Explorer\Advanced\Folder\SimpleSharing","HelpID","shell.hlp#51154"
0x4,"Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\SimpleSharing","DefaultValue",0x1
; /enable showing ACL permissions sheet on files and folders

; jan 20, 2006 v3.1.10
; W2k3 SP1 will crash if the NTVDM.EXE is stored in i386\system32 with the above
; RegKey. This happens for example with the dospe plugin. In W2k3 the olethk32.dll
; doesn't exist in the KnownDll List
; only for XP build
[SetupReg.AddReg.2600]
0x1, "ControlSet001\Control\Session Manager\KnownDLLs", "olethk32", "olethk32.dll"

; jan 22, 2006 v3.1.10
; add bootfont.bin to [root] (if exists)
[SourceDisksFiles]
bootfont.bin=30000,,12

を追加で完了です。

 現在、v3.1.9 以降での回避方法を調査中です。
 この現象は何らかの原因でドライバファイル(*.inf)が破損してしまった場合、ドライブ / メディアの不調によりドライバファイルを正常に読み込めなかった場合に起こるようです。実行させる PC によって現象が出たり出なかったりするのは、必要なドライバファイルが異なるからだと思われます。

See Also:


 "Starting BartPE..."で白帯が右端に到達した後にフリーズ/再起動してしまいます。

 以下の事を試してみてください。
  • UBCD4WIN ドライバパックを使っているのなら v1.8 を使ってみる。
  • Storage 系のドライバをすべて外してみる。
 ICH5 / ICH5R の環境で UBCD4WIN ドライバパックを利用すると表題の現象が "起きる事がある" のが確認されています。

See Also:


 バージョンごとの違いは?

 重要なのは "公式リリースはたったの 4 回しかない" という事です。見た事のないバージョンもあるかも知れません...それらは殆どが pebuilder.exe 単体でリリースされたものか、Reatogoへの OEM です。古いバージョンを好んで使う酔狂なヒトはまずいないと思いますが、3.1.3 以前のバージョンはミラーからも削除されているようですし、最新の公式リリース版を使うか、最新の安定版を (バグ修正リリースがあればそちらを) 使うのがいいと思います。

 個人的には公式リリース版だけ追っかけていくのが楽だとは思います...情報も多いですし。確かに、最新版には便利な機能がありますが、結局の所 "できる事" というのは安定版と殆ど差はありません。

 以下にバージョンによる pebuilder.exe の機能の違いを列挙します。主な変更点の赤字の部分は特に重要だと思われる改変です。同梱のプラグインについては一切の説明を省いてあります。

3.1.10a バグ修正リリース (特になし)
3.1.10 安定版 日本語言語ファイルと日本語ヘルプが同梱されるようになった。
ビルド時に "ファイルを大文字化しない" オプションが追加された。
・ "ライティング後に ISO イメージを消去" オプションが追加された。
・ "ライティング後にビルドデータを消去" オプションが追加された。
プラグインの [SourceDisksFiles]セクションの属性(第 3 引数)に"8=ファイルを大文字化"が追加された。
3.1.9 安定版 (特になし)
3.1.8b バグ修正リリース (特になし)
3.1.8a β 多言語対応状況感知 Help が追加になった。
・言語ファイルを自動認識できるようになった。
・ "ベリファイ(StarBurn)" オプションが追加された。
Windows インストールファイルの検索が行えるようになった。
3.1.7 安定版 ・ライティングツールに "StarBurn" が追加された
3.1.6 安定版 (特になし)
3.1.5 安定版 多言語対応
3.1.4 β Windows ファイルは大文字でコピーされるようになった。
プラグインダイアログに "Config" ボタンが追加された。
・プラグインダイアログに "Refresh" ボタンが追加された。
プラグインの[PEBuilder]セクションに "Config" が追加された。
3.1.3 公式リリース ・コマンドラインオプション "-auto" の仕様変更。このオプションを付けると確認ダイアログを出さなくなった。
input.inf の[input]セクションから "whattodo" が削除された。
3.1.2 公式リリース ・ "ISOduplicatesonce" が正しく動作するようになった。
3.1.1 安定版 ・コマンドラインオプション "-exit" が正しく動作するようになった。
3.1.0 公式リリース (特になし)
3.0.37 β (特になし)
3.0.36 β (特になし)
3.0.35 安定版 出力パスを絶対/相対パスで切り替えられるようになった。
input.inf の[input]セクションに "useAbsoluteOutput" が追加された。
・出力パスが相対パスの場合、input.ini の[input]セクションの "OutDir" に格納されるようになった。
・出力パスが絶対パスの場合、input.ini の[input]セクションの "fulloutdir" に格納されるようになった。
3.0.34 安定版 ・コマンドラインオプション "-auto" の仕様変更。このオプションを指定するとビルドデータの上書き時に確認ダイアログが出なくなるようになった。
ライティング機能(cdrecord.exe を使用)が追加された
・ "Burn To CD" / "Erase CDRW" / "Device" が追加になった。
3.0.33 安定版 UI が大幅に変更になった。
・コマンドラインオプションに-auto -exit -overwrite -verbose -skipregistry -skipfiles -buildiso が追加された。
・ pebuilder.exe がエラー終了時にエラーコードを返すようになった。
出力パス(OutDir)が "相対パス固定" になった。
恐らくこのバージョンから input.inf の[BuildISO]セクションで "exec" が使えなくなった。
3.0.32 安定版 XP SP2(RC)対応
3.0.31 安定版 (特になし)
3.0.30 公式リリース ・ソースダイアログに "Search" が追加された。
・ソースダイアログに "Check" が追加された。
・プラグインの[SourceDisksFiles]セクションの属性(第 3 引数)が"4=ファイルが存在する時のみコピー"の時に起こる問題を修正。
3.0.29 安定版 (特になし)
3.0.28 安定版 (特になし)
3.0.27 安定版 (特になし)
3.0.26 安定版 ・バグ fix
3.0.25 安定版 プラグインの記述で Windows のバージョンによる条件をセクションに設定できるようになった。
3.0.24 安定版 ・プラグインの[SourceDisksFiles]セクションの属性に"4=ファイルが存在する時のみコピー"が追加された。
3.0.23 安定版 XP 無印でビルドできなくなった。
3.0.22 安定版 (特になし)
3.0.21 安定版 (特になし)
3.0.20 安定版 (特になし)
3.0.19 安定版 環境変�の[BuildISO]セクションの "exec" に mkisofs へのパラメータが保存されるようになった。これを利用してビルド時に独自のスクリプトを実行できるようになった。
3.0.18 安定版 (特になし)
3.0.17 安定版 (特になし)
3.0.16b 安定版 (特になし)
3.0.16a 安定版 (特になし)
3.0.16 安定版 (特になし)
3.0.15 β (特になし)
3.0.14a β (特になし)
3.0.14 β (特になし)
3.0.13 β ・プラグインダイアログに "Edit" が追加された。
3.0.12 β ・オプションダイアログが削除された。
3.0.11 β プラグインダイアログに "Add" が追加された。CAB で固めたプラグインをここから追加する事ができます。
・プラグインダイアログに "Remove" が追加された。
3.0.10 β ・プラグインダイアログに "Help" が追加された。
・プラグインの[PEBuilder]セクションに "Help" が追加された。
・プラグインの[SourceDisksFiles]セクションの属性(第 3 引数:1="存在チェックを行う")が追加された。
3.0.9 β (特になし)
3.0.8 β ・ "エラー /ワーニング" 用ナビゲートボタンが追加された。
・プラグインの[PEBuilder]セクションに "Name" が追加された。
・プラグインの[PEBuilder]セクションに "Enabled" が追加された。
3.0.7 β (特になし)
3.0.6 β (特になし)
3.0.5 β (特になし)
3.0.4 β (特になし)
3.0.3 β (特になし)
3.0.2 β ・ GUI で操作した内容を記憶するようなった。
3.0.1 β ・バーボーズモードが追加された。
・プラグインに[AddLine], [DelLine], [SetValue]セクションが追加された。
追加ついでに netmscli.inf, netnb.inf, nettcpip.inf にパッチを当てるようになった( "fix_net" プラグインが必要なのはこのためです)。
3.0.0 β ビルド用環境ファイルが pebuilder.inf に一本化され、software.inf/setupreg.inf/default.inf がなくなった。
・コマンドラインオプション "-v(バーボーズモード)" が追加された。
プラグインがサポートされた。

 それにしても仕様変更が結構ありますね。旧バージョンの input.inf を使いまわすのはやめた方がいいと思います。
 FAT32 を使っちゃいけないのは何故ですか?

  PE Builder でのプラグインの組み込み順序は "プラグインフォルダ内のフォルダの昇順" となります...NTFS では。正確に言うと、フォルダを検索する WindowsAPI は NTFS の場合、常に昇順でフォルダを列挙しますが、FAT32 の場合には多くの場合 "フォルダの作成順" で列挙されます。ですので FAT32 の場合、いくら Explorer で整列させても検索順序は変わりません。

 つまりは "意図した組み込み順序にならない事による不具合" が起きる可能性が高まるのです。例えば "Explorer & IE" プラグインはフォルダ名が "z_ExplorerIE" となっています。これはできるだけ後でプラグインを組み込まなくてはならない事を意味しています。しかし FAT32 の場合には、このフォルダ名に何の意味もなくなってしまいます。

 FAT32 で順序を変えるには、一旦プラグインフォルダを別の場所へ "移動" して組み込みたい順番にプラグインフォルダへ書き戻すしかありません。 "Plugin Manager(v1)" で行っている処理も同様のロジックです。しかし、フラグメントの大きいディスクに於いては、 "移動" - > "書き戻し" でも意図した順序にならない可能性があります。

 プラグインを追加する度にフォルダの順序を気にする必要が出てくるので、特別な理由がない限り PE Builder は NTFS なドライブにインストールするようにして下さい。

 NTFS なドライブにインストールしても、組み込み順序を変更するのにプラグインのサブフォルダ名を変更する必要があります。 Plugin Manager v2 を使えばサブフォルダ名を変更する事なくプラグインの組み込み順序を変更する事ができます。


 nLite で小さくした XP-CD を使えますか?

 結論から言うと "使えます" 。但し、PE Builder は"コピーできないファイルがある"とエラーを返します。Postprocessing プラグイン等のガイジンサンのスクリプトや Plugin Manager / v2 はこのエラーコードを見ているので、 "ビルド" -> "ISO 作成" をシームレスに行う事ができなくなります。もちろん、PE Builder だけで完結する場合はこの限りではありません。
 音を鳴らすにはどうしたらいいのですか?

 2ch の過去ログをご覧下さい。正直、この話題からは逃げてます。FAQ ページにあるまじき行為ですが、今の所どう足掻いても環境依存するのです。やり方は確立されているのですが、 "こうすれば絶対に音が鳴らせる" というものではありません。確かに FAQ ではあるのですが...。

 一つの方法として、332氏 + 491氏 + 520氏による "Enable Sound" プラグインがあります。


 NTOSKRNL.EXE がないって怒られます。

 PE Builder 3.1.10 を使ってビルドしていませんか?この問題が修正されている 3.1.10a 以降を使ってビルドしてみて下さい。

See Also:


 Explorer & IE プラグインを導入していますが、Nu2Menu プラグインを組み込む必要があるのですか?

 必要ではありませんが、このプラグインを導入しないとビルド時に大量のエラーが出ます。"Explorer & IE" プラグインを前提とした多くの BartPE 作成解説サイトで、Nu2Menu プラグインが必須になっているのはそのためです。また、組み込んだ状態だと BartPE の CD の入ったドライブを Explorer からダブルクリックすると Nu2Menu が Autorun で起動してウザったい事になります

 ビルド時に大量のエラーが出る理由ですが、多くのプラグインが Nu2Menu のメニューにメニューアイテムを追加しているからです。Nu2Menu プラグインを無効にすると書き込む先の"nu2menu.xml"が存在しなくなるためにエラーが出ます。

 これを回避する方法は幾つかあります。

  1. エラーを無視する。
    無視してもちゃんとビルドデータはできています。但し、PE Builder は"書き込めないファイルがある"とエラーを返します。"Postprocessing" プラグイン等のガイジンサンのスクリプトや Plugin Manager / v2 はこのエラーコードを見ているので、 "ビルド" -> "ISO 作成" をシームレスに行う事ができなくなります。もちろん、PE Builder だけで完結する場合はこの限りではありません。
  2. Nu2Menu にメニューを追加しているプラグインから Nu2Menu に関する記述をコメントアウトする。
    ちょっと面倒です。
  3. Nu2Menu プラグインの [SourceDisksFiles] セクションにある "nu2menu.xml=a,,3" 以外をすべてコメントアウトする。
    Nu2Menu 環境を作る時にプラグインをまた書き直さなくてはなりませんが。
  4. "Null2Menu" プラグインを有効にして "Nu2Menu" プラグインを無効にする。
    これが一番簡単かも。i386 フォルダにダミーの nu2menu.xml が残ってしまいますが、プラグインをオリジナルのままにしておけるという利点があります。

 BartPE を"Press any key to boot from CD"を出さずに起動させたいのですが?

  "BartPE が CD-ROM から起動しない" の逆を行います。具体的には、bootfix.bin をコピーしているすべてのプラグインの該当箇所をすべてコメントアウトすればいい事になります。 "Japanese Language - 日本語サポート" プラグインの場合だと、"bootfix.bin=1"となっている行の頭にセミコロン (;) を付けてコメントアウトします。

 "bootfix.bin"が存在しなければ"Press any key to boot from CD"は出なくなります。但し、環境によっては"bootfix.bin"を組み込まないと BartPE が起動しない事があります。

 私の体験談ですが、古い CD-ROM ドライブや調子の悪い CD-ROM ドライブで、

  1. "Press any key to boot from CD"が出ない (bootfix.bin 無) ブート CD。
  2. かつ、CD-R メディアに焼いたブート CD。
 これらがことごとく起動しない事がありました。他の PC から DVD ドライブを引っこ抜いて接続したら、上記の条件の CD でも素直に起動したのですが...。

 特殊な事情がない限り、"Press any key to boot from CD"方式の起動をオススメします。BartPE を起動する PC が bootfix.bin を組み込まなくても自動的に起動する事が確認できているのであればこの限りではありません。

See Also:


 (ほにゃらら)のプラグインはどこにあるのですか? 

普通に緊急用としての BartPE を作る分には "参考になる Web サイトは?" を辿ればすべて揃うハズです。

 それでも見つからないのであれば、本家筋をあたってみましょう。


どのように私は私のDNSアドレスを提供見つけるのですか?  なお、 "参考になる書籍は?" で紹介している雑誌の中には Web サイトでプラグインを公開しているところもあります。

 USB & 1394 プラグインで USB-HDD がホットプラグで認識しません。

 プラグインの使い方を間違っていませんか?
 ...これだけでちゃんと動作すると思っているのではないでしょうね?
 実は違います...正確には"違う事もあります"。以下が正しいフローです。
  1. BartPE で使う可能性のある USB 機器をすべて実機で認識させる。
  2. すべての USB コネクタで認識させる。
  3. レジストリエディタを起動。
  4. [HKEY_LOCAL_MACHINE \System\Select] にある Current の値を覚えておく。Current が "1" なら 8. 以降の手順を行う。
  5. usb1394.bat をテキストエディタで開き、"Controlset001" を "ControlSetnnn (Current の値)" に置換。
  6. usb1394.bat を実行。
  7. usb1394.reg をテキストエディタで開き、"ControlSetnnn (Current の値)" を "ControlSet001" に置換。
  8. "(実機の OS インストールドライブ):\\Windows ~"になっている所を(後述)に置換。
  9. 置換したパスに含まれるファイルと、そのファイルが参照しているファイルを調べ、プラグインに追加。
 このようにしないと、本来の動作は行われません(ちなみに私の環境は Controlset003 です)。
処理 8.において置換すべき文字列は環境によって異なるので注意が必要です。

[PEBuilder3.0.32 以降 + XP-SP2 ソース]
・"X:\I386" に置換。

[SP1 ソース]
・"%SystemRoot%" に置換。
・置換した箇所に Registry Expander を指定した方がいい。

 PE Builder は(恐らく 3.0.32 以降)、XP-SP2 をソースにすると BartPE のドライブレターが "X:" に固定されます。

 プラグインのヘルプにあるように "%SystemRoot%" に置換するだけでもいい場合がありますが、レジストリの種類が REG_SZ の場合にはアプリケーションが対応していない限り環境変数を正しく解釈しませんし、レジストリの種類が REG_EXPAND_SZ であってもアプリケーション側の問題で環境変数を正しく解釈しない事があります。

 以上のような理由から、BartPE を "PEBuilder 3.0.32 以降 + XP-SP2 ソース" でビルドしている場合には "X:\I386" で置換する事が推奨されます。

 SP1 ソースの場合には BartPE のドライブレターが不定であるため、とりあえず "%SystemRoot%" に置換しておき、スクリプト等で Registry Expander を呼び出して処理する必要があります。

※詳細な情報は "Bart's PE Builder スレッド 4 枚目" の 600 番以降で得ることができます。


 ファイルがどのファイルを参照しているか調べるには Dependency Walker を使います...が、ドライバ不要のデバイスは置換作業を行わなくても認識される事がありますので、血眼になってファイルを追いかける必要はないかもしれません。1 ~ 7 迄の作業だけでは認識しない特定の USB デバイスをどうしても動作させたいと言うのであれば話は別ですが。
  • 新しい USB 機器が増えたら usb1394.reg を再生成しなくてはならない(した方がいい)。
  • 固定ハードディスク扱いの USB 機器は BartPE を生成した PC が既知のデバイスでないとホットプラグできない (可能性が高い)。
 この2点がポイントです。

 レジストリが肥大するのが少しイヤではありますが、片っ端からお友達の持っている USB 機器を自分の PC に繋いで認識させておくと

イザという時に便利


 ...かもしれません。

追記:
 上記の処理をやるにしても、REG_EXPAND_SZ や REG_MULTI_SZ は hex(2) や hex(7) のようにバイナリ扱いで出力されています。しかも Unicode のバイナリです。ここに含まれるパスを修正するのは非常に困難です。上記の処理を何も考えずに行ってくれるツールを作成しました。 Registry File Generator for USB & 1394-Plugin です。

  Registry File Generator for USB & 1394-Plugin は、

  • 余計なレジストリヘッダを吐かない。
  • 吐いたレジストリファイルは Ansi なのでサイズが小さい。
  • Controlset 自動認識。
  • XP -SP1 / XP-SP2 の環境に合わせて自動置換。
  • REG_SZ / REG_EXPAND_SZ (hex(2)) / REG_MULTI_SZ (hex(7)) が対象。
 という特徴を持っています。バイナリツールなので、将来に於いて吐き出さなくてはならないレジストリキーが増えた場合に不安を感じるかもしれませんが、添付の usb1394.env を修正する事により、自由に変更できます。また、このツールは表向き"USB & 1394 プラグイン用"となっていますが、汎用的なレジストリファイル出力ツールとして使うことができます。

See Also:


 Dell の CD でビルドすると loadKey() のエラーになります。

 公式 FAQ の #28 でなく、#9 と同じ症状に悩まされた場合には、以下の手順でビルドが可能になるようです。
  1. Dell の CD を適当な場所にコピー。
  2. コピー先の I386 フォルダに移動。
  3. I386 フォルダへ fixdell.cmd をコピー。
    (
  4. 同じく SubInACL.exe をコピー。
    (
  5. fixdell.cmd を実行。
  6. PE Builder のソースに 1.のフォルダを指定。
  7. BartPE をビルド。
※詳細な情報は "Bart's PE Builder スレッド 4 枚目" の 631 番以降で得ることができます。

 現在、トラブルを抱えています。2ch で素早く回答を得るにはどうすればいいのでしょうか?

 レスが付かなかったり、冷やかな反応をされるのは、
  • テンプレートサイトやこのサイト、或いは過去ログに同様の事例が掲載されている場合。
  • ビルド環境やエラーメッセージ情報が欠落していて、憶測でしか物が言えない場合。
  • 特殊な環境下にある場合(誰も所有していないソフトウェア/ハードウェア固有の問題を提示した等)。
  • 割れ物を使っている場合。
  • 最初から欲張ってプラグインを入れすぎている環境で、障害箇所を特定しようがない場合。
  • "2ch スタンダードな BartPE"以外の方法でビルドした BartPE に関する質問をした場合。
 のいずれかでしょう。

 DSP 版やパッケージ版の XP を使って"2ch スタンダードな BartPE"を最小構成で作った場合、ほぼすべての環境で正常に起動できます。元来 PE は "Preinstalled Environment" 、つまり、OS インストール用に作られた XP のサブセット OS です。言い換えれば起動できない環境があるのは問題な訳です。しかしながら、トラブルに遭遇するのも事実です...ですが、トラブルの殆どはサブセット OS をフルセット OS に近づけようとする過程で生じます。具体的にはドライバの追加やプラグインの追加がそれに当たります。

 BartPE を最初に作る場合には"2ch スタンダードな BartPE"をオススメします。そして、それが確実に動作する事を確認してからプラグインを一つずつ追加して下さい。その上でトラブルに遭遇したのであれば、テンプレートサイトやこのサイト、或いは過去ログを活用して下さい。それでもなおトラブルが解消できないのであれば、ありのままの現状を"正確に"伝えるようにしましょう。

  • ソースに使っている XP / Server 2003 の種類。
  • SP の種類。
  • nLite 等の使用有無。
  • ソースは CD なのか、それともリカバリ領域の I386 からなのか?
  • PE Builder のバージョン。
  • USB フラッシュ関連なら搭載メモリ量と ISO サイズ、PE のタイプ (ISO ブート / HDD ライクブート)。
  • ブルースクリーン (BSoD) になるのであれば、エラーメッセージまたはエラー ID。
  • ビルド時にエラーになるのであればビルドログ中のエラー箇所の抜粋。
  • メーカー製 PC の場合はそのメーカ名 (特に Dell)。
  • プラグインの動作に関するものであればそのプラグインの入手先(メジャーなものであれば不要)。
  • 使っている mkisofs の入手先 (添付版かそうでないか)。
  • 今までに自分が試した事。
  "~ができない" だけだと、レスを付けるヒトも憶測でしか物を言えません。ピンポイントに近いアドバイスを得たいのであれば、詳しく状況を説明する事が重要です。問題解決のために自分が試してみた事も付け加えておくといいでしょう。"憶測 (経験則)" によるものと "推測 (動作原理から導き出される理論的な仮説)" によるものではアドバイスの質が違ってきます

 レスが付いた時に、回答する側は"回避策"あるいは"原因となる部位を特定するための検証手順"を提示する場合が殆どです。検証手順を示されたら、まずはその検証を行い結果を報告して下さい。この際に他の事(新たにプラグインを追加するとかビルド環境を変えるとか)をやってしまうと、例えその結果トラブルが解決できたとしても、原因が特定できないために、同じ症状で同じ質問が繰り返される事になります。

  • 検証結果が OK だったのか NG だったのか
  • 解決できたのであれば、その手順
 回答によって解決したのであれば、同様の症状に悩んでいる方のためにも、その旨をちゃんと書き込んで下さい。
 ---------------------------------------- Bart's PE Builder スレッド 5 枚目 424 より ----------------------------------------  質問にレス付けてる側から言わせてもらえれば、テンプレサイトや FAQ を見た上で質問しているのであれば回避策を提示したり、検証手順を提示するのは全く苦になりません。 (聞く耳持ってるヒトならね)  あるトラブルで誰かが 1 時間悩んだとして、その情報がどこにも公開されていなければ、 (スキルの差はともあれ)同じトラブルで他の誰かも 1 時間悩む事になります。 100 人が同じ所で躓けばトータルで 100 時間もの無駄が生じますよね。  原因追究しようとするのも、フィードバックを求めるのも、FAQ をまとめたのも  全体で見た場合の"時間の無駄"を極力なくすためです。 BartPE でのエラー&トライはご存じの通り非常に手間が掛かりますのでね。  故に、検証手順を示したのに"解決しました"とだけ書いて(或いはそらすらなく)、 "過程と結果をフィードバックしない"ヒトや、検証手順以外の事をやったりして "何が原因だったのかをうやむやにしてしまう"ヒトが叩かれる傾向にあるのは過去ログを読んでいればなんとなく理解できるかと思います。  # 矢継ぎ早に検証手順を提示されては"面食らってしまう" # というのも理解してはおりますが...(^^;A 

 回答者の指摘によって直接的/間接的を問わず、自分にミスがあった事に気付いた場合には、素直に認めましょう。はぐらかされると、回答者は別の解法を提示してきます(もちろん的外れな解法を)。これは双方にとって時間の無駄であり、スレにも有益な情報をもたらしません。

 質問をする事は全然悪いことではありませんし、質問時に自分を卑下する事もありません。ただ、的確なアドバイスを求めるのであれば詳細な情報を公開する事、そして、アドバイスをくれたヒトに素直に従ってみる事です(fusianasan やブラクラは除く)。


 RegistryExpander って何ですか?

 Sherpya さん作のソフトウェアです。RegExpander.exe は [HKEY_LOCAL_MACHIN_SOFTWARE\Sherpya\ RegExpander] 以下にあるレジストリエントリが指すレジストリエントリのキーの値の内、"環境変数で置き換えられているパスを BartPE の実際のパス (絶対パス) へ置換する" という事をおこないます。少しややこしいですね。

 例えば、あるソフトが "Dir" というキーに "C:\Windows\System32" という値を保持していたとします。PEBuilder 3.0.32 以前やソースに SP1 を使っていると、BartPE から起動したときのシステムドライブのドライブレターは不定となります。よって、このキーの値は不正なものとなってしまいます。PEBuilder3.0.32 以降 + XP-SP2 ソースであれば BartPE のシステムドライブのドライブレターは X: に固定されますので、上記のような場合だと単純に "X:\I386\System32" にすればいいのですが。

 BartPE が起動してみないとシステムドライブのドライブレターが確定しない場合には...先述の例で行くと "%SystemRoot%\System32" へ置換してやればいい事があります。但し、それはレジストリキーの種類が REZ_EXPAND_SZ かつ "アプリケーションが環境変数展開に対応している" 事が前提です。REG_SZ を無理矢理 REG_EXPAND_SZ に変更して環境変数を含むパスに置換しても、アプリケーション側が対応していなければ正しく動作しません。また、REG_EXPAND_SZ のキーに絶対パスで記述しているアプリケーションは "環境変数展開に対応していない" 可能性もあります。つまり、REG_SZ だろうが REG_EXPAND_SZ だろうが、環境変数を展開してくれるかどうかはアプリケーション次第という事になります。

 REG_SZ / REG_EXPAND_SZ に環境変数を含むパスを指定して、それを RegExpander.exe のエントリ ([HKEY_LOCAL_MACHIN_SOFTWARE\Sherpya\RegExpander] 以下) に書き込んでおき、起動時に RegExpander.exe を実行すると、指定されたキーの値を絶対パスで置換してくれます。

 "PEBuilder 3.0.32 以降 + XP-SP2" ソースでは、"X: 固定なので RegistryExpander を使わないでいい" のかと言えば、そういう訳でもありません。例えば、"Document and Settings" 以下を指す環境変数 (%APPDATA% や %HOMEPATH% 等) は RAM ディスク(B: 等)上に作られる事があり、X: で置換する訳にはいかないからです。

 RegExpander.exe は複数のプラグインから RunOnce や autorun*.cmd で呼び出されます。何度も実行されるとオーバーヘッドが大きくなりますので、できるだけ一度の起動になるようにして下さい。但し、プラグイン (の持つ二次的なファイルやプログラム) の組み込みタイミングによっては RegExpander.exe を複数回実行せざるを得ない事があります。

 ビルドを試行錯誤している段階であれば、RegExpander.exe での置換が正常に行われているかをレジストリエディタで確認して下さい。RegistryExpander を使用しているプラグインは置換が正常に行われる事を前提にして作られています。

 プラグインへの記述は、実際に RegistryExpander を使用しているプラグインを参考にするのが勉強になると思います。

 RegistryExpander を用いた環境変数の展開がうまくいかない場合には、Explorer が認識している特殊フォルダ用の環境変数 (シェルフォルダ) が正しく設定されていない可能性があります。

See Also:


 起動するまでに何度もコマンドラインプロンプト(DOS 窓)が出てきてウザいのですが?

  Autorun*.cmd で実行される処理の順序を明示的に指定したいのですが?

 PPSH を使うといいでしょう。PPSH は簡易 Pascal スクリプト実行環境です。汎用ツールではありますが、主に BartPE 用に特化された関数/手続きが実装されています。
begin    // Registry Expander   // ---------------------------------------------------------------------------   Print('Registry Expander Loading...');   Exec('RegExpander.exe','',-1);    // MMC add-on for XP-SP2   // ---------------------------------------------------------------------------   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','1004',3);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','1206',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','1806',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','1807',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','1808',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','1809',3);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2000',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2100',3);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2101',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2102',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2200',0);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2201',1);   RegWriteInteger(2,'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0','2300',0);    // Explorer & IE   // ---------------------------------------------------------------------------   // Comment Out!! (Explorer & IE.inf)   // 0x0,"Software\Microsoft\Windows\CurrentVersion\RunOnce"   // 0x1,"Software\Microsoft\Windows\CurrentVersion\RunOnce","Startsrv","\i386\system32\Startsrv.cmd"   // ---------------------------------------------------------------------------   Print('Start Windows Management Instrumentation Service...');   ServiceStart('winmgmt');   Print('Start Cryptographic Services...');   ServiceStart('CryptSvc');    // SetFolderPath   // ---------------------------------------------------------------------------   HideExec('shsfp.exe','-f',-1);   SettingChangeNotification('Environment');    // Network[PENETCFG]   // ---------------------------------------------------------------------------   // Disable Network[PENETCFG] [Auto-Start]   // ---------------------------------------------------------------------------   Print('Start Network Services...');   Exec('penetcfg.exe','/UseProfile:penetcfg.ini',-1);  if RegisterRoutine('shell32.dll','SHChangeNotify','IIII','I'then     SHChangeNotify($08000000,$1000,0,0); end; 

 上は私が実際に使用しているスクリプトです。if 文の条件分岐が一箇所のみ...ほぼ関数をただ並べただけの簡単なスクリプトになっています。構文に関する一覧は PPA の項目で得られます。PPSH で使える関数/手続きに関しては PPSH 付属のヘルプファイルを参照して下さい。

 具体的な使い方ですが、コメント部にあるように、"Explorer & IE" プラグインの一部をコメントアウトし、autorun*.cmd の実行をすべて止めます。そして、autorun*.cmd 内の処理を実行したい順にスクリプトに移植します。以下に主要な機能の対応表を載せておきます。

外部アプリケーションの実行 (そのまま記述) Exec() 第3引数に -1 を指定すると終了待ちを行う。
関連付けられたファイルの実行 - Shell()
外部アプリケーションの実行(非表示) > null HideExec() 第3引数に -1 を指定すると終了待ちを行う。
アプリケーションは非表示で実行されるため、ユーザの操作を伴う
アプリケーションを実行してはならない。
関連付けられたファイルの実行(非表示) - HideShell() ファイルに関連付けられたアプリケーションは非表示で実行されるため、
ユーザの操作を伴うアプリケーションを実行してはならない。
DLL 内の機能を実行 rundll.exe RegisterRoutine() RegisterRoutine() で登録した API が関数として利用可能になる。
COM サーバの登録 regsvr32.exe RegisterServer() System32 に存在する DLL を指定する場合にはパスの指定は不要。
サービスの開始 net start ServiceStart() 指定するサービス名はレジストリで確認する事。
サービスの停止 net stop ServiceStop() 指定するサービス名はレジストリで確認する事。
レジストリの設定 reg.exe 各種レジストリルーチン 後述するが、大量のレジストリ操作には向かない。
大量のレジストリを登録するだけであれば regedit.exe でインポートする事。
ファイルコピー copy CopyFile() ワイルドカード指定可。
フォルダコピー xcopy CopyFile() ワイルドカード指定可。
ファイル削除 delete DeleteFile() ワイルドカード指定可。
ファイル名変更 ren RenameFile()
ファイル移動 ren MoveFile() ワイルドカード指定可。
ディレクトリ作成 mkdir MkDir() サブフォルダまで一気に作成する。
C: \111\222\333 を指定する場合に、C:\111 が存在しなくても構わない。
ディレクトリ削除 rmdir RmDir() 削除するフォルダ内にファイルが存在していても構わない。
画面へのメッセージ表示 echo Print()
MessageBox()
ShowDialog()
それぞれ出力先が違うので注意。
繰り返し処理 for for ... to ... do
for ... downto ... do
汎用的な for 文。continue や break も利用可能。
条件分岐 if if ... then ...
if ... then ... else ...
if ...then ...else if ... else ...
汎用的な if 文。else や else if も利用可能。
ファイル存在チェック exist FileExists()
フォルダ存在チェック exist DirectoryExists()
ユーザ入力 < con InputBox()
ShowDialog()
はい/いいえ程度の選択であれば MessageBox()が使える。
ファイル名の指定なら FileOpenDialog()/FileSaveDialog()が使える。
フォルダ名の指定なら SelectDirectory()が使える。
スクリプトの中断 exit exit

 通常はデバッグ用のウィンドウが表示されますが、一通り動作確認が済んだのならPPSH を "/nosplash" スイッチ付きで起動するようにすれば、サイレントモードで実行する事ができます。

・ AutoRun*.cmd での問題点


  • どうしても黒い窓が表示されてしまいます。
  • AutoRun*.cmd では起動順序の設定が複雑になります。
  • AutoRun*.cmd は cmd.exe を何度も呼び出したり、コマンドラインツールを何度も実行したりしてオーバーヘッドが大きくなりがちです。
・ PPSH での問題点
  • デバッグが面倒です。一度 PE 環境でスクリプトを検証しなくてはなりません。
  • レジストリの記述が可能ですが、レジストリの規模が大きい場合には逆に速度が低下します。また、バイナリデータ等の記述が面倒です。
    そのような場合には
     Exec('regedit.exe','/s test.reg',-1);
    のようにして regedit でレジストリファイルを読み込んで下さい。

 特殊フォルダ用の環境変数 (シェルフォルダ) が正しく登録されていません。

 Explorer が使用する特殊なフォルダ(シェルフォルダ)はレジストリを書き換えただけでは認識されません。

 起動時に shsfp.exe を実行して環境変数とシェルフォルダの関連付けを行って下さい。環境変数からパスへの変換が正しく行われないと、RegistryExpander も正常動作せず、あなたの組み込んだアプリケーションが BartPE で期待した動作をしない事があります。

 ※詳細な情報は "Bart's PE Builder スレッド 4 枚目" の 217 番以降で得ることができます。 

See Also:


 環境変数が正しく登録されていません。

SP3 ソースで MMC.exe を開くとデスクトップに変なファイルが生成されます。

 環境変数はレジストリに保持されています。ユーザー環境変数が [HKEY_CURRENT_USER\Environment]、システム環境変数が [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] にあります。

 BartPE の場合、プラグイン等で環境変数をレジストリに記述すれば必ず反映される訳ではなく、場合によっては環境変数更新通知をシステムに対して行わなくてはならない事があります。これを行わないと、例えば SP3 ソースに於いて mmc.exe を実行するとデスクトップに mmc????.xml というファイルが生成されたりします。

 スタートアップに "環境変数 TEMP を設定する (2ch Bart's PE Builder Thread Uploader)" や SHSFP (v1.07 以降) を仕込むか、或いは PPSH (v1.03 以降) でスクリプトに "SettingChangeNotification('Environment');" を記述する事で解決できます。

 ※詳細な情報は "Bart's PE Builder スレッド 6 枚目" の 215 番以降で得ることができます。 

See Also:


 URL (プロトコル) の関連付けがうまくいきません。

 ブラウザのプラグインを組み込んだのに、ファイル名を指定して実行で "http://~" と入力しても IE が起動してしまう場合には、Explorer のフォルダオプションにある "フォルダの種類" タブに "(なし) URL: HyperText 転送プロトコル (HTTP)" 等が表示されているか確認して下さい。

 もし、表示されていないのであれば、どんなにブラウザの関連付けの設定を行っても、URL の内容が組み込んだブラウザで表示される事はありません。まず、"URL (プロトコル) 関連付けプラグイン (URL Associations Plugin)" を組み込んでみて下さい。
 
 mms: 等の特殊プロトコルを設定する時も "URL (プロトコル) 関連付けプラグイン(URL Associations Plugin)" の内容を参考にしてみて下さい。


 インストール CD を持っていません。どうすればいいのでしょうか?

 PE Builder 3.1.8a 以降であれば、インストレーションファイル (PC プリインストール) を検索してそれをソースに使う事ができます...が、プリインストールの状況はメーカによって異なりますので、必ずソースにできるかと言えばそうでもなかったりします。

 HDD に i386 フォルダがあるのであれば、wxp10.zip と組み合わせて起動可能なインストール CD を作る事が可能な事があります (必ず作れると断言はできませんが)。インストール CD が作れたのであればしめたもので、SP+メーカー等を使って SP をあて、それをソースにする事ができます。

See Also:


 BartPE のレジストリでの ControlSet の扱いがよくわかりません。

 混乱の元になっているのがレジストリにおける ControlSet の扱いです。

 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet] に存在するレジストリキーを、プラグインの [SetupReg.AddReg] に記述する場合には CurrentControlSet ではなく ControlSet001 を指定する必要があります。BartPE はシングルユーザで動作するため、必然的に ControlSet は一つしか存在しません。つまり ControlSet001 です。

 [SetupReg.AddReg] に ControlSet001 を記述すると、PE 起動時に CurrentControlSet へ転記されます。CurrentControlSet を記述しても意図した動作にはなりません。

 実機ではどうでしょうか?実際に動作しているのは CurrentControlSet ですから、こちらからデータを読み出すのはOKとなります。但し、これを元にプラグインで [SetupReg.AddReg] に記述するにはやはり ControlSet001 へと置換しなくてはなりません。

 また、実機の CurrentControlSet は "起動中の Windows が参照しているレジストリ" ですから、保護機能が働いてデータを正常に読み出せない場合があります。よって、CurrentControlSet ではなく ControlSet からデータを抽出した方がいい事になるのですが、ここで早とちりをしないようにしなくてはなりません。PE のプラグインへは ControlSet001 で書き出さなくてはならないのですが、だからといって実機の ControlSet001 を参照すればいい訳ではないという点です。

 [HKEY_LOCAL_MACHINE \System\Select] にある Current の値を確認してみて下さい。この値が指す ControlSet が CurrentControlSet と同等のレジストリキーです。Current の値が 2 であれば、読み出すべき目的の ControlSet は "ControlSet002" となります。

 手順をおさらいしてみましょう。

  1. [HKEY_LOCAL_MACHINE\System\Select] にある Current の値を確認。
  2. Current の値が指す ControlSet からデータをエクスポート。
  3. (プラグイン用にゴニョゴニョ)
  4. ControlSet を ControlSet001 へ置換してプラグインに記述。
 プラグインの中には *.bat / *.cmd で実機のレジストリからレジストリファイルを生成するものがありますが、それらは ControlSet001 からの読み出しを行っている事が多いです。このようなプラグインを使用する場合には *.bat / *.cmd の ControlSet001 を自分の環境に合わせて置換し、生成されたレジストリファイルの ControlSet を ControlSet001 または CurrentControlSet へ置換してやらなくてはなりません。さっきと言ってる事が違うと思われるかもしれませんが、生成されたレジストリファイルは PE 起動後に regedit.exe を伴ってインポートされる仕組みになっており、CurrentControlSet への置換でも問題はないという訳です。但し、保護機能が働いてインポートに失敗する事がありますので、やはり ControlSet001 への置換が無難だと思われます。

 このようなプラグインに出会ったら、*.bat/*.cmd を調べてレジストリ抽出部を "Registry File Generator" に任せるように改変するのがお手軽で確実だと思います。

See Also:


 プラグインの組み込み順序はどうなっているのですか?

 NTFS の場合はプラグインフォルダの昇順で組み込まれます。プラグインフォルダ内に複数のプラグインファイルがあった場合には、ファイル名の昇順で組み込まれます。FAT32 の場合はいずれも不定です。

 NTFS の場合でも、プラグインの組み込み順序は必ずしも Explorer で見たときの順序通りではない場合がある事に注意して下さい。例えば "z_"で始まるフォルダと"zz_"で始まるフォルダがあった場合、Explorer では"z_"->"zz_"ですが、実際の組み込み順序は"zz_"->"z_"です。

 組み込み順序を確認する時にはレジストリのみをビルドするといいと思います(PE Builder のコマンドラインスイッチ参照)。レジストリのみのビルドだと時間をそれほど掛けずに、組み込み順序を調べるためのビルドログを得ることができます。最終的な組み込み順序は必ずビルドログで確認して下さい。

See Also:


 ネットワークを有効にするには? 

 "ネットワーク" というものを一般的に解釈し、"インターネット接続環境" あるいは "LAN でのファイル共有 (SMB) 機能" を指すものとして話を進めます。

 PE Builder 3.1.10 (a) かつ、Explorer & IE 環境においてネットワークを有効にするために必要なプラグインは

  • "fix_net" プラグイン
  • "penetcfg" プラグイン (PE Builder 同梱)
 この二つだけです。

 PE Builder はビルド時に一部のネットワーク絡みのファイルを書き換えています。これらのファイルは UNICODE なのですが、2 バイトコードを考慮せずに ANSI 変換しているため、2 バイト圏の Windows をソースに使うとファイルが破壊され、正しく動作しなくなってしまいます。これらのファイルを最初から ANSI (Shift_JIS) 化し、コピーする役割を担っているのが "fix_net" プラグインです。

  "penetcfg" プラグインで使う penetcfg.exe には "PENetCfg v2.30 Multilanguage (Beta)" を使って下さい(日本語が使えます)。上書きで構いません。

 手動で penetcfg.exe を起動するか、penetcfg.exe を一連の初期化の後で自動実行させれば、ネットワークが有効になります。

 PE から他の PC へアクセスするには普通にマイネットワークから参照すれば OK ですが、XP が SP2 になってからというもの、PE から他の PC の共有参照は不安定です。他の PC への共有フォルダにアクセスできない場合には以下を試してみて下さい (5 枚目 533 ~ 534 より)。

  1. BartPE 起動後、PENetCfg で Network を有効にする。
    (もし"PENETCFG: Automatically start PE Network configurator" を仕込んでいれば、PENetCfg は起動時に動くはずです)
     この時、IP Address や Workgroup の設定を LAN に合わせて正しく行う。
  2. Explorer から、フォルダツリーからでなく、いきなりアドレスバーに共有 PC の "\\IP Address\共有フォルダ名" を入力し、Enter。
    (PC 名は使わない。共有フォルダ名 or 共有名を忘れない。)
  3. Password Dialog が出るまで、数秒~十数秒程度何もせず我慢して待つ。
  4. Dialog が出たら、共有 PC の <ユーザ名> と <パスワード> を誤り無く入力し、Enter。
  5. Explorer に共有元のフォルダが見えるまで、数秒~十数秒程度何もせずひたすら黙って待つ。
 手順 1 と手順 2 の間で数分何もせずに待つと共有参照に成功する確率が高くなるようです。一度共有に失敗すると、BartPE を再起動しない限り共有参照がすべて失敗する事があります。
  • "security=share" 設定になっている Linux の SAMBA サーバへの接続は特殊な事をせずとも、普通にマイネットワークからの参照でうまく行く事が多いです。
  • 最近の Windows は基本的にパスワードなしの共有を行えません。
 逆に他の PC から PE を参照する場合にはちょっとした手順が必要になります。まず、penetcfg.exe の [ファイル共有] ボタンを押し、Administrator のパスワードを設定します。一番簡単なのはこの時に "すべてのドライブのルートを共有する" にチェックを入れる事です。こうする事で PE のすべてのドライブを参照できます。

 任意のフォルダを共有させるには

  1. penetcfg.exe を実行。
  2. [ファイル共有] ボタンを押し、設定を行う。
  3. SHChangeNotify で変更通知 (または Explorer から F5 を手動で押下)。
    ( "FileSharingService" プラグイン同梱の ChgNtfy.exe でも同様の処理が可能)
 を行わないと Explorer のプロパティに [共有] タブが表示されません。4.を行っても[共有]タブが出ない事があります。その時は諦めて何度か F5 を押して下さい。

 XP がSP2 になってからというもの、PE への共有参照も繋がったり繋がらなかったり不安定です。PE の共有フォルダにアクセスできない場合には以下の事を試してみましょう。

  • penetcfg で "すべてのドライブのルートを共有する" ようにする。
  • 任意のフォルダを共有する場合には penetcfg のダイアログが消えて30 秒程待ってから共有の設定を行う。
  • PE の共有フォルダにアクセスする場合には penetcfg のダイアログが消えて30 秒程待ってからにする。
  • UNC パスでコンピュータ名ではなく IP アドレスを指定してみる。
 PE の共有フォルダへのアクセスには penetcfg.exe の機能を使わずに "FileSharingService" プラグインを使った方がいい場合があります。但し、penetcfg.exe と処理がカブるので、仕組を理解してから実行するようにして下さい。

 共有に失敗するメカニズムについてはよく解っていませんが、penetcfg 終了直後には何らかの名前解決に関する処理(キャッシュのプール?)が実行中で、それが完了する前に共有処理を行うとロック(或いはキャッシュ破壊)が発生し、以降名前解決に関する処理が正しく動作しないかのような振る舞いをする事があります。他の PC の共有参照であれPE の共有参照であれ、penetcfg のダイアログが消えてしばらくは何もしないというのが共有を成功させるコツだと思われます。

なお、Custom プラグイン等に以下の記述を追加しておくと PE の共有フォルダ参照時にパスワード入力を求められなくなります。

 [SetupReg.AddReg] 0x0,"ControlSet001\Control\Lsa" 0x4,"ControlSet001\Control\Lsa","RestrictAnonymous",0x0 

 ちなみに penetcfg.exe は [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver] というキーが存在すると、[ファイル共有] ボタン押下時に "ファイル共有サービスはインストールされています" というメッセージを出します。この時、サービスの起動状態には全く関係がありません。つまり、PE 起動時に penetcfg.exe を使ってファイル共有を行う場合には[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver] というキーを作成してはいけない事になります。

 Explorer & IE 環境の場合、penetcfg.exe と処理が重複するレジストリキーが含まれています。

[Software.AddReg]
Classes\CLSID\{7F368827-9516-11D0-83D9-00A0C911E5DF}

[SetupReg.AddReg]
ControlSet001\Services\Eventlog\System\Server
ControlSet001\Services\Eventlog\System\Srv
ControlSet001\Enum\Root\LEGACY_LANMANSERVER
ControlSet001\Enum\Root\LEGACY_SRV
ControlSet001\Services\LanmanServer
ControlSet001\Services\Srv


 これらは誤動作防止のためにコメントアウトするとよいでしょう (SetupReg には DelReg がないので Customize プラグインに記述する事はできません)。

See Also:


 ビルド環境が変わりました。気をつける点はありますか?

 ビルド環境のどこが変更になったかにもよります。

 例えば、ソースが変更になった場合、一般的な構成だと

  • "Explorer & IE" プラグイン
    ソースが XP-SP1 / XP-SP2 でプラグインそのものが違う。winlogon.cmd を実行して winlogon.exe を再生成する必要がある。
     
  • "fix_net" プラグイン
    inf_fix.cmd を実行して netmscli.inf / nettcpip.inf を再生成する必要がある。
 この 2 つは必ず行わなくてはならないでしょう。

 PE Builder のバージョンが変更になった場合には、前の環境のバックアップを取っておくべきです。PE Builder は頻繁に仕様変更が行われます。プラグインが更新された時も同様で、新しいバージョンでビルドして問題が出ない事が確認されるまでは古いバージョンを保存しておくべきです。

 プラグインの中には実機からファイルを抽出するものがあります。例えば、 "USB & 1394" プラグインを導入していてビルドしている PC が変更になった、または接続する機器が増えたのであれば、usb1394.reg を再生成する必要があります。一度やってしまえば殆どが以降、再抽出せずに正常動作するものが多いので忘れがちですが、実は本来の動作をしていなかった...という事がないように、導入しているプラグインの確認を"たまには"行った方がいいと思います。ビルド前に無条件に抽出/生成するスクリプトを書いて仕込んでみるのもいいでしょう。

See Also:


 XP-SP2 の CD でビルドできません。

 (SP+メーカー等で作った SP 適用済み CD ではない) XP-SP2 の CD には plugin.ocx が存在しない場合があり、これを必要とするプラグインでエラーになる事があるようです。詳しくはリンク先を参照してもらうとして、このファイルは XP-SP2 の IE 環境ではもはや必要のないものです。よってプラグインから記述を削除しても PE の動作に影響はありません。

 "Explorer & IE" プラグインを導入している場合には、Explorer&IE.inf の [SourceDisksFiles] セクションにある "plugin.ocx=2" を "plugin.ocx=2,,4" に書き換えて下さい。また、このファイルが不要になる事で要らなくなるレジストリがあります。

[Software.AddReg]
Classes\CLSID\{06DD38D3-D187-11CF-A80D-00C04FD74AD8}
Classes\TypeLib\{06DD38D0-D187-11CF-A80D-00C04FD74AD8}

これらは誤動作防止のためにコメントアウトするか、Customize プラグイン等で DelReg するとよいでしょう。

"Explorer & IE" プラグインを導入していない環境でも "Windows HTA and WSH" プラグイン (または、オリジナルの "Mshta" プラグイン) を導入していると同様の現象が起きます。修正とコメントアウトを行ってください。

MSHta.inf

[SourceDisksFiles]
plugin.ocx=2

plugin.ocx=2,,4

mshtml.inf
[CompatTable.Reg]
HKLM,"Software\Microsoft\Internet Explorer\ActiveX Compatibility\%CLSID_Plugin%", "Compatibility Flags",%REG_COMPAT%,0x20

;HKLM,"Software\Microsoft\Internet Explorer\ActiveX Compatibility\%CLSID_Plugin%", "Compatibility Flags",%REG_COMPAT%,0x20 [Strings]
CLSID_Plugin                        = "{06DD38D3-D187-11CF-A80D-00C04FD74AD8}"

;CLSID_Plugin                        = "{06DD38D3-D187-11CF-A80D-00C04FD74AD8}"

Autorun_MSHta.cmd
%SystemRoot%\System32\Regsvr32.exe %SystemRoot%\System32\plugin.ocx /S

rem %SystemRoot%\System32\Regsvr32.exe %SystemRoot%\System32\plugin.ocx /S

See Also:

 Vista のパーティションに対応していますか?

 Longhorn と呼ばれていた頃に実装予定だった WinFS という新しいファイルシステムがキャンセルされました。よって Vista パーティションは NTFS となります (システムパーティションに FAT32 は選択できません)。

 NTFS なので、XP の PE である BartPE から Vista の (システム) パーティションにアクセスする事は可能です。但し、注意が必要です。

 2000 / XP では有効活用されていなかったハードリンク / ジャンクションという機能があります。Vista ではこれが積極的に使用されるようになったようです。加えてシンボリックリンクの機能が追加されました。NTFS 上に構築されたシンボリックリンクはデフォルトでは 2000 / XP から辿る事ができません。シンボリックリンク用の API も Vista で最初に実装されたものです。

  • ショートカット
    実体は *.lnk という定義ファイル。これを実行すると定義されているアプリケーションを引数等の情報を元に起動する。
     
  • ハードリンク
     ファイル実体を指すポインタを増やす機能と考えるといい。
    • ファイルの実体である Z に対して A というファイル名が付けられているとする。ここに B というハードリンクを張ると Z は A でも B ででもアクセスできる。実体は同じものになるので、A に変更を加えると B も更新される。
    • ハードリンクを増やしてもディスク容量消費量は微々たるものになる。
    • A を削除しても B でアクセスできる。この状態で B を削除して初めてファイル Z を消去できる。
    • ハードリンクはフォルダに対して行えない。
    • 違うドライブにハードリンクを張る事はできない。
     
  • ジャンクション
    "NTFS 結合点" とも呼ばれる。フォルダ用のハードリンクと考えるといい。
    • DOS で言う subst の逆を行う "スナップイン" 機能に使われる。
    • 2000 / XP の Explorer でジャンクションを削除すると実体ごと消えてしまう。要注意!!
     
  • シンボリックリンク
    Vista ではジャンクションを拡張してシンボリックリンクを実現している模様。
    • ファイル / フォルダに対してシンボリックリンクを張ることができる。
    • シンボリックリンクはファイル / フォルダに付けられたショートカットの様なもの。
    • シンボリックリンクを参照すると実体が参照される。
    • ハードリンクと違い、シンボリックリンクを削除しても実体は削除されない。
    • シンボリックリンクは異なるドライブ間でも張れる。
 このような事情により、何も考えずに "単純コピーでバックアップ" という訳にはいかなくなりました。Vista での "Document and Settings" は "Users" のジャンクションなので、本来なら 2000 / XP で普通にアクセスできるハズですが、実際には保護されておりアクセスできません。これは 2000 / XP の Explorer でジャンクションを削除すると実体が消えてしまう問題を回避するための措置だと推測します。

 また、今後は NTFS ストリーム機能も積極的に使われるかも知れません。これはハードリンクの逆のような機能で一つのファイルに複数のファイルをぶら下げる事のできる機能です (TEAD で NTFS ストリームなテキストファイルを操作できます。実は NTFS ストリームの名前さえ判ればメモ帳でも操作できます)。

 これらの機能は NTFS に係る機能なので、FAT32 なドライブへコピー等を行おうとするとコピーが実行できなかったり、二重にコピーを行ったり、ストリームが失われたりします。OS のバックアップは専用のソフトウェアを利用する事を強く薦めます。

See Also:


BartPE にドライバが組み込まれていない IDE/SATA/SCSI/RAID コントローラを利用したいのですが?

 BartPE 起動時、以下の画面の時に〔F6〕キーを押します。
                                                                                

                              Starting BartPE...

  Press F6 if you need to install a third part SCSI or RAID driver...


 Windows のロゴ画面になってしまったら、〔F6〕キーを押すタイミングがズレていますので再起動を行い、再度上の画面で〔F6〕キーを押下して下さい。
                                                                                

 Setup could not determine the type of one or more mass storage devices
 installed in your system, or you have chosen to manually specify an adapter.
 Currently, Setup will load support for the following mass storage devices(s):

   

  * To specify additional SCSI adapters, CD-ROM drives, or special
     disk controllers for use with Windows, including those for
     which you have a device support disk from a mass storage device
     manufacturer, press S.

  * If you do not have any device support disks from a mass storage
     device manufacturer, or do not want to specify additional
     mass storage devices for use with Windows, press ENTER.

  S=Specify Additional Device  ENTER=Continue  F3=Exit


 ドライバ組み込み画面に正しく入れると上のようになりますので、〔S〕キーを押して下さい。
                                                                                

                          Please insert the disk labeled

                   Manufacturer-supplied hardware support disk

                                  into Drive A:

                          * Press ENTER when ready.

  ENTER=Continue  ESC=Cancel  F3=Exit


 この画面になったらドライバの入ったフロッピーディスクを挿入します。〔ENTER〕キーを押すとドライバが読み込まれます。ドライバは幾つでも読み込ませる事が可能です。

 必要なドライバを繰り返し読み込ませたら、 "Setup could not ~" の画面で〔ENTER〕キーを押して BartPE のブートを続行します。


[ディスクの管理] を開こうとすると "RPC サーバーを利用できません" エラーが出ます。

XP -SP2 をソースに使っているのなら "RpcSS needs to launch DComLaunch Service first - SP2 only"プラグインを有効にして下さい。
 スクラップブック ~ 2ch に書き込めなかった事 ~

 悪口だとか愚痴の類ではなく、単に未確認/未検証で信憑性のない情報、または長文にすべきでないプライベートな話題です。

・ USB フラッシュメモリで起動すると "STOP:0x0000007B" で起動しない。(4 枚目 478 氏)
  "いとまさのページ" さんにある情報を元に USB Boot Fix なるものをこさえてみたものの、起動に成功したのか失敗したのか結局わからず終いでした。HDD エミュレーションである以上、STOP:0x0000007B の解決方法は同じでいいと思われるのですが?或いは、"改変版 NTDETECT.COM" を組み込めば直るのかもしれませんが、詳細は不明です。

・ USB フラッシュメモリで起動すると "UNMOUNTABLE_BOOT_VOLUME" で起動しない。(4 枚目 662 氏)

  "USB フラッシュメモリからの起動はできますか?" に書いたように、USB フラッシュメモリからのブートシーケンスは

  1. BIOS が USB フラッシュメモリを HDD エミュレーション。
  2. ブートローダはメインメモリに RAM ディスクを作成 (ドライブレターのない RAM ディスク)。
  3. ここに BartPE の ISO イメージを読み込み。
  4. ISO 内のブートローダが起動。
 この後、HDD (に見える USB フラッシュメモリ) のシステムが起動する事になる訳です。
 
 665 氏の指摘にあったように "以前とソースが異なる" のであれば、"以前はたまたま HDD エミュレーションがうまく行っていたが、今回は(XP が)特殊な事をやっているせいで HDD エミュレーションの想定外の事が起きた" という可能性もあります。

 普通の Windows の感覚で額面通りに受け取れば、Dell マシンの HDD に障害が起きているとも考えられますが、 "CD からの起動には問題ない" 事と、UNMOUNTABLE_BOOT_VOLUME は起動ディスクに関連するものである(BartPE からの起動なので HDD は起動ディスクではない) 事から、これは有り得ないでしょう。

 メインメモリの RAM ディスクに収まったが、UBCD の分 ISO サイズが増え、"BartPE を起動するだけのメモリがなくなってしまった"とか、RAM ディスク関連で言えば "514MB 以上の ISO イメージを作ってしまった" という可能性もなくはないですが、"以前にも作った事がある" という事を考えると、その制限事項を知らない訳はなく、可能性は限りなくゼロに近いです。

 それと...ちょっと考えたくないのですが、USB & 1394 での議論で、"固定ハードディスク扱いの USB 機器は BartPE を生成した PC が既知のデバイスでないとホットプラグできない (可能性が高い)。" というのがありました。

 まさか、BartPE の [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR] や [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\DeviceClasses] にエントリのない "固定ハードディスク扱いのフラッシュメモリ" からは正常にブートできない...って事はないでしょうね?実は私も USB フラッシュブートは BartPE を生成した実機でしか試していないのですよ。

 もし、仮にそうだとしても "USB フラッシュメモリからブートし、ISO を読み込むまでは可能" な事になりますので、現象と矛盾する事はありません。レジストリエントリがないと、後で生成された USB フラッシュメモリドライブ (ボリューム) のレジストリエントリがブートボリュームのエントリを破壊してしまう...なんて事は?...ないかな、やっぱり。


・あなたの作った BartPE 関連ツールのうち英語表示されて読みにくい/解りにくいものがある。
・あなたに話題振ってる/レス付けたのにいつもよりも反応が鈍い事がある。
 (いろんな意味で) 大抵はガイジンサンを相手にしているからです (The CD Forum を検索するとワラワラ出てきます)。

 一度、あの人達が作ったツールを日本語でローカライズ (含トランスレート) させてやりたいものです。

"英語で表示?オッケーオッケー。その代わり、今度キミが何かしらのツールを作ったら日本語で表示できるようにしてくれよ、オッケー?"

 ...って英語で何て書けばいいんでしょうかね?無茶言われたら即レスできるよう、暗記しときたいと思っていますので。

・ソースについて
 正直、トラブル時のアドバイスができなくなるので、ソースに使う XP は SP2 にして頂きたいな、と。BartPE 起動ドライブを"X:"固定にできるメリットがありますし、SP1 はサポート切れの OS でもありますし...。どうしても SP1 でないといけない理由ってあります?

・あなたの PE 環境は?
 目的がレスキュー用なので、拍子抜けする位にシンプルですよ。

 使っている PE Builder は 3.1.10a、フロントエンドにPlugin Manager v2 を使用しています。デバッグ用 VM は Microsoft Virtual PC 2007 です。mkisofs は "Postprocessing" プラグイン添付のものを使っています。Explorer & IE ベースな普通の造りになっています。

 現在導入しているプラグインは

 これだけです。これにドライバ集 Ultimate Boot CD 4 Windows Drivers 1.8 を加えています。"MMC add-on for SP2" プラグイン相当の事を PPSH でやっており、shsfp.exe を Custom フォルダでコピーしています。スタートメニュー用のアイコンは適宜追加してあります。

 BCDWメニューには、

 があります。

 その他、高速化とスリム化を行い、PPSH を使って起動時の黒窓を消しています。そして Custom フォルダを使って空き容量に入るだけのソフトウェアインストーラ (アンチウィルス等) を詰め込んでいます。手の内...というか、私のやっている方法はすべてこのページに記述があります。


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。



These are our most popular posts:

インテル® ラピッド・ストレージ・テクノロジー — RAID ボリュームへの OS ...

システム BIOS 上で RAID を有効にするこの手順は、インテル® デスクトップ・ボードに 限定したものです。 他社製のマザーボードの場合、BIOS 設定方法が異なる可能性が あります。 ... 物理ディスク (physical disks) を選択するため、Enter キーを押します。 ... このメッセージは Windows XP* セットアップの開始段階 (テキスト・モード段階) で表示 されます。 ... 場合には、USB 接続の外付けフロッピードライブを使用するか、 オペレーティング・システムのスリップ・ストリーミング・バージョンを作成したものを使用し てください。 read more

アップグレードまたはクリーン インストール

アップグレードかクリーン インストールか : Windows XP Professional の最適な展開 方法の選択 .... アプリケーションの多くは Windows XP Professional にアップグレード 後、正常に動作しますが、そうでないものもあります。 .... Windows XP Professional に アップグレードするとき、最新のサービス パックを含むスリップ ストリーム バージョンの オペレーティング システムを使用すること ... ディスク最適化プログラムを実行すると、 ファイル全体の内容がディスク上で隣接した状態で配置されるようにファイルが再編成 されます。 read more

デルのコンピュータでWindowsをスリップストリームする方法 » ウィキ便利

デルのコンピュータでWindowsをスリップストリームする方法. 最新のWindows インストールディスクを作成する. スリップストリームWindowsは、Windows XPの インストールディスクからファイルを取得し、Windowsのサービスパックを介して分散 アップデートで ... read more

デスクトップ・ボード — トラブルシューティング: オペレーティング・システム ...

137 GB ドライブサイズ制限 オリジナルの Windows* XP / 2000 は、最大 137GB まで のハードディスクしかサポートしていませ ... Windows XP* でマルチブート システムを 作成する方法 †; 複数のオペレーティング システムをインストールする (マルチブート) †; 起動 ... Windows XP インストール CD に Service Pack 2 を組み込みスリップ・ ストリーミングする現行のデスクトップ・ボードのいくつかの ... Service Pack 2 が 組み込まれているインストール CD を持っていない場合には、 CD を 作成してください。 read more

Related Posts



0 comments:

Post a Comment