マルチブートの仕方(特殊環境編)

2002/06/30
目次
  1. プロローグ
  2. Windows初級編
  3. Linux初級編
  4. 機能編
  5. Windows中級編
  6. Linux中級編
  7. その他のOS編
  8. フリーツール編
  9. 市販ツール編
  10. 裏技編
  11. 特別編
  12. 特殊環境編
  13. 究極編
  14. 豆知識編

序説

 ここでは、RAIDなどのマルチブートを行っていく上で、ハードウェア、ソフトウェア的環境が特殊であると思われるものについて扱う。どこまで網羅できるか分からないが、できる限り解説していきたいと思う。

 ハードウェアといっても、マルチブートで問題となるのは殆どの場合、ハードディスクがらみの特殊環境になると思われるため、現在のところRAIDぐらいしか、特殊環境というのが思いつかないが、その他気が付いたものを随時取り上げていくつもりである。

 また環境が非常に特殊でインストールなどに制約がある場合なども取り上げていく。

 


RAID

 RAIDとはRedundant Arrays of Inexpencive Disksのことで、そのまま訳すと「安価なディスクの冗長配列」となるが、はっきり言ってこれでは何だか分からないね。

 RAIDという名は, 1987(昭和62)年にカルフォルニア州立大学Berkeley校の3人の学者によって発表された研究論文に由来していて、廉価なディスクに冗長性を持たせた形式でデータを格納することで, ディスク障害によるデータ損失を極力避けることを目的とする設計のことを指す。具体的には, 一つのデータを複数箇所に保存したりすることで, ディスク故障などの不測の事態が発生しても, データ自体を守る働きをする。

 現在, RAIDは0〜5までの6段階に分類されていて、RAID0ストライピングと呼ばれ、データを複数のディスクに分散させる。 RAID1ミラーリングと呼ばれ、複数のディスクに同一内容のデータを書き込むことでディスク故障に備えるものだ。RAID3〜5は更にエラーチェックや分散化の工夫などをし、高効率化などを実現しているが、RAID3やRAID4はRAID5と比べ、特に機能が簡略でもないのに内容的に劣っているので、殆どがRAID5となっている。

 RAID0やRAID1、またはその組み合わせは、機能が簡易なので、安価なシステムではよく採用される。

 RAIDはそのレベルは勿論、システムによって実装方法がかなり違うのでマルチブート上の問題もそれぞれで違っており、統一的なソリューションというものがない。私も全てのRAIDシステムを検証できる訳ではなく、特にRAIDは高価なものは、非常に高くて、私には到底導入できない。

 従って、主に安価なIDE RAIDを中心に解説していくことになる。ただし複数のディスクを取り扱うことによる、様々な問題は、共通した部分もあると思われるので、応用はある程度はできると思う。

 いずれにしても、複数のディスクを一つのディスクの如く扱う訳だから、従来のパーティションやディスクアクセスの概念を一旦捨てる必要があるだろう。

 尚、ここではRAIDの構築方法を解説するつもりはない。基本的なRAID構成を構築した上で、更にマルチブート上の問題があるかを検証する場なので、構築に関しては既に出来ている、または出来る技量があることが前提の話となる。

 また、RAID構成されるハードディスクにブートパーティションを置く場合をここでは考える。ブートパーティションは通常のディスクで、データディスクだけArrayにするのならそもそもブート上の問題は殆ど起きる余地はなく、マルチブートの問題も考える必要がないからである。

 


IDE RAID

 最近はIDE RAIDも高機能なものが安価に提供されるようになった。当初はRAID0とRAID1くらいしかサポートしたものが無かったのだが、今はRAID5をサポートするものもある。しかも結構安いのに驚く。

 しかしここで説明するのは、一昔前の安価なIDE RAIDの話となる。用意したものは、PromiseFasttrak66(Ultra66改)で、今となってはもう遅いといえるUltra-ATA/66対応の安価なIDE RAIDカードだ。サポートレベルもRAID0、RAID1、及びRAID0+1だけである。

