第14章 フォルダ名・ファイル名の重複の回避

フォルダ名・ファイル名の重複

ここまでの章で、多くの実例を挙げながら、マルチブート化の準備をしてきた。

今までやってきたことは、電源タップを介して個々の電化製品を接続し、1つずつならば正常に作動出来ることを確認した作業に相当する。いよいよ、電源タップに一度に複数の電化製品をつないで作動させることを試してみる。

基本的に、以下の作成手順で行う。

  1. マルチブータブルCDに含めたい全てのプログラムの関連フォルダ&ファイルを、【Bootable CD Wizard】の基本構成であるxフォルダに入れる。
  2. ブートさせたい全てのプログラムのチェーンロード設定を、複数行に渡ってbcdw.ini に書いておく。
  3. 【CDRecord フロントエンド】を使って、適切な設定でISO ファイルを作成する。
  4. ISO ファイルを、CD-Rなどのメディアにライティングする。

ここで問題になるのが、1の全てのフォルダとファイルを1箇所にまとめるところだ。このとき、同名のフォルダやファイルが存在する時にどうするのか? たとえば、Win XPとWin 2K のマルチインストールCDを作りたいときに、どちらにもI386フォルダが存在するが、このようなケースにどう対処するかを考えねばならない。

このサイトで全てのケースを解説することは現実的に不可能なので、この章では、比較的対処の簡単な「2種類の【Bart's PE Bilder】を同居させるケース」を題材にして解説していく。(次章でもっと難易度の高い組み合わせを解説する。)

2種類の【Bart's PE Builder】を同居させるケース

まず最初に、2種類の【Bart's PE Builder】を用意する。1つは、前章で使った「Explorer & IE 版」。もう1つは、雑誌PCJapan 2005年7月号で推奨している方法で作成した「PCJapan 版」だ。「PCJapan 版」は雑誌を購入していない方には作り方がわからないので実際に演習ができないと思うが、やり方だけ参考にしてほしい。実習してみたい方は、「PCJapan 版」にこだわることなく他のバージョンでも構わない。【UBCD4WIN】などを使うと手軽に作れるだろう。

2つの【Bart's PE Builder】を完成させると、各々次のような構成になる。(WinXP Pro SP2使用の場合)

Explorer & IE 版の構成PCJapan 版の構成

5個のファイルに関しては中身も全く同じなので、そのまま統合しても問題はない。(厳密に言えば、autorun.inf に関してはこのあとの操作によって若干の問題が出るのだが、以前述べたように、このファイルはオートランCDのためのものであってブータブルCDには無関係だ。製作者がWindows上でどのプログラムをオートランさせたいかによって任意に書き換えればよい。)

問題は、I386 フォルダと、Programs フォルダだ。このフォルダの下には多数のサブフォルダやファイルがあり、そこにも同名のものがある。単純に統合するとそれらがバッティングし、一方のファイルが他方のファイルを上書きしてしまう。

普通は「下図のようにサブフォルダを作って分離すれば良いじゃないか」と考えると思う。しかし、この方法は非常に調整部分が多くなる。ブートに必要なファイルを二段重ねのように配置したり、ファイルのバイナリを書き換えたりしなければならない。できれば避けたい方法だ。(この方法でなければダメな組み合わせがある。それを次章で解説する。)

x
├ bcdw
├ Exp_IE
│ ├ I386
│ ├ Programs
│ └ その他
└ PCJapan
   ├ I386
   ├ Programs
   └ その他

もう1つ考えられる対処法は、フォルダをリネームする方法だ。

x
├ bcdw
├ I386
├ I387(PCJapanのI386フォルダをリネーム。名前は何でも良いが半角英数字4文字が無難。)
├ Programs
├ Program1(PCJapanのProgramsフォルダをリネーム。名前は何でも良い。)
└ その他のフォルダ・ファイル

この章では、この方法をもう少し具体的に説明していこう。

Programs フォルダ

Programs フォルダの名前が重複しているので片方をリネームする必要がある。ところが、このフォルダ名は【Bart's PE Builder】のシステムと深く関わっているので、単純に名前を変えてしまうと、正常に機能しなくなってしまう。

