(注:このブログはもう更新していません)この日記は私的なものであり所属会社の見解とは無関係です。 GitHub: takahashikzn

[クラウド帳票エンジンDocurain]

BootCampからインポートした仮想マシンをフツーのParallels仮想マシンへ変換する手順


タイトル、長っ!!  ??(゚Д゚;)


最初はBootCampとしてインストールしたWindows7ですが、
Parallels経由で起動しても性能的に問題ないことがわかったため、
BootCampパーティションをParallelsで起動して使っていました。Coherence超便利!


しかし、BootCampパーティションのまま運用するには何かと不都合が多かった。
例えば、TimeMachineに対応していない等。
MacOS XからするとBootCampパーティションは赤の他人なんで、当たり前ですが。。。


というわけで、Parallelsの機能を使って
BootCampパーティションをParallels形式へインポートしました。
これで、仮想マシンはただのローカルのファイルになります。
だから当然TimeMachineの対象になるし、
仮想マシンをもう一個作りたかったら、単純にファイルをコピーするだけ。
あら便利ステキ、というわけです。


これで万事解決!と思ったら。。。

問題1: パーティション操作が一切不可

仮想ディスクのレイアウトを見てみたらこんな感じ。

Windowsがインストールされているパーティションの位置が変です。すごく。



これ、MacBookAirにBootCampでWindows7をインストールした時の
MacBookAir上のストレージのイメージそのまんまなんだと思います。
要するに、

  • 先頭の200MB→MacOS Xのブート用パーティション
  • 次の158GB→MacOS Xがインストールされているパーティション
  • 次の620MB→BootCamp用のブート用パーティション Lionのリカバリ領域かもしれません
  • 最後の74GB→Windows7がインストールされているパーティション

ということ。


ディスク全体は240G近くもあるというのに、実質的に使えるのは75Gだけ。
じゃ、Dドライブと620MBのパーティションを消すとどうなるか。



するとこうなる。Cドライブと先頭のパーティションだけが残り、
これ以上は何の操作もできなくなります。(どのメニューも選べない)

MacOS XのディスクレイアウトはMBRではなくGPTです。
で、WindowsはGPTにまともに対応していない。だから、こんなことになってしまう。



はい、『Windows純正のじゃなくてEaseUS使えばいいんじゃね?』と思ったそこのアナタ。
残念でした。こんな有様です。


そもそも『未割り当て』になる。なんだそりゃ。
というわけで、八方塞がりな感じです。

問題2: 仮想ディスクの圧縮ができない

まず、仮想マシンのパーティション容量を128G取ったとして、
仮想マシン上ではまだ30Gしか使っていない場合には、
実ファイル(MacOS Xファイルシステム上)はおよそ30Gしか使いません。
で、仮想マシンで30G以上使った場合、実ファイルも順次拡張されます。


それじゃ逆に、仮想マシンで100G使っていたんだけど、
ファイルを消したので30Gしか使わないようにした時、
実ファイルは30Gまで縮小されるかというと。。。されないわけです。100Gのまま。


そんな時に使うのが『仮想ディスクの圧縮』。
これを使うと、実ファイルのサイズを仮想マシンが必要とする
最小のサイズにまで縮小してくれます。
まぁ要するにSSDで言う所の”TRIMコマンド”です。

コレ、それなりに仮想マシンを本気で使う(開発用途など)場合には
必須の機能だと思います。


しかし残念なことに、BootCampからインポートしてきた仮想マシン
圧縮しようとしてもエラーになる。これ、問題1が原因です。

問題3: 仮想マシンのスナップショット作成ができない(たぶん)

パッと見、スナップショットが作成されていないように見えます。
(ちゃんと確認したわけじゃないので違うかも)

というわけで、

BootCampからインポートしてきた仮想マシン(Windows 7 Pro x64)を
フツーの仮想マシン化しようと色々試行錯誤した結果、以下の手順に落ち着きました。
(試す場合は一応、自己責任ということでお願いします)

  1. BootCampからインポートしてきた仮想マシン(以降、BootCamp由来VMと呼ぶ)に、空の仮想ディスク(以降、バックアップディスク)を一個作成してマウントします。そして仮想マシンを起動。
    • バックアップディスクの容量はWindows7がインストールされているパーティションの容量以上にしてください。
  2. BootCamp由来VM上で、Windows純正機能である『システムイメージの作成』を使用してイメージファイルを作る(バックアップディスク上へ)。
    • この作業が完了したら、BootCamp由来VMは用済みです。削除して構いません。
  3. まっさらの仮想マシン(以降、移行先VMと呼ぶ)を作り、Windows7クリーンインストールする。
    • 当然ながらWindows7のインストールメディアが必要です。
    • 移行先VMのディスク容量は、BootCamp由来VMのディスクイメージ以上でなければなりません。例えば、僕のMacBookAirは256Gのストレージなので、移行先VMのディスク容量は256G以上を指定する必要があります。BootCampパーティションの容量とは関係ないのでご注意を!
  4. 移行先VMにバックアップディスクをマウントし、さっき作ったシステムイメージを使ってリカバリする。
    • 移行先VMのパーティションはMBRなので、以降はパーティション操作ツールで操作可能になる。
  5. EaseUSなどを使って、無駄なパーティションを削除して思い通りのパーティションレイアウトにする。


ちなみに、この手順を踏むとほぼ確実にWindowsの再認証が求められるのでご注意を。


僕は初めて電話認証を使いましたが、深夜の3時でもフツーに窓口開いてるんですね。。。
こんな深夜に使う人いるのか?  ←ここに一人