[FastTrak66(Ultra66改)]

 さて、まずはストライピングと呼ばれるRAID0の場合の話からしよう。ストライピングとはデータを複数のディスクに分けて書き込みを行うので、主に書き込み、読み出し速度が非常に高速になるというメリットを持っている。従ってデータの保護という観点でいうと全く通常と比べ、優れた点はない。

 例えば、100MBのファイルを書き込む場合、2つのディスクで構成されたRAID0の場合は50MBずつ分けて、同時に2つのディスクに書き込まれるため、50MBを書き込む速度で100MBが書き込めてしまう訳だ。ハードディスクを3つ4つと増やすと更に速くなる訳である。

 勿論なかなかこのように理論どおりにはいかない場合もあるが、基本的にディスクが多ければ多いほど速くなる。

 Fasttrak66は独自のBIOSを持っており(RAIDカードは必ずBIOSを持っている)、例えば単一で20GBのハードディスク2個でRAID0を構築した場合、BIOS経由でハードディスクにアクセスすると、あたかも40GBの一つのハードディスクであるかのように見える。つまりRAID BIOSの中で、物理ハードディスクのArray化は完結しており、BIOSを外側からアクセスするプログラムには、2つの物理ハードディスクで構成されていることなど全く分からないのである。

 従って、BIOS経由でハードディスクにアクセスするMS-DOSなどのOSでは、RAID BIOSでストライピングの設定をするだけで、RAIDを利用できるようになる。Windowsの起動ディスクでFDISKをやってみても、ちゃんと40GBのハードディスクとしてパーティションを作成することができる。勿論フォーマットも可能だ。

 では、WindowsやLinuxなど、BIOSを経由せずにハードディスクにアクセスするOSの場合はどうなるのだろうか? 簡単な話だ。BIOSの変わりにドライバが必要なだけである。ドライバを用いれば、やはりドライバでアクセスする側からみた場合、複数のディスクを合わせたサイズの一つのハードディスクに見える。

 Windows95/98などはMS-DOS互換モード(つまりBIOSアクセスモード)でハードディスクにアクセスできるので、必ずしもドライバが必要な訳ではないがその場合、16bitアクセスとなるためパフォーマンスが非常に悪くなる。これではRAIDを構築した意味がなくなるので、必ずドライバを利用しよう。

 さて、一つの難関と皆さんが思われるのはOSのインストールだろう。まずはWindows9xから説明しよう。先ほども述べたように、BIOSアクセスするFDISKは全くArray構成を意識することなく、パーティション作成ができ、フォーマットも完了する。実はそのあとのWindows9xのインストールも全く何も考えずに、一つのハードディスクとしてインストールできてしまう。

 しかしインストール直後はFasttrak66のWindows用のドライバが読み込まれていないので、ハードディスクのアクセスはMS-DOS互換モードになっている。ただOSは起動しているので、ここでPromiseのサイトからWindows9x用のドライバをGETしてインストールすれば、以降32bitアクセスを行うようになり、パフォーマンスもグット上がる。Windows9xをRAIDディスク上に展開するのはたったこれだけで可能だ。拍子抜けするくらい簡単である。

 次にMSDOS互換モードなど持っていないWindowsNT/2000はどうなるだろうか? これもインストールの追加ドライバの読み込みフェーズでFasttrak66のWindowsNT/2000用のドライバをロードすればいいだけだ。Windows2000の場合は最初のころに「F6」キーを押しておかないと、追加ドライバ読み込みフェーズに入らないので注意が必要である。

 正しくドライバが読み込まれれば、インストールのパーティション作成フェーズでちゃんと40GBのハードディスクが登場する。その後のパーティションの作成も、それに続くパーティションのフォーマットも通常のディスクの場合と何ら変わりはない。もちろんインストールも普通に進み、起動時NTLDRの起動メニューなども出てくる。

 ここまで読んで、賢明な読者の方なら、やけにBIOS付きSCSIカードの場合と似ていることに気づいたことだろう。BIOSアクセスしたり、32bitアクセスするためにドライバを読み込んだりと。

 イメージ的にも、実際の動作的にもBIOS付きSCSIと非常によく似ている。実際、システムからはArray上のディスクは「SCSIハードディスク」として表示され、扱われます。Fasttrak66カードという名のBIOS付きSCSIカードがあり、その先にArray構成によって、ある一つのハードディスクにされた仮想ハードディスクが繋がっていると理解しても、特段不都合はないだろう。

 SCSIの場合、歴史が古いため、多くのOSで標準でドライバが用意されている。従って何も考えないでも、インストーラが自動検出してドライバがインストールされ、使えていたという場合が多いだろう。しかしSCSIでもマイナーなチップを使った場合は、標準でドライバが読み込まれず、後から手動でインストールしたり、インストール時のドライバ追加フェーズで手動インストールする場合も決して少なくない。それと同じことである。

 逆にRAIDカードでも非常に著名なものなら、OSが標準でドライバを用意していて、何も考えずにインストールが可能なものもある。Fasttrakはかなりメジャーになったかと思っていたが、残念ながら標準でドライバを持っていたOSは一つもなかった。

 いずれにしても、ブートパーティションをArray上に展開する場合はどうしてもインストール時にドライバを導入できなければならない。その点で問題が多かったのがLinuxだった。

 Linuxの場合、カーネルがそのRAIDドライバを持ってない時は通常はインストールすることができない。ディストリビューションによっては、インストーラが工夫をしてあって、Windows2000のように追加ドライバ読み込みフェーズがあるものもある。Redhatなどがそうだ。

 そもそもPromiseからはLinux用ドライバとしては、Redhat6.2と7.0用のドライバしか提供されていなかった。これらのディストリビューションに関しては、ドライバとその導入方法も公開されており、特に難しいことはしないでも、RedhatのブートパーティションやルートパーティションをArray上に展開することができた。

 これらのディストリビューション以外では現状では素人では無理だろう。皆さんいろいろと裏技を使っているようだが、現在私もRedhat以外のディストリビューションをFasttrackのArray上に展開することに成功していない。これについては引き続き調査する。もし知っている人がいたらおせーーて!

 次にマルチブートの話に入る前に、Fasttrak66がサポートするもう一つのレベル、RAID1にも触れておこう。こちらはミラーリングと呼ばれるもので、一方に書いたデータと同じものを他方にも書く。これはRAID0に比べ、速度的なメリットはないものの、複数のディスクに同じデータが書かれるのでデータ保護に関しては大きな役割を果たす。やはりディスクは多いほど保護力は高まる。外側から見た場合、イメージ的には一つのハードディスクしか見えないといった感じだ。例えば20GBのハードディスク3つでRAID1を構成した場合でも、外側からは20GBのハードディスク一つとしか見えない。この点、このケースの場合、外側からは60GBに見えるRAID0とは大きく違うところである。

 こういった動作の違い以外ではその他インストール上の問題など、RAID0の場合と違いはない。これはRAID0+1の場合でも同じだ。つまりRAIDレベルの違いはマルチブート上の問題では、殆ど違いがないということになる。

 

 さて、いろいろと制約はあるものの、とりあえずWindows系とRedhat LinuxのArray上へのインストールは可能であることが分かったので、これらのマルチブートに入りたいと思う。

 実はここまでくれば、マルチブートも殆ど難しいことを考える必要はない。通常の物理ハードディスクにマルチブート環境を構築する場合と殆ど変わりないのだ。これはブートローダは基本的にハードディスクへのアクセスはBIOSを必ず使うからである。

 チェーンロードしか行わない、MBMext-IPLなどは勿論、ファイルシステムを理解し、アクセスするGRUBSystem CommanderもセクターのロードそのものはBIOSのサービスを利用するので、RAID BIOSによって隠された物理ハードディスクの世界は見えないのだ。そのため殆ど通常の物理ハードディスクの場合と変わらず、利用することができた。

 ただしSystem Commanderは、インストール時にメモリ上のRAIDコントローラのデータを見つけて、ウィルスがいるかもしれないとった旨の警告を出していた。無視して先に進むことができたので問題はなかった。

 

 ところで、皆さんとしてはRAIDコントローラを介した外側からは一つに見える世界が、実際の物理ハードディスクにどのようにデータが書かれるかは非常に気になる部分だろう。しかしこれは本来気にする必要はないのだ。物理ハードディスクにどうデータを書くかはRAIDコントローラの勝手であり、RAIDレベルによっても変わってくるものである。

 例えばMBRといえども、何も物理ハードディスクの先頭セクターに書く必要もない訳だ。RAIDコントローラがここがMBRと決めたところに書けばいいので、実際2番目のディスクの後ろの方に置いてもそれはそれで一向に構わない訳である。

 とは言っても私もこれは非常に興味があったので、2台の20GBのハードディスクでRAID0を構築し、Windows98、Windows2000、Redhatをインストールした後、それぞれのハードディスクを生の状態で解析してみた。

 MBRは確かに一方のディスクの先頭セクターに書かれていた。書き方も全く通常のMBRと変わりない。パーティションテーブルもちゃんとあるし、シグニチャバイトもあった。ただしアドレスは当然その一方のディスクにはあり得ない(この場合20GBを超えた)ものが書かれていた。

 またパーティションテーブル上は20GB以内にある(はずの)ブートセクターも実際にそのアドレスでMBRの存在するハードディスクを辿ってみたが、そこには存在しなかった。これは当然だね。先頭から10GBの位置といっても、どちらのディスクに書かれているかは保証の限りではない。まあ大体半々に書くだろうから、いずれかのディスクの先頭5GBあたりにあるのだろうが、これを知っているのはRAIDコントローラだけである。

 RAID1の場合は予想通り、全く同じディスクが複数あるイメージだ。一応どのディスクでもデータ内容的には、そのディスク内で完結している。

 

 因みに、一度RAID1を構築したディスクをそのままRAID0にした場合、WindowsのFDISKが起動時にハングしてしまった。MBRにおかしなデータが書かれているからだろう。一旦MBMの区画エディタでパーティションテーブルをクリアしたら、問題なくWindowsのFDISKでパーティションを作成することができた。

 


