2010年10月16日土曜日

BOOTCAMPパーティションをVirtualBoxから起動させる

bootcampパーティションにWindows7を既にインストールしていたのだが、
いちいち再起動するのは面倒と思い立ち、それならVirtualBoxでWindows7を
ゲストOSとして起動しようではないかと考えた。
ネットで調べてみると、bootcampパーティションをVirtualBoxから起動させるには、
テクニカルだったのでここにメモを残す。


VirtualBoxの用意

最新バージョンを用いてはだめです!!
VirtualBox3.0.8を使います。
これは、vmdk(ディスクイメージファイル)を作成する際、
最新バージョン(3.2.10)だとバグがあるらしく、3.0.8をまずインストールする。
http://forum.virtualbox.org/viewtopic.php?f=8&p=153285 を参考にしました。
ディスクイメージファイルの作成が完了すれば、最新バージョンにアップデートしても構わない。


ディスクイメージファイルの作成

 ディスクイメージファイルを作成するには、以下の工程を踏みます。
  1. BOOTCAMPパーティションをアンマウントする
    ディスクユーティリティを起動し、BOOTCAMPパーティションを選択する。
    ウィンドウ上部の情報をクリックして、ディスク識別子を確認する。通常はdisk0s3のはず。
    そして、ウィンドウ上部の取り出すでBOOTCAMPをアンマウントする。
  2. BOOTCAMPパーティションのディスク識別子のパーミッションを変更
    ターミナルを起動して、以下のコマンドで/dev/disk0s3のパーミッションを変更する。
    ただしdisk0s3の部分は各自環境によって異なる。
    $sudo chmod 777 /dev/disk0s3
  3. ディスクイメージファイルの作成
    ターミナルを起動して、以下のコマンドでディスクイメージファイルを作成します。
    $sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0
     -filename win7raw.vmdk -partitions 3
    ディスクイメージファイルであるwin7raw.vmdkはカレントディレクトリに作成される。
    従って通常は/Users/yourname/ 以下に作成されているはず。
    この作業はVirtualBox3.0.8で行わないとだめだった。
  4. ディスクイメージファイルの所有者を変更
    工程3においてディスクイメージファイルをスーパユーザで作成したので、
    イメージファイルの所有者はrootになっている。このままだと起動できないので、
    ディスクイメージファイルの所有者を以下のコマンドで変更する。
    $sudo chown yourname win7raw*
    これでwin7raw.vmdkとwin7raw-pt.vmdkの所有者を変更できる。
以上でディスクイメージファイルの作成は完了。


VirtualBoxの設定

VirtualBoxを起動して、ウィンドウ上部の新規をクリックして仮想マシン作成ウィザードを起動する。
仮想マシン名は、win7_64 にしときます。
数回「続ける」ボタンを押すと、「仮想ハードディスク」の項目になる。
ここでは、「既存のハードディスクを使用」を選択し、右にあるフォルダボタンをクリックする。
現れた仮想メディアマネージャウィンドウ上部の「追加」をクリック。
ここで、ディスクイメージファイルwin7raw.vmdkを選びオープンをクリックして追加する。
この追加されたディスクイメージファイルを選択し、仮想マシン作成を完了する。
すると初めのVirtualBoxウィンドウの左側に先程追加した仮想マシンが表示されていると思います。
この仮想マシンをクリックして反転させ、ウィンドウ上部の設定をクリックします。
このウィンドウで仮想マシンwin7_64を設定できます。
上部のストレージを選択し、IDE Controllerのタイプを「ICH6」に変更します。

また、ゲストOSへのメモリ割り当てには限界があるらしく、2500MB付近が最大値らしい。
これはMacOSXがデフォルトで、32bitモードで起動していることに起因するらしい。
参考:http://forum.virtualbox.org/viewtopic.php?f=8&p=156574
従って、OSXを64bitモードで起動すれば、上記のメモリ量以上を割り当てることができるらしい。
しかしながら、32bitモードで起動させていることには理由があり、64bitモードで起動すると動作不良を起こす場合があるらしい。

これで、基本設定は完了。
上部の起動ボタンを押せば、Windows7が起動してくれると思います。

また、Windows7の起動後、VirtualBoxメニューバーの「デバイス」→「Guest Additions のインストール」
をクリックすると、よりVirtualBoxが使いやすいものになります。


VirtualBox起動の注意

しかしながら、Macを再起動すると、ディスクイメージファイル作成工程で行った、
/dev/disk0s3 のパーミッションを元に戻してしまいます。
また、VirtualBoxからBOOTCAMPパーティションを起動するには、
このパーティションがアンマウントされていないとだめです。
つまり、VirtualBoxからWindows7が起動されるまでに、
  1. /dev/disk0s3 のパーミッションを777に変更
  2. BOOTCAMPパーティションをアンマウント
  3. VirtualBoxからWindows7を起動
この3工程をたどらなくてはなりません。 それなら、AppleScriptで書いてしまおうと考えた人がブログに載せていたので拝借。
以下がそのスクリプト、
--Make the BOOTCAMP Partition writeable
do shell script "chmod 777 /dev/disk0s3" with administrator privileges 
tell application "Finder"
if exists "BOOTCAMP" then
--Eject BOOTCAMP Volume if Mounted
do shell script "umount -f /Volumes/Bootcamp" with administrator privileges
end if
end tell
--Launch Virtual Machine
do shell script "vboxmanage startvm YOUR-VM-NAME-HERE"
ただし、YOUR-VM-NAME-HEREの部分には仮想マシン名のwin7_64を記入する。
ユーティリティにあるAppleScriptエディタを用いれば簡単に作成できる。


ゲストWindows 7の設定
上手く動作しない項目の修正

1 件のコメント:

  1. お世話になります。
    PCからMacBookに替えて、Parallelsを使っていたのですが、Mountain Lionにバージョンをあげたら使えなくなっちゃったんですね。OSの更新20ドルで、Parallelsがそれより高いなんてふざけてます。
    で、ここを参考にBootCampにインストールしたWin7をVertualBoxで使うことも出来るようになりました。
    有難うございます。

    一つだけ、素直に上手く行かなかったところが。

    仮想マシンを設定するも、起動に失敗。
    IDE Controllerのタイプを「ICH6」に変更するのはいいのですが、そのままだとwin7raw.vmdkはSATAコントローラの下に付いてしまいます。これを一旦解除して、上のIDEコントローラのマスターとすると、上手く起動出来ました。
    これって、BootCampを設定するときにIDEにしていたということなんですかね。特に選択した記憶は無いのですが。

    返信削除