VMware Fusion 6 で物理 PC からの移行に失敗する

SOFTWARE REPORT


Mac 上で仮想 PC 環境を構築できる VMware Fusion 6 を使い始めました。これに搭載されている移行アシスタントを使うと物理 PC の内容をそのまま仮想 PC にできるらしいので、さっそく試してみたのですが上手くいかず、ひとまず断念となりました。

これまで使用していた Windows 7 (x64) を仮想 PC に変換しようとしたのですけど、これを OS X 10.9 (Mavericks) で VMware Fusion 6 の移行アシスタントを起動して手続きを進めてみたところ、パスコードを使って Windows との接続も終わり、仮想 PC の保存場所を選択してすぐの段階で、次のようなエラーが発生して進めません。

「\\192.168.1.23\vmwareMigration139\PCNAME」を作成できません。

上手くいく方法を模索してみたのですが、今のところは見つかりませんでした。それでも少しはヒントになりそうだったり、悪あがきできそうな情報がいくつかあったので、いつか何かの参考になるかもしれないと思い、記録に残しておくことにします。

 

エラーメッセージに登場する共有フォルダーについて

エラーの原因を調べていく中で、エラーメッセージ内に登場する共有フォルダーの特徴が少しずつ見えてきたので、まずはその特徴をここで整理しておきます。

エラーで通知される保存場所は、移行アシスタントで指定した保存場所とは違うので、何のことか最初はわからなかったのですが、どうやら移行で一時的に使用する作業スペースのようです。

まず、物理 PC 上で動作させた移行アシスタントが自分のデータを取得して、それを Windows 共有の機能を使って Mac に転送するときに、この共有フォルダーが使われるようです。エラーメッセージに登場する IP アドレスは Mac の IP アドレスです。

この共有フォルダーは、Mac 上の移行アシスタントが転送を開始する時点で自動的に作成する共有フォルダーで、関連付けられる物理フォルダーも自動で作成されるのですが、これが作成されるのがルートディレクトリでした。また、この "vmwareMigration" という名前の後につけられている番号は実行するたびに変わります。

この共有フォルダーは、移行でエラーになるとすぐに消されてしまうようで、アクセス権がどうなっているかなどは調べられませんでした。また、それに割り当てられるフォルダーが実際に作成されているかどうかも確認できていません。

 

ルートディレクトリのアクセス権限を調整してみる

まず、最初に疑ったのが、ルートディレクトリのアクセス権限でした。

ルートディレクトリ上に書き込むときには管理者権限が必要になるので、それが悪さをしているのかもしれないと思い、まずはルートディレクトリの権限を一時的に「everyone」が「読み/書き」できるように調整してみました。

このようにして、移行アシスタントを起動させてみましたが、やはり同じエラーになってしまう様子でした。再び「everyone」を「読み出しのみ」に戻して、別の手段を考えてみることにします。

 

移行で使う共有フォルダーを自分で作成してみる

それなら、確実にアクセスできる共有フォルダーを自分で作ったらどうなるでしょう。

ただ "vmwareMigration" の後に続く数字は何番になるかわからないので、どうしようかと思ったのですけど、これまでに何度か失敗してきた感じでは、おそらく 0 から 255 までの番号があればなんとかなりそうな雰囲気だったので、その番号すべてのフォルダーをあらかじめ作ってしまうことにしました。

そのために、Mac のターミナルから次のコマンドを実行します。

for i in {0..255}; do n="vmwareMigration$i"; sudo mkdir -p "$n"; chmod 777 "$n"; sudo sharing -a "$n" 1; done;

これで "vmwareMigration0" から "vmwareMigration255" までのディレクトリをルートディレクトリに作成して、コマンド "sharing" を使って共有フォルダーとして登録しています。

その前に "chmod" で全権限をフォルダーに与えているのは、共有フォルダーに書き込み権限を与える方法がわからなかったためです。とりあえず先に書き込み権限をすべてに与えておくと、共有フォルダーとして登録した時にも、すべてのユーザーが読み書きできる共有フォルダーが作られるようだったのでそうしました。

 

このようにしてみても、やっぱり書き込みエラーになって、結局のところは失敗でした。

作成した共有フォルダー自体には書き込むことはできるのですけど、移行アシスタントを実行してエラーが終わってみると、移行作業で使われた 1 つの番号の共有フォルダーだけが共有解除されているので、どうやら事前に作っておいたとしても、実行時には作り直されてしまっているのかもしれません。

 

何故か移行作業が進む場合もありました

このようにして失敗に終わっているのですが、たしかスクリプトで無理やり作って試した最初の 1 度だけ、何故か移行作業が進む場面がありました。ただ、ルートディレクトリに作業スペースを作ったため、移行の途中で Mac のシステムパーティションが残り容量 0MB になってしまい、敢え無く断念。

その後、なんとか別のパーティションを作業スペースにできないかと、スクリプトを別パーティションにディレクトリを作成して、ルートディレクトリにそのシンボリックリンクを作り、それに対して共有を設定するスクリプトに作り替えてみましたが、うまくいきませんでした。

for i in {0..255}; do n="vmwareMigration$i" p="/Volumes/Data/tmp/vmwareMigration/$n"; l="/$n"; sudo mkdir -p "$p"; chmod 777 "$p"; sudo ln -s "$p" "$l"; sudo sharing -a "$l" 1; done;

こうして作成した共有フォルダーは、Windows から普通に使ってみるとちゃんと機能するようなのですが、移行アシスタントを使って進めると、やはり共有フォルダーを作り直されてしまうのか、書き込みエラーで先に進むことができませんでした。

移行アシスタントがエラーで終わると、作成したシンボリックリンクは(たしか)そのまま残っているのですが、共有フォルダーはエラーで通知された番号のものがひとつだけ登録解除されていました。

 

システムパーティションに余裕さえあれば、もしかすると再び移行作業を進めさせることを狙う手もあるかもしれないですけど、今回の Mac では空き容量をいくら確保したところで足りないので、そのアプローチでの追及はやめておくことにします。

今のまま、なんとか別パーティションを作業スペースにして移行をしたいところでしたけど、このまま試行錯誤するよりも VMware Fusion 6 に Windows を新規インストールして環境を整えたほうが今は早そうだったので、今回の移行作業はとりあえず断念しておくことにしました。