フロッピーディスクドライブなし環境

 マルチブート環境の構築には、言うまでもなくOSのインストールが不可欠だ。殆どの場合、OSのインストールはハードディスクに対して行われる訳だが、ハードディスクをフォーマットしたりといった、ある意味ハードディスクのデータを完全に壊してしまう作業なども伴うことが多いため、OSのインストールを行うプログラムはハードディスクとは違うディスクドライブから起動されるのが普通である。

 昔は代表的だったのがフロッピーディスクドライブだ。古くからあるディスクドライブで普通のデスクトップなら必ず装備されており、完全に標準化しているため、あらゆるBIOSで認識可能である。従ってOSのセットアッププログラムを実行するには最適のドライブだった。

 しかしOSのデータは肥大化の一途をたどったので、セットアッププログラム自体はフロッピーディスクドライブから起動するもののデータはCD-ROMから読むということが、だんだん普通になってきた。ならばいっそCD-ROMから起動してしまえばいいということで、CD-ROM起動が策定され、次々とBIOSでサポートされるようになった。今ではセットアップというとCD-ROMブートで行うのが、完全に主流になった。

 ところが、最近のモバイルノートパソコンの場合、少しでも軽くするためにフロッピーディスクドライブやCD-ROMドライブを標準では装着していないものが多数ある。多くはオプションで用意されているはずだが、USB接続のものでBIOSでの認識ができずOSのインストールなどには使えない場合がある。


 ここではこのようにOSのセットアップに使えるフロッピーディスクドライブもCD-ROMドライブもない、つまりBIOSで認識できるディスクドライブがハードディスクドライブしかないという環境でマルチブートを行う方法を解説したいと思う。


 とは言っても実は多くの場合、これは大した問題でないことが多いのだ。上記のようなモバイルノートパソコンは必ず何らかのOSがプレインストールされているはずである。でないとフロッピーもCD-ROMもないのでは何にも使えなくなってしまうからね。Windowsの場合、Windows上から他のOSのセットアップを開始することができるのでそのプレインストールOSが稼動している限り、OSのセットアップを行うことは可能だ。

 しかしこれも上位バージョンの場合のみである。例えばプレインストールされたOSがWindows XPである場合、このOS上からWindows 2000などの下位バージョンのOSをインストールしようとすると以下のようなダイアログが出てインストールできない。