そこで、PCJapan 版の【Bart's PE Builder】の製作過程にさかのぼって、Programs フォルダが別名で作成されるように手を加えよう。

プラグイン等の準備が整い、あとはpebuilder.exe でBuild するだけという段階で、Plugin フォルダ内のすべてのinf ファイルとxml ファイルの"Programs"という文字列をすべて"Program1"に置換してしまう。これを手作業でやっていたらとても大変なので、複数ファイルの置換が可能なソフトを使おう。私は【Repl-Ace】を使った。

【Repl-Ace】を起動すると、下図のような画面になる。手順がわかるように番号を振ってある。

Repl-Ace

まず[設定]ボタンで別画面を出し、

バックアップを作成

[バックアップを作成]のチェックをはずす。あとはplugin フォルダのパスを指定し、ワイルドカードを使って*.inf;*.xml と入力し、[探索開始]ボタンでファイルの一覧を表示させる。その後、置換前後の文字列を入力して、[一括実行]ボタンを押すと、実際に複数ファイルにおいて一括置換が行われる。

処理結果

このあと、通常通りpebuilder.exe でbuild すれば、Programs フォルダの代わりに、Program1 という名前で、PCJapan 版の【Bart's PE Builder】が完成しているはずだ。

I386フォルダ

I386 と言う名前のフォルダは、Windows NT系のOSのみならず、サードパーティー製のアプリケーションでも使われる汎用性の高いものだ。通常、このフォルダはブータブルCDのルートに存在しなければならず、単純なリネームも許されない

マルチブートCDを作ろうとした時に、先人たちも当然この問題につきあたったわけで、従来はI386フォルダが複数ある場合は、以下のような対処法が一般的だった。

  1. I386フォルダを、半角英数字4文字の別の名前にリネームする。たとえばSample_Program1 というプログラムがI386フォルダを持っていたとしたら、それをSMP1とリネームする。
  2. Sample_Program1のブートローダーファイル(大抵の場合はsetupldr.binというファイル)をバイナリエディタで開き、I386と書かれている部分を全て、SMP1に置換する。その他、関連するファイルで書き換えが必要なものがあれば、それも置換しておく。
  3. マルチブートローダーを介在して、各々のプログラムのブートローダーファイルを個別に呼び出すように設定しておく。

読んでわかるように、2のステップが面倒くさい。ところが幸いなことに、【Botable CD Wizard】V2.0a1 では、2番目のステップが不要になった。単純にリネームして、そのフォルダ下のブートローダーをチェーンロードすればOKになったのである。最初から【Bootable CD Wizard】V2.0a1 を使った人は当たり前のように感じるだろうが、過去のバージョンや他のマルチローダーを使って苦労してきた者にとっては、夢のような特性なのである。

今回の例では、PCJapan 版のI386 フォルダをI387 にリネームして、その中のsetupldr.bin をチェーンロードすることにした。よって、bcdw.ini は

[MenuItems]
C:\                        ; Boot from drive C:
\I386\setupldr.bin         ; PE Builder (Explorer & IE)
\I387\setupldr.bin         ; PE Builder (PCJapan)
:PowerOff                  ; Power Off

というようにしておく。説明は長ったらしかったが、実際の作業はほんのわずかだ。

ISO化と起動テスト

いつものように、【CDRecord フロントエンド】を使って、ISO化する。今回はPCJapan 版にFireFox を含めてみたので、「ファイル名に小文字の使用を許可する」オプションをつけた。このように、個々のケースで配慮しなければならない枝葉的な問題点が多い。試行錯誤が必要と前に述べたのは、こういうところがあるからである。

起動テストの結果、上手くいけば、選択メニューで好きなほうのPE Builder を選んで起動できる。

【Bootable CD Wizard】選択画面↓

BCDW 選択画面

Explorer & IE 版↓

Explorer & IE 版

PCJapan 版↓

PCJapan 版

<目次へ> <前の章へ> <次の章へ>