bootcampを使わずにUEFIでWindowsをインストールするとintel-vtが使える

bootcampを使ってWindowsを使っていたが、bootcampを使うと以下の弊害がある。

  • bootcampのレガシーOSサポート機能により、今どきのUEFIではなく、MBRを使った起動をする
  • そのせいで、intel-VTが有効にならず、boot2dockerやAndroidエミュレータVirtualBoxが動作しない

最近のPCはBIOSではなく、UEFIという仕組みで起動するらしい。

いろいろ試した結果、Macだけでパーティション作ってもダメ、Windowsだけでパーティションを作ってもダメで、Macto最終的にOSXWindowsデュアルブート環境の構築に成功した。

やりかた

当方の環境は以下の通り。

  • MacBookPro 13-inch Late2011
  • Core i5
  • メモリ 8G x2
  • SSD256G(光ディスクドライブを換装)
  • HDD1T(HDD500Gを換装)

今回、以下ようなパーティションを作成する。

  • SSD256G
  • HDD1T
    • 500G: Windows10のブート(NTFS)
    • 500G: MacOSで使用(MacOS拡張ジャーナル)

まず、Windowsの回復ディスクのUSBメモリを用意しておく。Windowsのインストールディスクでも良いが、Windows8のインストールディスクがUEFIで起動できなかったりしたので、USBメモリのほうが良さそうである。

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 gdt
//次にEFIパーティションを作成する。
//上記のみでWindowsのインストールを開始すると、EFIパーティションは作られないため、
//ここでEFIパーティションのみ作成する。
create partition EFI size=200
format quick fs=fat32 label="EFI"
//次にdisk1もフォーマットする
//Macが起動できる状態では、うまくいかなかったので、Macも削除する
select disk 1
clean
convert gpt
//終了
exit

Windowsのインストールディスクを挿入し、Windowsインストーラコマンドプロンプトから起動する。

>d:
>dir
//setup.exeがあることを確認。なければ、e:、f:、、、と確認する。
>setup.exe

インストール先を選ぶ画面まで進み、HDDに"新規"でパーティションを追加する。この時、Macでも容量の半分を使いたい場合は、容量を設定する。この時、Macで使うパーティションは作成しないこと! この時、追加のパーティションを作るように聞かれるが、「はい」と答える。

そのまま、Windowsのインストールを完了させる。この時点ではOSXを削除しているため、再起動してもWindowsのみが立ち上がるはずである。

Windowsのインストール後、Bootcampドライバをサイトからダウンロードし、インストールする。

https://support.apple.com/ja_JP/downloads/macoscomponents

これで、Windowsは完了。 一度電源を落とし、Command+Pを押しながら起動する。すると、インターネットからユーティリティを自動でダウンロードして起動する。

ここで、ディスクユーティリティの前に、上部メニューから"ターミナル"を起動する。ターミナルでは、以下を行う。

//まず、マウントを解除する
#diskutil unmountDisk disk0
#diskutil unmountDisk disk1
//どちらがWindowsのインストールしたディスクであるか、"GPT part"の数で判定する。
//私の環境では、disk0に3つあった。
#gpt show disk0
#gpt show disk1
//ここに、430GBのパーティションを追加する。残り全部与えても良さそうだが、私は行わなかった。
#gpt add disk0 -s 430000

これで、ターミナルを終了し、メニューからディスクユーティリティを開いて、以下を行った。詳細は省略する。

  • 先ほど作成したパーティションを再度フォーマットしなおして、名称をつける(特に不要なことだと思う)
  • Windowsの入っていないドライブのフォーマット

その後、メニューからOSXのインストールを行った。私の環境では、これでOSXが自動で立ち上がる環境になった。

Windowsに切り替える場合は、再起動や電源オンした時にoptionボタンを押して起動し、"EFI boot"と書かれたドライブを選択すると、Windowsが起動する。MacからはWindowsのドライブが見え、Windowsからもbootcampドライバをインストールすれば、Macのドライブが見えるようになった。

Windowsintel-vtが有効であるかは、以下のVirtualCheckerを入れると確認できる。

http://openlibsys.org/index-ja.html

f:id:j74th:20150913142716j:plain

あとは、遭遇した問題について、記述する。

問題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をインストールしたところ、成功した。

結果

OSXWindowsの両方のパーティションを持つディスクドライブの作成方法が見つかるまで、なかなか大変だったが、Dockerが思う存分使えるWindowsマシンが手に入ったので、マシンをもう一台買うよりはかなりお得に環境を作成できた!