連載
» 2011年09月08日 00時00分 公開

無償ツールで仮想化による移行を実現する:Windows XP→Windows 7丸ごと引っ越しテクニック(前) (1/2)

Windows 7に対応していないアプリケーションを含む既存のWindows XP環境を、無償ツールで仮想化してWindows 7へ移行する。前編では前提条件から仮想マシン作成まで解説する。

[島田広道,デジタルアドバンテージ]
XP→Win 7/8移行のための解説記事ガイド
Windows Server Insider


「XP→Win 7/8移行のための解説記事ガイド」のインデックス

目次

 Windows XP搭載PCの老朽化やWindows XPのサポート終了が2014年に迫っているといった理由から、企業内システムでWindows XPからWindows 7へ移行する動きが加速化している。移行手順を解説した本フォーラムの「XP/Vista→Windows 7 完全移行マニュアル」も人気記事として定番化している。この記事では、Windows標準の転送ツールを利用してアプリケーションの設定やユーザー・データをWindows XPからWindows 7へ自動的に移行している。

 しかし、この方法だとWindows 7非対応の古いアプリケーションは直接移行できない。また転送ツールがサポートしていないアプリケーションの設定は手動で移行するしかなく、面倒だ。さらに移行先のWindows 7にアプリケーションをインストールし直さなければならないのも手間である。

 もし、アプリケーションごと現在のWindows XPの環境をそっくりそのままWindows 7環境へ「引っ越す」ことができれば、上記の問題は解消できそうだ。そんな都合のよい移行方法が、実はある。しかも条件付きながら無償のソフトウェア・ツールを駆使して実現できる。ポイントは、サーバでよく用いられている仮想化技術を活用することだ。

 本稿では、主に小中規模の企業内システムの管理者を対象に、仮想化によって既存のWindows XP環境を丸ごとWindows 7上に移行するテクニックを解説する。全2回のうち今回の前編では、移行方法の概要・概念と移行に用いるツール、移行先の仮想マシンを作成するまでの手順について解説する。仮想化にあまり詳しくなくても、移行の手順やツールの使い方は細かく説明しているので、移行作業そのものは進められるだろう。作業の大まかな項目は次のとおりだ。

仮想化による移行手法の1つ「P2V」とは?

 本稿で解説するWindows XPからWindows 7への移行方法は、「P2V(Physical to Virtual)」と呼ばれる手法である。P2Vを簡単に説明すると、物理マシン(ハードウェアで作られたPC)上に構築されたOSとアプリケーションからなる環境を、インストールし直すことなく、そっくりそのまま仮想マシン上に移転するというものだ。本稿では、物理マシン上のWindows XPをP2Vで仮想化し、Windows 7標準の仮想化環境に移転して稼働させる。移行が完了すると、Windows XPが稼働していた物理マシンは不要になるとともに、移行先マシンでは仮想化されたWindows XPの環境がWindows 7上で稼働して、どちらも同時に利用できるようになる。Windows XP上のアプリケーションをWindows 7からシームレスに利用することも可能になる。

 「XP/Vista→Windows 7 完全移行マニュアル」で説明している移行方法に対し、P2Vには冒頭で述べたようにアプリケーションの移行にかかわる手間や問題を解消できるというメリットがある。しかし、その一方でデメリットもある。Windows XPそのものが移行先で稼働し続けるため、パッチ適用やウイルス対策といった管理・運用の手間はWindows 7とあわせて二重にかかってしまう(Windows XPが残る点では純粋な「移行」とはいえないかもしれない)。またWindows 7マシンには、Windows XPの仮想マシンを実用的な速度で実行するためのハードウェア・リソースが求められる(つまり、より高性能な移行先マシンが必要になる)。さらに仮想化の限界のために、ハードウェアの種類によってはWindows XP環境で利用できなくなる場合がある点にも注意が必要だ。

 とはいえ、ハードウェア・リソースについては、最近のデスクトップPCや据え置き型ノートPCであれば仮想マシンの1台程度は難なく実行できるほど余裕のある製品が増えている。また、Windows XP環境をなるべく変えないようにし、セキュリティ対策はなるべく自動化すれば、管理・運用コストが増大し続けることは防げるだろう。