[OSダウングレード不可警告ダイアログ]

 さてこのような場合にこのモバイルPCにWindows2000をインストールする方法は絶対にないのだろうか。実はそれがあるのだ。ここではそれを解説していく。

 まず必要な環境を書く。これを行うにはどうしても以下のような条件を備えたパソコンをターゲットのモバイルPCの他に用意して頂けねばならない。

  1. Windows2000をWindows上からセットップできる
  2. Cドライブに400MB以上の空きがある
  3. ターゲットPCと大容量のデータ交換ができる

 Windows2000やWindows9xなどの、Windows2000がインストール可能なこれと同位か下位のバージョンのWindowsがインストールされていることが必要である。会社のマシンでも、友人に借りてもいいだろう。作業が終われば完全に元に戻すので、一時的で全く構わないのから何とか用意してほしい。

 また作業中にCドライブにかなり容量の大きいセットアップ環境が作成されるため、それが格納可能な空き容量(400MBくらい)が確保されている必要がある。一時的なので何とか工面してもらいましょう。注意したいのは必ずCドライブに空きが必要なことだ。他のドライブにいくら空きがあっても意味がない。

 そしてこの大容量のセットアップ環境をターゲットPCにコピーできないといけない。双方で当初はWindowsが動いているはずなので、大容量リムーバブルメディアでの交換でもいいし、勿論双方がネットワークで結ばれていても構わない。

 さてこのような環境が用意できたとして、手順を最初に箇条書きにしておく。

  1. Windows 2000セットアップ環境準備マシンにて環境の準備
  2. Windows 2000セットアップ環境のターゲットマシンへのコピー
  3. Windows 2000セットアップ環境をターゲットマシン環境に適合させる
  4. ターゲットマシンにてWindows 2000のセットアップ開始

 一つ一つを詳細に解説しよう。
 

