MacBook AirにBootCampでインストールしたWindows環境を、物理ディスクではなくファイルベースのVMイメージにしてバックアップするお話。ちなみにVMware Fusionを使っているのでソレ用でございます。
VMware社からは、現在動いている物理マシンを起動したままそっくり仮想マシンに変換できる「vCenter Converter」なるツールが無償で公開されている。早速(Fusionではなく)直接起動したWindowsにvCenter ConverterをインストールしVMイメージの作成を試みたのだが、結果はNG。GPTのディスクは未サポートなんだそうだ。ガーン。MBRサイコー。GPTはシネ(ぉ
↑VMware使いの神ツール「vCenter Converter」だがGPTには対応しない(T_T)
もちろん、上記ツールを使わなくてもVMware上でパーティションコピーは可能。例えば、物理ディスクと仮想ディスクの両方を設定した仮想マシンを作成し、VM上でパーティションツールを起動すれば、物理ディスクのパーティションを仮想ディスクにコピーすることができる。ハードウェアにガタがきた古いLinuxサーバをVM化して新しいマシンで稼動させる、なんて場合には都合がよい。
しかし、Windowsの場合はパーティションコピーによるVMイメージ化はまずうまくいかない。ハードウェア構成がちょっと変わると起動しなくなるのがWindowsというOSだ。vCenter Converterはそこらへんを上手いこと処理してくれるワケだ*1。例えば、Intel CPUのノートPCの環境を変換したVMイメージを、AMD CPUのデスクトップのVMware上で動かす事も可能。便利なことこの上ないのだが、、
「これは諦めよう。パーティションコピーでVM化したWindowsがマトモに動いた試しないし...ん?」おっと、今回の場合はフツーのWindowsとは事情が違いましたな。VMware Fusionで起動できる=既に上手いこと処理された状態なんだよね。この状態なら単純なパーティションコピーでもいけるんじゃないだろうか。試してみるか。
用意するもの。パーティション操作ツール「GParted」。USBメモリ版とisoイメージの両方。前者はAirで直接起動する場合、後者はVMwareで起動する場合に使う。USB接続のHDD又はSSD。GPartedからもVMからも普通に認識できるようUSBが無難。サイズはWindowsパーティションのサイズより大きい必要がある。
追記:GPartedの最新版0.14.0はAirでディスプレイアダプタを認識しないっぽい不具合があったので、0.13.1を使いました。
↑VMware Workstasion上で動くGParted
まず、GPartedをAirで直接起動し、内蔵SSDのWindowsのパーティションをコピーする。次にMacOSXを起動し、Fusionで仮想ディスクを持つVMを作成する。そのVMでGPartedを起動してUSBのHDDから仮想ディスクにパーティションをコピーする。最後にWindowsの起動ディスクで起動し、ブート周りの修復を行う。はい、WindowsがVM上で起動するようになりました。ワーイ!
↑BootCampで起動した元のSSDの構成
↑作成したVMの仮想ディスクの構成
ポイント1:元のディスクを極力再現したほうがよいかも?と思い、仮想ディスクをMBR(GPartedではMS-DOSと表記)ではなくGPTで構成してWindows以外のパーティションもまるごとコピーしてあげたのだが、その状態ではWindowsの修復ができなかった。普通にMBRのディスクにしたほうが良いみたい。
ポイント2:MacOSXやEFIのパーティションは不要だが、Windowsにとって「何番目のパーティションに入っているのか」が起動する上で重要っぽいので、ダミーのパーティションを作って数合わせしてやる。通常、BootCampでは4番目のパーティションがWindowsなので3個のダミーパーティションを作る。200MB/FAT32としたが、もっと小さくて問題ないかも。
ちなみにVMwareは関係なく、同じマシンでHDDだけを入れ替えたい場合にも、パーティションコピー→Windowsインストールディスクで修復、のテクニックは普通に使える。
さて、これで仕事環境はバックアップできた。AirのFusionでも、サブマシンのWorkstationでも動く。最悪Airが壊れても死なない*2。VMは最強ですな。さて、全てはWindows 8を入れたいがためなんだが*3、クリーンインストールしてしばらくVMで仕事しつつ環境再構築するか、アップグレードインストールしてみるか悩ましい。。。