P2Vに用いる無償ツール

 P2Vには、物理マシンのハードディスクを仮想マシンで利用できる仮想ハードディスク(VHD)に変換するためのツールと、それをベースに仮想マシンを作成・稼働するための仮想化ソフトウェアが必要になる。このうち前者は、マイクロソフト提供の「Disk2vhd」という無償ツールを利用する。

  • Disk2vhd(日本マイクロソフト TechNet Windows Sysinternals)

 「Sysinternals」は、Windows向けの便利なシステム・ツールのシリーズとしてよく知られている。Disk2vhdはそのラインアップの1つで、移行対象の物理マシンでWindowsを稼働させたまま、そのハードディスクをVHDに変換できる。また、そのVHDから仮想マシンを正常に起動できるように、VHDに格納されたWindows OSの設定を自動的に変更する機能もある(ただし移行元マシンのシステム構成などによっては、仮想マシンの起動に失敗することがあるようだ。必ず移行や起動に成功すると保証されているわけではないことは留意しておいた方がよい)。使い方は「Disk2vhdで起動ハードディスクのVHDを作成する」で詳しく説明するが、設定項目は少なく、手軽に利用できて便利である。

 また移行先マシンの仮想化ソフトウェアには、Windows 7標準の仮想化ソフトウェア「Windows Virtual PC」を利用する。Windows 7 Home Premium/Professional/Enterprise/Ultimateのいずれかのライセンスがあれば、これも無償で利用できる。仮想化ソフトウェアとしての機能は豊富とはいえないが、Windows 7と仮想マシンの間でドライブなどのハードウェア・リソースの共有が簡単に実現できる。Windows Virtual PCの詳細は関連記事を参照していただきたい。

P2Vによる移行に必要な要件

 次に、Disk2vhdとWindows Virtual PCの組み合わせでP2Vを実行するための要件を確認しよう。

項目 要件
移行元マシン
OS Windows XP Professional(32bit版)
OSのService Pack Service Pack 3適用済み
起動ハードディスク 総容量127Gbytes以下(1Gbytes=1024Mbytesとして換算)
OSのライセンスとインストール元 次のいずれかを満たす必要がある:
1. パッケージ版メディアからOSがインストール済みである
2. Windows Software Assuranceがマシンに割り当てられており、かつボリューム・ライセンス版メディアからOSがインストール済みである
移行先マシン(仮想化環境のホスト・マシンとして利用)
OS Windows 7 Home Premium/Professional/Enterprise/Ultimate(32bit版/64bit版)のいずれか
プロセッサ ハードウェア仮想化支援機能が搭載されていること
メモリ 移行元マシンのメモリ容量の分だけ、空き容量を確保できること
ハードディスク 移行元マシンのハードディスクの実使用量、および今後の運用で増える予定の使用量の分だけ、空き容量を確保できること。ただしパフォーマンスのことを考えると、固定サイズのVHDを保存できる空き容量があることが望ましい
本稿の方法でWindows XPを仮想化して移行するための各種要件

 以上のうち、特に重要な要件をピックアップして説明しよう。

■仮想ハードディスク(VHD)の容量は127Gbytes以下に制限される


 Windows Virtual PCでは、接続できるVHDのディスク容量が127Gbytes*1以下に制限される。127Gbytesを超えるVHDはエラーが発生して仮想マシンに接続できない。大きなデータ用ボリュームが必要な場合は、複数の仮想ディスクに分割するなどの対策が必要である。

*1 1Gbytes=1,024Mbytes=1,048,576Kbytes=1,073,741,824bytesとして換算した値。Windows XPのエクスプローラやディスク管理ツールでは、この換算方式で容量が表示される。


 Disk2vhdでは、作成するVHDのディスク容量として、変換対象のボリュームを含むハードディスク(ここでは起動ハードディスク)の容量を設定する。ここでいう「ディスク容量」とはOSから認識されるディスクの総容量のことで、ファイルの保存などで実際に使用している容量やボリューム(パーティション)のサイズ、ファイルとしてのVHDのサイズとは関係がない。従って、起動ハードディスクの容量が127Gbytesを超える場合、実使用量に関係なくVHDのディスク容量も127Gbytesを超えてしまい、Windows Virtual PCに接続できなくなってしまう。そこで、あらかじめ移行元の物理マシンで起動ハードディスクの容量が127Gbytes以下かどうか確認しておく。127Gbytesを超える場合は、この後のコラムで説明している方法でVHDのディスク・サイズを127Gbytes以下に縮小する。

「ディスクの管理」でディスク容量を確認する
「管理ツール」の「コンピュータの管理」を起動して、起動ハードディスクの容量を確認する。
  (1)これを選ぶと右ペインにディスクの状況が表示される。
  (2)この起動ハードディスクの容量が127Gbytesを超えると、VHDに変換しても仮想マシンには使えなくなる。実際に使用している容量やパーティション(ボリューム)のサイズとは関係ないので注意。127Gbytesを超える場合は、この後のコラムに従ってVHDのディスク・サイズを127Gbytes以下に縮小する必要がある。

