VMware Fusion の仮想マシンに macOS Sierra をインストールする

母艦の OS X の環境を macOS Sierra に早速アップグレードしたいところだが、既存の環境から直接アップグレードすると、何かしらのアプリケーションで問題が勃発するので悩ましい。

かと言ってクリーンインストールするのもこれまた悩ましいので、[最近確認したインストール方法](http://qiita.com/yusuke_konishi/items/62b94209fa329d9d3efa)で VMware Fusion の仮想マシンに macOS Sierra をインストールし、諸々の動作確認をしつつ、開発環境としても使ってみることにした。

## ホスト環境

- [MacBook Pro (Retina, 13-inch, Early 2015)](https://support.apple.com/kb/SP715?viewlocale=ja_JP&locale=ja_JP)
- OS X Yosemite, 10.10.x
- VMware Fusion 8.5 Pro


## Fusion 8.5 のインストール

Fusion 8.1.x 以前を使用していると、Fusion 8.5 のインストールを促されるので、画面にしたがってインストール (アップグレード) する。

![install_fusion.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/7a4fc85a-007f-6b02-cd40-443c76deb596.jpeg)


## macOS Sierra のインストール

### 1. macOS Sierra のダウンロード

Mac App Store から macOS Sierra のインストーラーをダウンロードする。

![1_download_macos.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/b44e3e50-bb7a-8a51-3746-ba037ae4fcdc.jpeg)


ダウンロード完了後、ホスト環境の Mac 上で `Install macOS Sierra` の画面が表示されたら終了させる。

### 2. 仮想マシンの作成

Fusion のメニューの `[ファイル]` > `[新規]` のウィンドウに、ダウンロードした `macOS Sierraインストール.app` をドラッグ＆ドロップし、画面にしたがって仮想マシンを作成する。

![2_select_app.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/87aabc84-f03a-d8ba-3d6c-5b3fec00f400.jpeg)


仮想マシンの設定は macOS のインストール後でも変更できるが、スナップショットを作成した状態ではハード ディスクのサイズ変更ができなくなるので、`[設定のカスタマイズ]` から事前に変更しておく。

![2_change_settings.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/70c716fe-b990-b50f-7bbe-7bfdb958a039.jpeg)


`[ハード ディスク(SATA)]` (左側) を選択する。

![2_select_disk.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/264f15e3-2b88-fbaa-575e-464803215e35.jpeg)


デフォルトでは Thin Provisioning で仮想ディスクが作成されるので、少し大きめにディスク サイズを確保する。

![2_change_size.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/14b8ebe8-f08a-9178-cfd7-b9155998405d.jpeg)


### 3. macOS Sierra のインストール

仮想マシンを起動し、画面にしたがって `[macOSインストール]` からインストールする。

![3_install_macos.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/d037daf4-c270-3f46-d28c-564112c23bf6.jpeg)


インストールするディスクには `[Macintosh HD]` を選択する。

![3_select_hd.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/44d70e0a-bea2-6b7b-443d-5bcfe1c0e82a.jpeg)


仮想マシンだとタイムゾーンを正しく取得できないことがあるので、タイムゾーンを手動で設定するため、`[このMacで位置情報サービスを有効にする]` のチェックを外したまま、`[使用しない]` をクリックする。

![3_uncheck_gps.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/89eaeb51-0459-6f0e-309b-5f9dbf58f4dd.jpeg)


続いて、最も近い都市に `[Tokyo - 日本]` を選択する。

![3_select_timezone.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/667b7e38-c2b2-be33-e904-0378d6d49e65.jpeg)


macOS のデスクトップ画面が表示されればインストール完了。

![3_finish_installation.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/7ee8c6fc-3c4c-a409-6cfe-ccf7eab391cf.jpeg)


### 4. スナップショットの取得

macOS をインストールした直後の状態に戻せるようにするため、念のため、この時点でのスナップショットを取得しておく。仮想マシンの macOS をシャットダウンし、`[仮想マシン]` > `[スナップショット]` > `[スナップショットをとる]` よりスナップショットを取得する。

### 5. パーティションの拡張

仮想マシンのディスクのサイズをデフォルトから増やした場合、パーティションを拡張する。El Capitan ではディスクユーティリティからパーティションを拡張できなくなっていたが、macOS Sierra でまた復活した模様。

![5_select_partition.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/c93dd4b6-b635-3d41-0388-45b151d8a7d9.jpeg)


…が、GUI が Yosemite に比べるとわかりづらく、~~スクリーンショットで説明するのが面倒なので~~ 手順が若干煩雑なので、 El Capitan と同様に、仮想マシン内のターミナルから diskutil コマンドにより拡張する。

```
$ sudo diskutil resizeVolume / R
```

ディスクユーティリティを開き直し、パーティションが拡張されたことを確認する。

![5_check_partition.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/d438c6b2-afd0-c6b0-c3a3-9684fa320bf1.jpeg)


### 6. VMware Tools のインストール

`[仮想マシン]` > `[VMware Tools のインストール]` より、画面にしたがって VMware Tools をインストールする。

![6_install_vmtools.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/27e80ff7-7c01-c620-45a8-80af81b3075e.jpeg)


VMware Tools をインストールして再起動すれば、基本的なインストール作業は終了。

![6_finish_vmtools.jpg](https://qiita-image-store.s3.amazonaws.com/0/137364/df999084-c8b7-8761-be51-9ee079316a99.jpeg)


## トラブルシューティング

### 仮想マシンの macOS Sierra で JIS キーボード配列の入力ができない

仮想マシンの OS X と同様に、キーボード配列で `日本語` を選択してインストールしても、JIS キーボード配列の入力ができない。(例: メールアドレスなどで `@` を入力するためには、`[Shift]` + `[2]` を押下する必要がある。)

対応として、仮想マシンをシャットダウンした状態で、構成ファイル (仮想マシン名.vmx) に以下を追記する。

```仮想マシン名.vmx
keyboard.vusb.idVendor = 0x05AC
keyboard.vusb.idProduct = 0x020D
```

ホスト環境の Mac 上のターミナルで、仮想マシンを保存したフォルダに移動し、念のため .vmx ファイルのバックアップを作成してから上記内容を追記する。

```
$ cd ~/Documents/Virtual\ Machines.localized/macOS\ 10.12.vmwarevm/
$ ls -l | grep vmx$
-rwxr-xr-x  1 yusuke  staff         3163  9 22 20:29 macOS 10.12.vmx
$ cp macOS\ 10.12.vmx ../macOS\ 10.12.vmx_bkup
$ echo "keyboard.vusb.idVendor = 0x05AC" >> macOS\ 10.12.vmx
$ echo "keyboard.vusb.idProduct = 0x020D" >> macOS\ 10.12.vmx
$ tail -n 2 macOS\ 10.12.vmx
keyboard.vusb.idVendor = 0x05AC
keyboard.vusb.idProduct = 0x020D
```


## 参考

- [VMware Fusion の仮想マシンに OS X をインストールする 2 つの方法](http://qiita.com/yusuke_konishi/items/62b94209fa329d9d3efa)