MacのBoot CampでWindowsパーティションを2個用意する
iMacはBoot Campを使ってWindows XPマシンにすることになってる。今までのWindows XPは、OSをインストールするCドライブと、VMwareのVirtual Machineを設置するDドライブに分割して使っていた。Boot Campアシスタントを使うと、Windowsパーティションは1個しか用意されないから、Cドライブのみになってしまう。今まで通りDドライブを用意することにしたんだけど、これが不幸の始まりだった。
結論としては、以下の通り。ようするに手を出さない方が無難。WindowsでGPTを扱う方法がこなれていないことと、Mac OS Xとの同居が特殊なことが原因か?
hal.dllが見つからない
最初は安直に、Boot Campアシスタントを使ってWindowsパーティションを1個作成し、Windowsインストールの中でそのパーティションを消去して、新しく2個のパーティションを作ってみた。
すると、見事にWindowsが起動しなくなった。hal.dllが見つからないらしい。Windowsのインストーラでパーティション構成をさわったのがまずかったんだろう。
次のファイルが存在しないか壊れているため、windowsを起動できませんでした。 <Windows root>\system32\hal.dll
diskutilを使ってパーティション構成を変更する
Windowsのインストーラでパーティション構成を変更するのがダメなら、Mac OS Xでやってみよう。diskutilのresizeVolumeコマンドを使う。diskutilはNTFSを扱えないので、とりあえずFAT32でフォーマットしておいて、WindowsインストーラでNTFSにフォーマットし直す。
# diskutil /dev/disk0s2 40G "MS-DOS FAT32" BOOTCAMP 40G "MS-DOS FAT32" DATA limits
これで、Mac OS Xに40G、Windows C:に40G、残りがD:になる。あとはWindowsインストールCDから起動してインストールを進めるだけ。
結果は、インストールはできるけど、初回の再起動後にhal.dll地獄でインストールを進められなかった。うーん。
Windowsパーティションの順番が重要?
Webを眺めてみると、どうやらC:が最後のパーティションにあれば大丈夫ということらしい。Windowsは、Windowsから利用可能な新しいパーティションを発見すると、発見した順番にドライブレターを付与する。そのままだと、WindowsをインストールするドライブがD:になってしまう。これでもWindowsは動くけど、何となく気持ち悪いので小手先でなんとかしてみよう。
Windowsは、いったんドライブレターを付与すると、重複がない限りは前回同様のドライブレターを付与するらしい。というわけで、初回インストールの時だけ、D:になる予定のパーティションをWindowsから見栄無くすればOK。今回はD:をHFS+でフォーマットしておくことにした。
# diskutil /dev/disk0s2 40G "Journaled HFS+" DATA limits "MS-DOS FAT32" BOOTCAMP 40G
optionキーを押しながらMacを再起動して、起動デバイス選択画面になったらWindows XPのインストールCDを選択する。インストールが終わったら、Disk UtilityでDATAパーティションを選択して、FAT32で「消去」する。あとはWindows側で、NTFSに変換すればOK。なぜかうちではクイックフォーマットがうまく動かなかった。全部完了したら、ドライブレターの割り当てを適宜変更すべし。
FAT32をNTFSへ変換する > convert g: /fs:ntfs