【コラム】127Gbytesを超えるハードディスクを127Gbytes以下のVHDに変換する

 VHDに変換するハードディスクの容量が127Gbytesを超えても、実使用量が127Gbytes以下であれば、総容量が127Gbytes以下であるVHDを作成することは原理的に可能なはずだ。起動に不要なファイルをバックアップして一時的にハードディスクから削除すれば、実使用量を127Gbytes以下に抑えるのは難しくないだろう(アプリケーションのアンインストールなど手間はかかるかもしれないが)。問題は、VHDの総容量(ディスク・サイズ)を小さくする方法である。残念ながらDisk2vhd単体では困難だ。

 無償のツールとしては、「VHD Resizer」という既存のVHDの容量を拡大または縮小するツールがよく知られている。このツールとWindows 7標準のディスク管理ツールを併用すると、VHDのディスクを縮小できる。その方法については、関連記事を参照していただきたい。

 ただし、筆者が試した限りでは、Disk2vhdで作成したいくつかのVHDをVHD Resizerで開こうとすると、「Invalid Vhd file, please select another」と表示されて失敗してしまった(Disk2vhdはVer.1.63、VHD Resizerの2007年1月17日版をそれぞれ使用し、Windows 7 x64 Ultimate SP1で実行した)。そこで、Windows Virtual PCでVHDを容量固定型に変換してからVHD Resizerを試したところ、VHDの容量の縮小に成功した。VHDの形式を変更する手順については後編の「仮想マシンやWindows XPの設定を見直す」を参照していただきたい。

 また、市販のディスク・イメージング・ツールを利用すれば、おおよそ次の手順でVHD縮小を実現できる。

  1. ディスク・イメージング・ツールで、対象のハードディスクを丸ごとイメージ・ファイルに変換・保存する
  2. Windows 7のディスク管理ツールで、127Gbytes以下のVHDを新たに作成する
  3. 2.のVHDをマウントした状態でディスク・イメージング・ツールを起動し、1.で作成したイメージ・ファイルから2.のVHDへ展開する
  4. 3.のVHDをWindows Virtual PCの仮想マシンに接続して起動できるか確認する

 市販のディスク・イメージング・ツールであれば、3.の展開時にパーティションのサイズなどをVHDの容量に合わせて自動的に調整してくれる(手動変更も可)。筆者が確認した限りでは、シマンテックのSymantec Ghost Suiteに含まれるイメージング・ツールは、上記の作業を実行できた。


■移行元マシンのOSのライセンスとインストール元

 PCにプレインストールされたOSのように、PCベンダから提供されるOEM版ライセンスのメディアからインストールされたWindows XP環境については、本稿で説明しているP2Vで仮想化することが許されていない。

■移行先マシンのプロセッサのハードウェア仮想化支援機能

 IntelのIntel VTやAMDのAMD-Vといった、ハードウェアによる仮想化支援機能が利用できると、仮想マシンのパフォーマンスが向上する。この機能がなくてもWindows Virtual PCは利用できるものの、仮想マシンのパフォーマンスは大きく下がってしまい実用的ではないので、実質的には必須の要件といえる。

■移行先マシンのハードディスク

 移行先マシンには、移行元マシンのハードディスクを変換したVHDを保存できる必要があり、それだけの空きディスク容量が求められる。Disk2vhdが生成するVHDは動的にサイズが増えていく容量可変型で、OSから認識される総容量ではなく実使用量でそのサイズが決まる。そのため、当初は移行元ハードディスクの実使用量の分だけ空きディスク容量があれば、VHDを格納できる。

 ただし、パフォーマンスを重視するなら、容量固定型のVHDに変換して利用することが望ましい。運用中にVHDのサイズが変わることがないので速度は可能な限り高く維持されるし(容量可変型のVHDディスクはフラグメント化によってパフォーマンスがどんどん低下する)、途中で移行先マシンの空きディスク容量がなくなって拡大できず、エラーになる、といったトラブルも防げる。この場合、移行元のハードディスクの総容量の分だけ空きディスク容量が必要になる。

■更新履歴

【2011/09/16】127Gbytesを超えるVHDのディスク・サイズを127Gbytes以下に縮小する方法について追記しました。

【2011/09/08】「P2Vに用いる無償ツール」に「Windows 7 Professional/Enterprise/Ultimateのいずれかのライセンスがあれば、これも無償で利用できる。」と記していたほか、表「本稿の方法でWindows XPを仮想化して移行するための各種要件」でも移行先マシンのOSとして「Windows 7 Professional/Enterprise/Ultimate」と記していました。しかし実際には、これらのエディションに加えてWindows 7 Home Premiumも利用できます。そこで誤っていた個所にHome Premiumエディションを加えました。お詫びして訂正させていただきます。

【2011/09/08】初版公開。


       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。