Windows 2000 server をインストールする前に MBR の編集を行う。
編集の目的は次にインストールする Windows 2000 sever のインストーラに、次のように
誤認識してもらうためだ。
- ターゲットのディスク上にインストールされている Windows は無く、これからインストールする Windows 2000 server が、"最初にインストールされる Windows だ" 。
そうすることで、インストーラは Windows 2000 sever のパーティションを C ドライブとして扱い、そこにブートローダ関連のファイル (ntldr, NTDETECT.COM, bootfont.bin, boot.ini) を配置する。
MBR 内のパーティション テーブルにある Windows XP に該当の アクティブ フラグとパーティション タイプを次のように変更する。
項目 | 変更前 | ⇒ | 変更後 | 適用 |
アクティブ フラグ | 0x80 | ⇒ | 0x00 | |
パーティション タイプ | 0x07 | ⇒ | 0x83 | 0x07 : Windows、 0x83 : Linux 基本 (ext2) |
これらの値に変更する理由は次の通り。
- アクティブ フラグ
Windows 2000 server が C ドライブとして起動するためには、他パーティションのアクティブ フラグに 0x80 があってはならない。
- パーティション タイプ
0x07 のままでは Windows 2000 server のインストーラは、ターゲットのディスクに Windows が存在していると認識する。
また、0x00 にすると未使用領域として認識し、これからインストールする Windows 2000 server の領域として確保してしまう。
さて、いよいよ MBR を編集する。
下記要領で dskprobe を起動し、ハードディスクの編集を可能にする。
- Windows XP を起動する。
- dskprobe を起動する。
- [Drives] - [Physical Drive...] を選択。
[Open Physical Drive] が開く。
- [Available Physical Drives] 欄の [PhysicalDrive0] をダブルクリック。
[Handle 0] が PhysicalDrive0 に、[Open Mode] が OPEN_READONLY になる。
-
[Read Only] のチェックを外す。
[Open Mode] が OPEN_READWRITE に変わる。
- [Set Active] をクリック。
- [OK] をクリック。
- [Sectors] - [Read] を選択。
[Read Sectors] が開く。
- デフォルトで [Starting Sector] に "0"、[Number of Sectors] に "1" が入っているので、そのまま [Read] をクリック。
- 下図は読み出した MBR (セクタ 0) の様子。
赤枠の範囲がパーティション テーブルで、グレーを背景とした部分が Windows XP に該当のパーティション テーブル 1。
アクティブ フラグが 0x80 で、パーティション タイプが 0x07 であるのが判る。
- カーソルを移動し、アクティブ フラグを 0x00、パーティション タイプを 0x83 に変更する。
下図は変更後の様子。
次項の操作で、変更したデータを MBR に書き戻す。
- [Sectors] - [Write] を選択。
[Write Sector] が開く。
- デフォルトで [Starting Sector to write data] に "0" が入っているので、そのまま [Write it] をクリック。
- ハードディスク データの上書きになるので、注意喚起のメッセージが出る。
[はい] をクリックすると (パーティション テーブル) MBR が書き変わる。
- dskprobe を終了する。
MBR 編集の済んだハードディスクに Windows 2000 server をインストールする。
Windows 2000 server セットアップ時のパーティションの選択で、未使用領域にパーティションを作成しそこに Windows 2000 server をインストールする。
作成するパーティションには 40GB (40000MB) を割り当て、NTFS でフォーマットする。
Windows 2000 server のインストーラは次のように認識・動作する。
- パーティション 1 は 他のシステム (実態は Windows XP) が使用中なので、未使用領域に確保する新しいパーティションは、パーティション 2 となる。
- アクティブ フラグが 0x80 のパーティションはないので、パーティション 2 のアクティブ フラグを 0x80 (起動可能) にする。
- パーティション 2 のルート ディレクトリに ntldr, NTDETECT.COM, bootfont.bin 等 Windows 起動関連ファイルを設置する。
2000 server のインストールが済んだら、可能であれば Service Pack 等のインストール、Update およびウィルス対策等も済ませておく。
インストールが完了すれば windows 2000 server は正常に起動できるが、パーティション テーブルを操作されている
Windows XP の入ったパーティション 1 の認識は次のようになる。
- windows 2000 server は、windows XP の入ったパーティション 1 を、ドライブとして認識できない。
- しかし「ディスクの管理」では、NTFS でフォーマットされたパーティションとして認識している。 ただし、ドライブレターは割り当てられていない。
Windows 2000 server をインストールすると、C ドライブ (Windows 2000 server が C ドライブ になっている) 直下に boot.ini が作成される。 その内容は概ね次のようになる。
これで Windows 2000 server は起動可能となるが、マルチ (デュアル) ブートにはなっていないので Windows XP の起動はできない。
Windows 2000 server のインストール関連作業が終わったら、こちらにも MBR の参照・変更を行うための dskprobe をインストールする。
dskprobe のインストール方法は、
T.3.dskprobe を参照。
▼ MBR には BIOS から最初に起動される Boot Strap Loader もあるが、これも Windows 2000 sever 用に書き換え
られる。
しかし、最初にインストールした Windows XP に関するパーティション テーブルの情報は保留される。