bootcampを使ってWindowsを使っていたが、bootcampを使うと以下の弊害がある。
- bootcampのレガシーOSサポート機能により、今どきのUEFIではなく、MBRを使った起動をする
- そのせいで、intel-VTが有効にならず、boot2dockerやAndroidエミュレータが動作しない
最近のPCはBIOSではなく、UEFIという仕組みで起動するらしい。
いろいろ試した結果、OSXだけでパーティション作ってもダメ、Windowsだけでパーティションを作ってもダメだったが、それぞれのツールでパーティションを作成することで、最終的にOSXとWindowsのデュアルブート環境の構築に成功した。
やりかた
当方の環境は以下の通り。
- MacBookPro 13-inch Late2011
- Core i5
- メモリ 8G x2
- SSD256G(光ディスクドライブを換装)
- HDD1T(HDD500Gを換装)
今回、以下ようなパーティションを作成する。
- SSD256G
- 全部: OSX Yosemiteのブート(MacOS拡張ジャーナル)
- HDD1T
- 500G: Windows10のブート(NTFS)
- 500G: MacOSで使用(MacOS拡張ジャーナル)
まず、Windowsの回復ディスクのUSBメモリを用意しておく。Windowsのインストールディスクでも良いが、Windows8のインストールディスクがUEFIで起動できなかったりしたので、USBメモリのほうが良さそうである。
- Windows7→http://www.atmarkit.co.jp/ait/articles/1204/06/news126.html
- Windows8、8.1→ http://windows.microsoft.com/ja-jp/windows-8/create-usb-recovery-drive
- Windows10→https://www2.mouse-jp.co.jp/ssl/user_support2/sc_faq_documents.asp?FaqID=20376
- 筆者はWindows10で実施
MacPCに、Windows回復ディスクUSBと、Windows10のインストールディスク(USB接続)を接続し、optionキーを押しながら起動する。すると、USBメモリの"EFI boot"メニューが表示されるので、選択する。
回復ディスクで、コマンドプロンプトを開くことができるので、開く。
DiskPartコマンドを使って以下を行う。
- すべてのドライブを、とgptいうフォーマットに変更する
- Windowsをブートするドライブにて、起動に使うEFIパーティションを作成する
>DiskPart
lisk disk
//ここで容量から、disk0とdisk1のどちらがSSD、HDDであるか判定した。
//当方環境は、HDDがdisk0、SSDがディスク1であった。
//まず、disk0の内容を消去し、GPTというフォーマットに変更する
select disk 0
clean
convert gpt
//次にEFIパーティションを作成する。
//上記のみでWindowsのインストールを開始すると、EFIパーティションは作られないため、
//ここでEFIパーティションのみ作成する。
create partition EFI size=200
format quick fs=fat32 label="EFI"
//次にdisk1もフォーマットする
//Macが起動できる状態では、うまくいかなかったので、OSXも削除する
select disk 1
clean
convert gpt
//終了
exit
Windowsのインストールディスクを挿入し、Windowsのインストーラをコマンドプロンプトから起動する。
>d:
>dir
//setup.exeがあることを確認。なければ、e:、f:、、、と確認する。
>setup.exe
インストール先を選ぶ画面まで進み、HDDに"新規"でパーティションを追加する。この時、OSXでも容量の半分を使いたい場合は、容量を設定する。この時、OSXで使うパーティションは作成しないこと! この時、追加のパーティションを作るように聞かれるが、「はい」と答える。
そのまま、Windowsのインストールを完了させる。この時点ではOSXを削除しているため、再起動してもWindowsのみが立ち上がるはずである。
Windowsのインストール後、Bootcampドライバをサイトからダウンロードし、インストールする。
これで、Windowsは完了。
一度電源を落とし、Command+Rを押しながら起動する。すると、インターネットからユーティリティを自動でダウンロードして起動する。
ここで、ディスクユーティリティの前に、上部メニューから"ターミナル"を起動する。ターミナルでは、以下を行う。
- Windowsをインストールしたディスクに、OSX用のパーティションを追加する。
//まず、マウントを解除する
#diskutil unmountDisk disk0
#diskutil unmountDisk disk1
//どちらがWindowsのインストールしたディスクであるか、"GPT part"の数で判定する。
//私の環境では、disk0に3つあった。
#gpt show disk0
#gpt show disk1
//OSXのパーティションを作成する。
//-sで容量を指定するが、単位がわかなかったので、Windowsのパーティションと同じサイズを指定した。
//以下の値は記録していなかったので適当です。
#gpt add -s 8000000 disk0
これで、ターミナルを終了し、メニューからディスクユーティリティを開いて、以下を行った。詳細は省略する。
- 先ほど作成したパーティションを再度フォーマットしなおして、名称をつける
- Windowsの入っていないドライブのフォーマット
その後、メニューからOSXのインストールを行った。私の環境では、これでOSXが自動で立ち上がる環境になった。
Windowsに切り替える場合は、再起動や電源オンした時にoptionボタンを押して起動し、"EFI boot"と書かれたドライブを選択すると、Windowsが起動する。OSXからはWindowsのドライブが見え、Windowsからもbootcampドライバをインストールすれば、OSXのドライブが見えるようになった。
Windowsでintel-vtが有効であるかは、以下のVirtualCheckerを入れると確認できる。
あとは、遭遇した問題について、記述する。
問題1 bootcampで使ってたWindows10を使うと、ライセンス認証が通らない
bootcampを使っていた時に、Windows8.1からWindows10に無償バージョンアップし、プロダクトキーを調べるツールを使ってWindows10のプロダクトキーを入れ、Windows10をクリーンインストールした。UEFIに変更後、インストール時にはこのプロダクトキーは使えたが、起動後ライセンス認証ができないと表示された。
Microsoftのライセンス認証窓口に電話して、事情を説明したところ、テクニカルサポート窓口に電話するよう言われた。テクニカルサポート窓口で以下のことを説明したところ、新しいプロダクトキーを発行してもらえた。
- Windows10はWindows8.1から無償アップグレードしたものか?→したものである。
- Windows10のクリーンインストールの目的はなにか?→bootcampではintel-vtが使えないため。
- アップデート前のWindows8.1は別のところで使っていないか→使っていない
- Windows10のプロダクトキー
- Windows8.1のプロダクトキー(口頭で伝えるのは大変だった)
- クリーンインストール後、ハードウェアは変わっていないか?→変わっていない。
やったね!
問題2 OSXでパーティションを作ると、Windowsでインストールできない
OSXでパーティションを作ると、擬似MBRとなるらしいパーティションができてしまうらしい。Windowsインストール時には、MBRレコードがあると認識されるため、UEFIでインストール出来なくなってしまう。
よって、Windowsのインストール完了までは、一切Mac側でパーティションを作成しないようにする。これからOSXも一度削除する必要があった。
問題3 Windowsでパーティションを作ると、OSXでフォーマットできない
Windowsで作ったパーティションを、OSXで使うためにOSXのディスクユーティリティでフォーマットをしようとしたところ、MediaKitではサイズが小さいと認識されていると、表示されフォーマットできなかった。
OSXで作成したパーティションをWindowsで見てみると、パーティションの間に未使用領域があると表示された。どうやらOSXでパーティションを作るときには、余分なディスク容量が必要なようである。
よって、Windowsでパーティションを作るときにはOSX用の容量を残しておき、Windowsインストール完了後にOSXのパーティションを作成した。
問題4 Windowsを普通にインストールすると、EFIパーティションを作らないため、OSXインストール後起動できなくなる。
普通にWindowsをインストールすると、EFIパーティションを作らないため、目的のUEFIでの起動がOSXインストール後はできなくなってしまう。
Windowsのインストーラを使う前に、コマンドプロンプトからDiskPartを使って、EFIパーティションだけ用意する必要があった。
問題5 よくわからないがWindowsのインストールディスクが起動できない
Windowsの回復ディスクを使い、そこからWindowsのインストーラを起動することで、解決した。
問題6 OSXが起動できる状態になっていると、Windowsがインストール出来ない
Windowsのインストーラで、再起動後Windowsを起動させることができないので、インストールできないと表示されることがあった。そのため、OSXを削除した状態で、Windowsをインストールしたところ、成功した。
結果
OSXとWindowsの両方のパーティションを持つディスクドライブの作成方法が見つかるまで、なかなか大変だったが、Dockerが思う存分使えるWindowsマシンが手に入ったので、マシンをもう一台買うよりはかなりお得に環境を作成できた!