Windowsをハードディスクから起動させるための条件 EFIのCMS機能によりレガシーなBIOSベースのOSをサポートすることが可能になりましたが、これらのOSをハードディスクから起動できるようにするには、ハードディスクのパーティション構造の違いが問題になります. ご承知のように、EFI系のシステムでは GUIDパーティション(GPT)形式が用いられており、従来の IBM/PC系のパーティション構造とは大きく異なっています.当然ながらWindowsのようなBIOSベースのOSはGUIDパーティション(GPT)形式には対応できません.そこで、BIOSベースのOSからGUIDベースのハードディスクにアクセスする際に、あたかも従来の IBM/PC系のハードディスク構造であるかのように見せかける必要があります.このための仕組みが Protective MBR と呼ばれる仕組みで、ハードディスクのセクター0をレガシーなBIOSベースのOS用にMBRとして使えるようになっています. MBR(Master Boot Record)そのものの構造についてはここでは詳しく述べませんが、詳細を知りたければネット上で検索を掛けると直ぐに見つかると思います.Nobusan’s Square : “http://nobumasa-web.hp.infoseek.co.jp/” というサイトに丁寧な記述がありますので、興味のある方はそちらのページをご覧になってください.(リンク切れ) Windows XPの起動プロセス MBRの問題に関してはGUIDパーティション側で解決されているので、特に意識しなくても問題は無さそうですが、WindowsのシステムパーティションをGUIDパーティションのどの位置に設けるのかが問題になりそうです. Windowsの起動プロセスを簡単に追ってみましょう. まず電源ONとともにBIOSが起動し、BIOSに設定されている起動ディスクの MBRを読み込む.MBRにはブートストラップローダーと呼ばれるOSを起動するための簡単なプログラムが記述されており、このブートストラップローダーがMBR上のパーティションテーブルを参照し、アクティブなパーティションを見つけ出す.この後ブートストラップローダーはアクティブパーティション上のブートセクタと呼ばれる領域に書き込まれている別なブートローダー(NTIPL)呼び出し制御を渡す.制御を渡されたNTIPLはさらに別なブートローダ(NTLDR)を呼び出す.NTLDRは”boot.ini”ファイルに記述されたWindows OSの情報を参照して、Windowsの起動を行っている. このような複雑なプロセスを経てWindowsが起動される訳ですが、Windows用のFAT32/NTFSパーティションを先頭から4つ目以内に作成しておけば、ProtectiveMBR上のパーティションテーブルを通じてレガシーなBIOSベースのOSからでも目的のパーティションにアクセスすることが可能となる筈ですね. EFIベースのマシンでWindowsなどのレガシーなBIOSベースのOSを動かす場合の問題点がある程度明らかになったので、次回は実際にIntelMac上にWindows XPをインストールして検証してみることにします.
BootCampについて 2006年1月のIntel Mac の発売と同年4月のAppleからBootCampのベータ版がリリースされ、Intel Mac上でWindowsを直接稼働させることが可能になり、実際にIntel Mac上でMac OS XとWindows XP(Vista)の両方をOSを使い分けている方も多いと思います.また、Parallels DesktopやVMWare Fusionなどの仮想デスクトップ環境もリリースされ、Intel Mac上でWindowsだけではなくLinuxやSolaris10などのOSも比較的容易に動かすことが可能になっています. まもなくMac OS X 10.5 (Leopard) が正式にリリースされ、BootCampも正式にバンドルされることになりますので、いい機会ですのでMacでWindowsを動かす方法について検討してみようと思います. 2006年4月上旬にAppleから突然このツールがリリースされ巷は大騒ぎでしたが、このツール自体は単なるハードディスクパーティションの操作ツールに過ぎません.既存のハードディスクの領域をデータを消すことなく分割し新たにWindows用の(FAT32)パーティションを作成(逆に元のOSXのシングルパーティション状態に戻すこともできる)することと、Windows用の各種ドライバ類を書き込んだCD-ROMを作成する機能があります. DOS/V系のマシンではPartitionMagicやAcronis Disk Director Suite などのハードディスクパーティションツールなどが広く一般に普及していて、ハードディスクの中身のデータを消すことなく比較的簡単にパーティション操作が行えました.Mac用でもiPartitionやDiskWarrior,Drive Geniusなどのハードディスクパーティションツールがありますが、まだ機能が貧弱だったり、使いにくいのが現状でしょうか.Apple標準のDiskUtilityもLeopard版からは限定的ではありますが、既存データを消さずにパーティションの分割、解放ができるようになるようです. BootCampを使用してMac OS X とWindows XP(Vista) デュアルブートマシンを作ろうとするときに一番困るのは、BootCampがAppleの標準的なハードディスクのパーティション設定(見た目のパーティションが1つしかない状態)以外では使えないということです.Macのパワーユーザであればハードディスクを複数のパーティションに分けて使っている方も多いことと思います.Windowsをインストールするためにハードディスクのパーティションを元に戻してもう一度OS Xをインストールし直すなんて事はできれば避けたいところですよね. 実はBootCampを使わなくてもOS XとWindowsのデュアルブートを実現することは可能なのです.ここで Intel MacでWindowsが稼働するための条件を整理してみましょう. ハードウェアの違い Intel Macでは DOS/V機のようなBIOSは無く、EFI (Extensible Firmware Interface)が使われています.EFIについては別な機会に書くことがあるかもしれませんが、EFIは非常に高機能な最新のファームウェアで従来のBIOSと違い拡張性に富んでいます.残念ながらこのEFIに対応したハードウェアは64bit系のサーバなどごく一部で、大多数のハードウェアは未だにBIOSを用いているのが現状です. OS側でも殆どのOSがBIOSを前提に作られていて、64bit系のサーバOSが対応している程度です.デスクトップOSの主流である32bit系のWindows XP, Vista はBIOSを前提としています. EFIではGUIDパーティションテーブル(GPT)が用いられており、従来のIBM/PC互換機のようなパーティションの限界に制限されることはありません.幸いなことにEFI では過去の遺産であるBIOSにしか対応していないOSもサポートできるように、CSM(Compatibility Support Module)と呼ばれる機能があります. 2006年4月にAppleがBootCampをリリースした際に同時にIntelMac用の最新のEFIファームウェアがリリースされたことを記憶されているでしょうか.恐らくAppleはWindowsをIntelMacで起動できるようにするため、CSM機能をEFIに追加したものと思われます.WindowsのインストールCDをIntelMacに入れて”StartupDisk”で起動OSを切り替えるか、起動時に”Option”キーを押し続けて起動OSを切り替えみれば分かりますが、BIOSを前提としたOSの起動ディスクでもきちんとInteMacで起動するはずです. このようにOSのインストールディスクから起動できるようになり、OSのインストーラーを起動することができるようになったので、先ずは第1関門を通過したというところでしょうか.厄介なのはここから先の話です. 話が大分長くなりましたので、今回の主題であるWindowsのインストールについては次の記事で検討することにします.EFIについては開発元のIntelのホームページやUEFIのページを参照してみて下さい.GPTに関してはAppleのTechnical Notes […]
ブログサイト “y2blog” を立ち上げました.現時点でまだ日本語化されていないことと、Internet Explorer に対応できていませんが、追々改良していくつもりです.