10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MAC上のVatualBoxでXcode7の開発環境を仮想化

Last updated at Posted at 2015-12-18

現状製品版のEl Capitanは直接imgからインストール出来ない
(ブート用dmgが認識しない。βのEl Capitanのみ?)ようなので、Mavericksからインストール

(Yosemiteはアップグレードを放置して入手し損ねた)

作業時間:トータル6h位

##OSXのブート用dmg作成 (Mavericks)

  1. MavericksをAppStoreからDL> アプリケーション/OS X Mavericks インストール.app
  2. ターミナルでインストールdmg生成
ターミナルでインストールdmg生成
$ git clone https://github.com/ntkme/InstallESD.dmg.tool
$ cd InstallESD.dmg.tool
$ bin/iesd -t BaseSystem -i /Applications/Install\ OS\ X\ Mavericks.app/Contents/SharedSupport/InstallESD.dmg -o Output.dmg

成功すると、/ユーザー/InstallESD.dmg.tool/Output.dmg が出来る。

※参考:http://ottan.xyz/virtualbox-yosemite-1605/

##VatualBoxでVMを作成

  • 容量は50GB位。(後から容量を拡張する場合は面倒なので多い目に)
  • vmの保存先はsparsebundleイメージ内が便利
    (バックアップはsparsebundleのファイルをホストOSのTimeMachineで行う運用)
  • チップセットを"PIIX3"にする。(ICH9だと起動しない)

####○2013年以降に発売されたMacの場合のみ設定(未検証)
2013年以降に発売されたMac(CPUがHaswell世代以降)の場合 仮想マシンのCPUの設定を変更しないと正しく動作しない

CPUがHaswell世代以降のみ以下を実行
$ VBoxManage list vms
$ VBoxManage modifyvm <uuid> --cpuidset 00000001 000306a9 00020800 80000201 178bfbff

####○チップセットを"PIIX3"にする
スクリーンショット 2015-12-05 1.51.49.png

##画面の解像度を設定
通常は1024×768のサイズで起動される。
起動後は画面のサイズの変更が出来ないので、以下のコマンドで画面のサイズを指定する。
VatualBoxのversionで以下のコマンドに違いがある

VM名「ElCapitan」を1440x900のスクリーンサイズで表示(5.2)
$ VBoxManage setextradata "VM名" VBoxInternal2/EfiGraphicsResolution 1440x900
VM名「ElCapitan」を1440x900のスクリーンサイズで表示(5.1まで)
$ VBoxManage setextradata "VM名" VBoxInternal2/EfiGopMode 4

##画面共有で接続
クリップボード共有が効かないので、OS X標準の”画面共有”でVMに接続する。

  1. ゲストMACの共有で画面共有を有効にする
  2. ゲストMACのアダプターを"ブリッジアダプター"に変更
  3. vmを画面無しで起動

####○アダプターを"ブリッジアダプター"に変更
スクリーンショット 2015-12-05 2.38.39.png

####○vmを画面無しで起動(お好みで。特にしなくてもOK)

vmを画面無しで起動
$ VBoxManage list vms インストールされているVMのリスト
$ VBoxManage startvm [VM名 or ID] -type headless GUIなしで起動
$ VBoxManage list runningvms 起動中のVM名

##初期設定とEl Capitanのインストール

  • ゲストMACの時計を合わす(日本)
  • MACのハードウェアシリアル番号の設定
  • DLした"OS X El Capitan インストール.app"を実行(約2h)
  • サインインに異様に時間がかかる場合はVMを無理矢理再起動
  • 画面共有の再設定

####MACのハードウェアシリアル番号の設定

通常は「このMACについて>シリアル番号 XXXXXXXXXX」でMAC本体のシリアル番号が表示されるが、VMでは通常0になる。

このシリアルは"AppleIDのサインイン"や"FileVault"の暗号化に使用される為、
0のままだとAppStoreやiCloud等が使えない ので設定する。

番号は12桁の英数文字。適当な文字を設定して可能かは未検証。

今回は現在使用しているホストMACのシリアルの最後の1文字を変えた物を使用。

例) "ABCDEFGABCDA" > "ABCDEFGABCDE" (このシリアルはダミー)

ハードウェアシリアル番号の設定
$ VBoxManage setextradata "Mavericks" "VBoxInternal/Devices/efi/0/Config/DmiSystemSerial" "ABCDEFGABCDE"

成功すると、ゲストOSでその番号が表示される
ac.jpg

##Xcode7のインストール

  • App Storeに普通にログインしてDLする。
  • DLしたら普通に起動して適当なテストアプリ作成>シミュレーター
  • VatualBoxに実機のUSB接続を認識させて、実機デバッグ

####シミュレーターでのデバッグ
Xcode7はAppStoreに普通にログインしてDLする。
若干遅いが、シミュレーターでのデバッグは普通に出来る。

スクリーンショット 2015-12-06 23.32.49.png

####VatualBoxに実機のUSB接続を認識させて、実機デバッグ

  1. VatualBoxの画面右下のUSB接続のアイコンから実機を接続する。
  2. 認識したら実機側で「このデバイスを信用しますか?」みたいなアラートが出るのでOK押下
  3. Xcodeのターゲット選択の所に実機が表示されればOK

db2.jpg

####ゲストOSでのディスク速度
右がホストOS。左がゲストOS上のディスク速度
ゲストOSはsparsebundle上にVDIを作成して実行している。

scdsmm.jpg

##その他 ディスク容量を拡張
容量を拡張する場合はVMのリサイズ以外にもGPT情報を修正する必要あり、若干作業が面倒。

  1. vdiの容量を変更
  2. ゲストOSをインストールディスク(Output.dmg)から起動>Disk Utility起動
  3. インストールディスクのDisk Utility>FirstAidでパーティションを修復後、パーティションを拡張
  4. Output.dmgをアンマウントして起動

####○vdiの容量を変更

vdiの容量を変更 50GB(51200MB)として
VBoxManage modifyhd [vmのファイル].vdi --resize 51200

####○インストールディスクから起動
Vatualbox上でOutput.dmgをマウントしたまま、ゲストOS起動時にCキーを押下状態でブートローダーが表示>BootManaget>EFI DVD/CDROM を選択
スクリーンショット 2015-12-05 3.56.12.png

####○ディスクユーティリティからパーティション変更

メニュー>ディスクユーティリティ起動。
そのままディスクユーティリティからパーティションを変更しても
"MediaKit が、パーティション(マップ)が小さすぎることを報告しています" というエラーで操作が完了できないので、FirstAidで修復後、パーティションを拡張する

スクリーンショット 2015-12-05 3.36.41.png

※参考:http://d.hatena.ne.jp/mtaneda/20100827/1282917281

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?