1. Windows 2000セットアップ環境準備マシンにて環境の準備

 用意した環境準備マシンでWindows 2000のセットアップを途中まで行う。セットアップはWindows上からインストールCD内にあるセットアッププログラムを実行して行う。決してCD-ROMブートなどを行って初期インストールする時のような方法で行わないでほしい。

 またローカルに存在するCD-ROMドライブから直接セットアッププログラムを実行してはいけない。もしハードディスクに空きがあるなら(前述のCドライブの400MBの空きとは別に)ハードディスクのどこかにインストールCDのi386フォルダをコピーするか、ネットワーク上から実行してほしい。

 実行はWindows 2000インストールCD-ROMの「i366\winnt32.exeをエクスプローラなどで直接たたく。環境によっては以下のようなダイアログがでるかもしれない。

[アップグレード不可警告ダイアログ]

 これは無視して先に進んでほしい。次のインストールオプション選択では、Windows 2000 を新規インストールする(I)を選択してほしい。もっとも上記ダイアログが出る場合は、一方の「Windows 2000 にアップグレードする(推奨)(U)」は選択できなくなっている。

[インストールオプション選択]

 次のライセンス契約画面では「同意します(A)」を選択して進む。

[ライセンス契約]

 次にプロダクトキーを入力する。

[プロダクトキー入力]

 特殊なオプションは必要に応じて選択してほしい。

[特殊なオプションの選択]

 ここでインストールファイルのコピーが始まる。ネットワークからのインストールした場合はかなり時間がかかるかもしれないが、ここでは必ずこの様子を見守ってほしい。決してトイレなどにたたないように。理由は後で述べる。

[インストールファイルのコピー]

 インストールファイルのコピーが完了するとコンピュータの再起動画面になるが、ここで必ず再起動しない」ボタンをクリックして、再起動を停止してほしい。「完了」ボタンを押したり、また15秒がたつと勝手に再起動してしまうので、必ず「再起動しない」ボタンを押して再起動を阻止しないといけない。トイレなどに行かないようにと言ったのはこのためだ。

[コンピュータの再起動]

 以上で環境準備マシンでのWindows 2000セットアップ環境の準備は終了である。このマシンがWindows9xだった場合、NTLDRなどがインストールされてしまうので、「デュアルブート環境の削除」を参考に元に戻してほしい。また元環境もWindows2000だった場合などで特にNTLDRなどが削除する必要がない場合でも、後述するようにboot.iniが書き換えられているので、しかるべき方法で元に戻しておく必要がある。


2. Windows 2000セットアップ環境のターゲットマシンへのコピー

 環境作成が終わると、準備マシンのCドライブには以下のようなデータがWindows 2000セットアップ環境として存在している。

  1. $WIN_NT$.~BT」フォルダ
    セットアッププログラムや各種セットアップ情報が格納されたフォルダ
  2. $WIN_NT$.~LS」フォルダ
    インストールCDのi386フォルダがそのまま格納されたフォルダ
    ローカルのCD-ROMから実行するとこのデータが作成されない。
  3. $LDR$」ファイル
    セットアップ用の特別なNTLDR
  4. txtsetup.sif」ファイル
    セットアップ情報ファイル

 これらのデータをターゲットマシンのCドライブにコピーを行う。これらの他にも元環境によっては、普通のNTLDRやntdetect.comなどのNT系OSのおなじみのブート系ファイルが追加されているかもしれない。必要がない場合は削除してしまってほしい。「デュアルブート環境の削除」の手順と同じことである。

 ただしboot.iniだけはその内容だけ保存しておいてほしい。また別名にしてターゲットマシンにコピーしてもいいだろう。boot.iniに以下のようなエントリが追加されており、ターゲットマシンのboot.iniにこのエントリと同じものを追加する必要があるのでその参考になるからだ。

 C:\$WIN_NT$.~BT\BOOTSECT.DAT="Microsoft Windows 2000 Professional セットアップ"

 
3. Windows 2000セットアップ環境をターゲットマシン環境に適合させる

 さてこの作業がちょっとした裏技だ。このサイトを散々熟読した人なら、これらのセットアップ環境と書き換えられたboot.iniを見れば大よそどんな仕組み、シーケンスでWindows 2000のセットアッププログラムが実行されるかが分かるだろう。簡単に流れを説明すると以下のようになる。

 ブートセクターのNT-IPL -> NTLDR -> C:\$WIN_NT$.~BT\BOOTSECT.DAT -> $LDR$

 最初は普通のNT系OSのシーケンス通り、NTLDRまで進む。ここでboot.iniにセットアップ用のエントリがあり、かつこれがデフォルトとなっていて、更にタイムアウトが5秒になっているので、すぐにC:\$WIN_NT$.~BT\BOOTSECT.DATが読み込まれる。このファイルはその名のとおりブートセクターと同じものになっていて、ここに特殊なNT-IPLがあり、セットアップ用の特別なNTLDRである$LDR$を読み込み実行する。「$LDR$」はもはやboot.iniを読むこともなく、直接セットアップ動作へ進む。

 従って、ターゲットマシンに環境だけコピーし、boot.iniに上記エントリを追加してマシンの再起動を行い、起動時にこれを選択さえすれば、セットアッププログラムが実行されるように思える。しかしここで大きな問題がある。

 「ブートセクター」でも解説しているようにブートセクターにはIPLのほか、BPBという非常に重要な情報が含まれている。しかもこれはその環境特有のものである。このサイトのパワーユーザならもう気づいたかもしれない。そうだ、このC:\$WIN_NT$.~BT\BOOTSECT.DATは元の環境作成マシンの環境に適合したBPBになってしまっているのである。

 このままマシンを再起動して、エントリ「Microsoft Windows 2000 Professional セットアップ」を選択してもNTLDR is missingというエラーになってしまう。ターゲットのファイルシステムとBPBが異なるためファイルシステムを正しく読めないからだ。ターゲットに合わせたBPBを持つBOOTSECT.DATを作成する必要がある。

 ではそれをどうやって行うのだろう。実はこれは結構簡単だ。手法としては元のBOOTSECT.DATをターゲットのBPBに適合されるのではなく、ターゲットのブートセクター(もちろんターゲットに適合したBPBを持つ)をセットアップ用の特別なIPLに変えたブートセクターファイルを作るのである。

 まずターゲットのブートセクターをファイル化する必要がある。これはWindows 2000 Support ToolDisk Probeを使う。このツールについては「マスターブートレコードの解析」で簡単に説明しているので入手方法などはそちらを参照してほしい。ファイル化と同時にIPLの改変もこのツールで一度にできる。

 ただしターゲットのファイルシステムによって多少やり方が異なる。これはFAT(32)とNTFSではIPLの構造がかなり違うからだ。特にNTFSはIPLがブートセクターの1セクターに収まっておらず、後続の数セクターを利用しており、かつ書き換えの対象データもその後続データに存在する。

 データを作りを実際に行ってみよう。まず「Disk Probe」を起動する。

 最初に取り扱うドライブやパーティションを決める。今回の場合はCドライブなのでこれをターゲットパーティションとする。Drives」メニューLogical Volume...」メニューをクリックすると次のようなOpen Logical Volume」ダイアログがでる。

[ターゲットパーティションの指定]

 「Logical Volumes」リストC:\をダブルクリックすると下のHandle:0Cとなるので、ここのSet Active」ボタンをクリックする。「Active Handle」「C」になるはずである。今回はハードディスクのデータは読むだけなので、必ずRead Onlyをチェックしておこう。誤って大切なハードディスクのデータを書き換えてしまうことがなくなる。設定したら「OK」ボタンをクリックする。

 ターゲットパーティションを設定したら、早速セクターを読みこんでみる。Sectors」メニューRead」メニューを選択するとRead Sectors」ダイアログが表示される。

[読み込みセクターの指定]

 ここで読む込む最初のセクター(Starting Sector)とセクター数(Number of Sectors)を指定するが、最初のセクターは先頭(0)だ。セクター数はファイルシステムがNTFSの場合、16セクターを指定する。FAT(32)の場合は1セクターで構わない。いずれの場合も読み込むと最初のセクターのダンプが表示される。

[先頭セクターのダンプの次セクターへの移動(NTFSの場合)]

 NTFSの場合、書き換え対象データは第2セクターにあるので、Next sector」ボタンで次のセクターへ移動する。

[NTFSパーティションの第2セクター]

 オフセット2から4E 00 54 00 4C 00 44 00 52とあるのがIPLで読み込むファイルNTLDRを指定するところである。1文字1文字の間に「00」が入っているので気をつけてほしい。ここを$LDR$に変更する。24 00 4C 00 44 00 52 00 24と直接入力する。

[読み込みファイル名の書き換え(NTFSの場合)]

 尚、ファイルシステムがFAT(32)の場合は第1セクターに読み込みファイル名がある。

[読み込みファイル名の書き換え(FAT32の場合)]

 NTFSの場合と違って文字も連続している。書き換えたらこのデータをファイルにセーブ(保存)する。File」メニューSave As...」メニューをクリックする。

 セーブは直接C:\$WIN_NT$.~BT\BOOTSECT.DATにしてしまってもいいだろう。


 次にC:\boot.iniに次のようにセットアップ用エントリを追加する。

[boot.iniへのWindows2000セットアップ用エントリの追加]
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect
C:\$WIN_NT$.~BT\BOOTSECT.DAT="Microsoft Windows 2000 Professional セットアップ"

 これでターゲット環境での前準備はすべて終了である。

 但しできればターゲットマシンのCドライブに存在するブート系ファイル(NTLDR、ntdetect.com、bootfont.bin)のバックアップを取っておいてほしい。この後Windows 2000のセットアップを行うとこれらのファイルがWindows 2000 のものに置き換わってしまうため、Windows XPが起動しなくなる。プレインストールマシンでは、Windows XPのインストールメディアが無くて、ブート系ファイルの復元ができない場合もあるので、その場合は必ず行ってほしい。

 バックアップはどこか適当なフォルダにコピーしておくだけでも構わない。またこの時点まで(Windows 2000のセットアップ開始まで)なら、どの時点で行ってもらっても構わない。
 

4. ターゲットマシンにてWindows 2000のセットアップ開始

 早速マシンを再起動してみる。NTLDRから次のようなメニューが表示されるはずである。

[NTLDRによるOS選択画面]

オペレーティング システムの選択

   Microsoft Windows XP Professional
  Microsoft Windows 2000 Professional セットアップ

上矢印 キーと 下矢印 キーを使って項目を選択し、Enter キーを押して下さい。


システムが自動的に起動するまで:30




Windows の問題解決と拡張オプションについては、F8 キーを押して下さい。


 ここでMicrosoft Windows 2000 Professional セットアップを選択起動すれば、Windows 2000のセットアップが開始される。

 ところでこれまでのインストールOSの設定でインストール先を指定する場面がなかったが、この後のセットアップの過程で以下のような場面がある。

 ここで勝手にインストール先が表示されているが、ESC」キーを押すことでインストール先を選択することもできるから、既存環境を壊さないように別ドライブにインストールしよう。

 後は通常のインストールと何ら変わりはない。

 尚、前述したようにWindows 2000 のインストールが完了するとCドライブに存在するブート系ファイルがWindows 2000 のものに変わってしまうためWindows XP が起動しなくなる。最後にWindows 2000上で、Windows XP のインストールCDか、バックアップしておいた、これらのファイルを復元しておこう。

 


←前へ(特別編)  次へ(究極編)→

 


目次へ