宇宙仮面の
C# Programming

 

ImageVirtual PC 〜 なぜ使うのか?

ASP.NETアプリケーションを開発したアプリケーションを サーバーにアップロードする前に、ステージングサーバーで正しく動作するかテストする必要があります。また、Windows Formsアプリケーションを配布しようとした場合、複数の種類のOSにインストールして正しく動作するかテストする必要があります。今まで、マルチブートにしたり、PCを複数用意したり、ハードディスクを取り換えたりと、大変な思いをしていたので、Virtual PC / Virtual Server でとても助かっています。 

  • 設定や使い方
    間違えると、思うように動かなかったり、後でOSをら再インストールすることになるので、まとめておきました。
  • Vista
    Vista に対応した Virtual PC 2007 のベータ版((英語版のみ)でVistaを動かすことができます。
  • Vista Beta 2 / CTP
    問題なく動きました。ただし、標準のままだと、めちゃ遅! VM Additions for Vista Beta 2を入れると、そこそこ早くなります。
  • Fedora Core 3
    あっさり動きましたが、画面設定を間違えると、表示が崩れて復旧に手間取ることになります。
  • Virtual PC 2007 日本語版 無償ダウンロード
    Virtual PC 2007 がタダで使える!

ImageVirtual PC の使い方と注意

 

1.目次

1.目次
2.目的
3.参考書
4.Virtual_PCのインストール
5.Virtual_PCの設定
6.バーチャルマシンを使う
7.バーチャルマシン環境をコピーしておこう
8.バーチャルマシンの一時停止と終了
9.バーチャルマシンの設定変更
10.よく使うショートカットキー 
11.Virtual_PC_本体の設定
12.性能比較
13.バーチャル_マシン追加機能
14.Virtual PCを効果的に使うには!
15.Virtual PC 2004 とVirtual Server 2005、何が違うの?

2.目的

Windows XP で、Visual Studio でASP.NETアプリケーションを開発したアプリケーションを配布しようとした場合、、Windows 2003 Serverにインストールして正しく動作するか確認する必要がありますよね。そのためにPC1台買いますか?それとも、デュアルブートにしますか?

Windows XP で、Visual Studio でWindows Formsアプリケーションを開発したアプリケーションを配布しようとした場合、Windows 2000/98/MEにインストールして正しく動作するか確認する必要がありますよね。そのためにPCを何台買いますか?それとも、マルチブートにしますか?

今まで、このようなことで大変な思いをしていたので、Virtual PC はとてもGOODですね。

Virtual PC 2004 では、1台のPCで複数のOSを同時に稼動することが可能になります。

当然ながらハードウェアのテストはできないので、バックアップデバイス、DVDへの書き込みなどの機能をテストはできませんが、OS環境の違いを論理的に検証するということであれば、問題なさそうです。

用途 利用シーン
複数のOSでテストしたい Windows XP 上で開発した。でも、98/ME/2000 などで動作検証したい。PC何台いるんじゃい?
実行環境でテストしたい。 IDC にアップロードする前に、2003 Serverのテスト環境にインストール、実行して問題ないか確認したい。
昔のアプリケーションを使いたい MSDOSのころの懐かしいゲームを動かしたい。でも、そのためにPC1台入れるのはねぇ・・・・
ベータ版のテスト アルファ版、ベータ版の評価したいのだけど、OSや環境に悪影響があるとやだな・・・

いままで、デュアルブートで複数のOSを1つのPCに載せていましたが、Virtual PCがあればかなりお気軽に複数のOSでのテスト環境をつくることができます。

メリット デメリット
独立したPC
  • 速度
  • 独立性
  • ハードコスト
  • メインテナンスコスト
  • ドライバがハードに依存
マルチブート
  • 速度
  • 同時に1つのOSしか使用できない
  • ドライバがハードに依存
  • メインテナンスコスト
Virtual PC
  • ロジックのテストができる。
  • ホストOSをクリーンに保てる。
  • ハードコストが少ない
  • 同時に複数のOSを使用できる
  • 環境の複製が容易
  • 起動が早い
  • 一時停止できる
  • ハードウェアへの依存性が少ない
  • ある時点のスナップショットを複製できる。
  • ピュアなインストールテストができる。
  • 表示速度がかなり遅い。
  • 性能が落ちる→性能評価はできない。
  • ハイパースレッディングだと遅い。

3.参考書

  1. Virtual PC ヘルプ
  2. Microsoft Virtual PC 2004
  3. Microsoft Virtual Server 2005
  4. インストール済みの Windows のバージョンのディスク複製に関するマイクロソフトの方針

4.Virtual PCのインストール

いきなり使う前に、メモリー、ハードディスクはかなり消費しますので、余裕を持ったPCを用意しましょう。では、どのぐらいのPCが必要かというと、HELP には次のような最低要件が載っています。

実行最低要件
ゲスト OS 空きハード ディスク 空きメモリ
MS-DOS 6.22 50 MB 32 MB
Windows 95 500 MB 32 MB
Windows 98 500 MB 64 MB
Windows Me 2 GB 96 MB
Windows 2000 2 GB 96 MB
Windows NT 4.0 1 GB 64 MB
Windows XP 2 GB 128 MB
OS/2 500 MB 64 MB

たとえばXP上で Windows 2000を動かそうとすると、128MB(XP)+96MB(Win2000)=224MBの空きメモリが必要となります。しかし、XP上にVisual Studio 開発環境を動かし、Virtual PC で 2003 Server を動かし、テストしようと思うと、それぞれ512MB+512MBぐらいは割り当てたくなるので、やはり余裕を持って1GB、できれば2GBぐらいあったほうがいいですね。

ハードディスクは、どのぐらいのVirtual 環境を用意するかによって変わってきますが、XPを載せただけでも2GB以上消費します。数十GB〜100GBぐらい空きディスク容量があれば余裕でしょう。 あと、バーチャルディスクは激しくフラグメントします。OSと同じパーティションにバーチャルディスクを格納すると、OSがフラグメントの餌食になってしまいます。バーチャルディスク専用のパーティションを用意しましょう

CPUスピードは、速いほどいいです。1GHz程度ではかなりフラストレーションがたまります。

Virtual PC 2004 SP1 日本語版 無償ダウンロードから、Virtual PC 2004 を無償でダウンロードすることができます。インストールは、インストールウィザードにしたがってインストールするだけで、特に迷うところはありません。

ハイパースレディングの注意
Virtual PC, Virtual Serverともに1つのプロセス上で動きます。ハイパースレッディングにしている場合、たとえば1つのCPUで2つのハイパースレッディングの場合半分のスピードしか出なくなります。ハイパースレッディングはオフにしたほうが良いです。いずれハイパースレディング対応になると思いますが・・・

5.Virtual PCの設定

インストールが終わったら、早速新しいOSを入れていましょう。

Virtual PC の設定には、次の2 つ方法があります。

  • バーチャル マシン ウィザード
    バーチャル マシンの設定をウィザード形式で設定できます。
     
  • Virtual PC コンソール
    バーチャル マシンの追加、構成、起動、停止、再起動、監視、および削除を行うことができます。
     

バーチャルマシンウィザードを使うと簡単に新しいバーチャルマシンをセットアップできます。普通はこのバーチャルマシンウィザード で設定して、必要に応じてVirtual PCコンソールで設定変更するというやりかたで十分です。

では、Virtual PCコンソールから新規ボタンを押して、バーチャルマシンウィザード を起動てみます。あとは、次のステップにしたがって、Virtual マシンを作成します。入力が必要なのは、OSの選択とバーチャルマシーンの場所と名前 ぐらいです。

Step 画面 説明
Step0 Image Virtual PCコンソールから新規ボタンを押します。
Step1 Image 新しいバーチャルマシーンウィザードの開始
Step2 Image オプションの選択
  • バーチャルマシンの作成
  • 規定の設定を利用してバーチャルマシンを作成
  • 既存のバーチャルマシンの追加

ここでは、バーチャルマシンの作成を選択します。

Step3 Image バーチャルマシーンの場所と名前

標準では、 マイ ドキュメントのNew Virtual Machineというフォルダが作られます。

Step4 Image オペレーティングシステムの選択

 

Step5 Image メモリ
  • 推奨RAMを使用
  • RAMの調整

推奨RAMを使用を選択します。

Step6 Image バーチャルハードディスク
  • 既存のバーチャルハードディスク
  • 新しいバーチャルハードディスク
Step7 Image バーチャルハードディスクの場所
Step8 Image 完了

ここまでくると、次のようにNew Virtual Machine が作成されます。

Image

そこで、早速起動してみましょう。すると、次のようにBIOSの起動画面が現れます。

Image

あとは、インストールしたいOSのCDを挿入してキーを押せば、OSのインストールが始まります。

6.バーチャルマシンを使う

インストールが終わったら、早速起動してみましょう。その前に、注意を3つ。
これを覚えておかないと、あせることになるので、注意しましょう。

注意: バーチャルPCの全画面から戻るには?
右ALT + ENTERを押す。

 

注意: CLTR+ALT+DELを押すには?
  • バーチャルPCのメニュー→操作で、CTRL+ALT+DEL を選ぶ。
  • 右ALT + DELを押す。

 

注意: マウスがバーチャルマシンのウィンドウから出せない。
  • 右ALTを押しながらマウスを外に出します。
  • バーチャルマシン追加機能をインストールしておくと、通常のウィンドウと同じようにバーチャルPCとホストPC間で連続的にマウスを操作することができます。

では早速起動ボタンを押してみましょう。次のように、ホストOS(この場合はXP)のウィンドウの1つに、ゲストOS(この場合はWindows 2003 Server) のバーチャルマシンを起動することができます。

Image

7.バーチャルマシン環境をコピーしておこう

いろいろなテストをしているうちに、起動できなく なってしまったり、環境がわけのわからない状態になってしまい、再インストールしたことのある人は大勢いるとおもいます。このようなときに、Virtual PC ではファイルを2つコピーするだけで、インストール直後のOSイメージを保存し、必要なときにコピーして復活させることができます。

デフォルトで、バーチャルマシンを設定したディレクトリに、New Virtual Machine.vmc、New Virtual Machine.vhd という2つのファイルができていると思います。

この2つのファイルとは、次のようになっています。

ファイル名 説明
.vmc ファイル バーチャル マシンの構成情報をすべて格納したバーチャル マシン構成ファイル
.vhd ファイル バーチャル ハード ディスク

新しいバーチャルマシンにOSをインストールして、最新のサービスパックを適用したらば、この2つのファイルをマスターOSとして ファイルのプロパティから『読み取り専用』にして大事に保存しておきましょう。

何度もテストを行うような場合は復元ディスクが便利
復元ディスクを使うと、簡単にバーチャルハードディスクをもとの状態に戻すことができます。テストでは、複数のバージョンに対して繰り返しテストを行うことになりますが、このような場合に復元ディスクを利用すると便利です。

誤操作によってマスターOSを消さないように、マスターOSからテスト用マスターOSとしてコピーします。通常は、このテスト用マスターOSを使うようにするといいでしょう。復元ディスク設定を使うことにより、バーチャル ディスクに加えた変更を復元ディスクに保存してくれます。変更を削除すると、テスト用マスターOSには何も修正が加えられませんので、また新しいバージョンでテストをすることができます。また、変更をコミットするこよにより、この変更が元のバーチャル ディスクに反映させることもできます。

 

ディスクを節約したい場合は差分ディスクが便利?
復元ディスクと似たような機能として、差分バーチャルハードディスクがあります。これは、ある状態のバーチャルハードディスクからの差分だけを格納し、あたかも初期状態+差分で1つのディスクとして扱うことができる機能です。これによりオリジナルOS、SP1、SP2 の3つの状態を差分だけで扱うことができるので、ハードディスク容量を削減することができます。

ただし、オリジナルOSと差分のセットで扱わなければならないので、たとえばSP1, SP2を入れて、さらにSQLを入れて、アンインストールしてなどと、変更が多くなれば多くなるほど、差分ディスクの消費量が増えてしまいます。また、どんな差分があるのかをしっかり管理していないといけないので、管理が面倒です。

差分ディスクを使用する場合は、差分が十分小さい場合に使用したほうがよさそうです。

.vmcファイルと.vhdファイルをコピーするには、バーチャルマシンを終了する必要があります。

ハードディスクのコピーを使いまわす場合の注意
このケースではオリジナルOSをコピーして、それを同時に1つしか動かさないので問題ないですが、1つのバーチャルディスクを複数コピーして、複数のゲストOSのバーチャルディスクとして動かそうとすると、SIDが重複する問題が発生します。このような場合の正しいバーチャルディスクの複製方法は、
  •  Virtual Serverで複数のOSを同時に動かす場合は、一からOSをインストールする。
  •  Sysprep.exe を使用する。(詳細は参考書4)

 

8.バーチャルマシンの一時停止と終了

 

操作 説明
状態を保存 現在のスナップショットの状態で保存でき、まったく同じ状態から再開することができます。
  • バーチャルマシン→メニュー→閉じる
  • バーチャルマシン→右上のXアイコン
  • 右ALT+F4
電源を切る 通常のPCの電源をリセットしたのと同じことになります。
  • バーチャルマシン→メニュー→閉じる
  • バーチャルマシン→右上のXアイコン
  • 右ALT+F4
リセット 通常のPCをリセットしたのと同じことになります。つまり、保存されていないものは消えてしまう。
 
  • バーチャルマシン→メニュー→操作→一時停止
  • 右ALT+P
一時停止 一時的な停止で、バーチャルPCのプロセスは生きています。

 

9.バーチャルマシンの設定変更

 

ほとんどの設定は、最初はデフォルトで問題ありませんが、メモリを増やしたいなどのバーチャルマシンの設定変更をするには、Virtual PC コンソール → メインメニュー → 設定  より、それぞれのバーチャルマシンごとに設定を変更することができます。

Image

設定 説明
ファイル名 バーチャル マシン構成ファイル (.vmc) の名前を指定します。
メモリ バーチャル マシンに使用できるメモリの容量を設定します。
ハード ディスク 1
ハード ディスク 2
ハード ディスク 3
バーチャル マシンで使用するバーチャル ハード ディスクを制御します。
復元ディスク ハード ディスクに対して復元ディスクを有効にするかどうかを制御します。デフォルトでは、オフです。
CD/DVD ドライブ セカンダリ IDE (Integrated Device Electronics) コントローラをバーチャル マシンの CD または DVD ドライブに使用するかどうかを制御します。
フロッピー ディスク 物理コンピュータのフロッピー ディスク ドライブにフロッピー ディスクが挿入されている場合に、バーチャル マシンがそれを自動的に検出するかどうかを制御します。デフォルトでは、検出するです。
COM1
COM2
バーチャル マシンの COM ポートの接続方法を制御します。
デフォルトでは、COM ポートは接続されません。
LPT1 バーチャル マシンの LPT1 ポートを接続するかどうかを制御します。デフォルトでは、LPT1 ポートは接続されません。
ネットワーク バーチャル マシンにネットワーク アダプタを使用できるかどうかを制御します。デフォルトでは、1 つのネットワーク アダプタが選択され、物理コンピュータのネットワーク アダプタにマッピングされます。
サウンド サウンド カードをバーチャル マシンに対して有効にするかどうかを制御します。デフォルトでは、有効です。
マウス ホスト オペレーティング システムとの連動機能を有効にするかどうかを制御します。デフォルトでは、マウス ポインタ連動機能を使用します。
共有フォルダ バーチャル マシンとホスト オペレーティング システムとの間で共有フォルダを使用できるかどうかを制御します。
デフォルトでは、バーチャル マシン追加機能がインストールされるまでは、共有フォルダは使用できません。
画面 バーチャル マシン ウィンドウの表示方法を制御します。
閉じる バーチャル マシン ウィンドウを閉じるためにユーザーが使用できる方法を制御します。

10.よく使うショートカットキー

 

キー 説明
ホスト キー 右側の Alt キー

 

動作 キーの組み合わせ 説明
Virtual PC コンソールを前面に移動 ホスト キー + L Virtualal PC コンソールを、最小化された状態から復元します。Virtual PC コンソールを前面に移動します。
追加機能をインストール ホスト キー + I バーチャル マシン追加機能をインストールします。
全画面表示切り替え ホスト キー + Enter バーチャル マシンを全画面表示モードとウィンドウ モードの間で切り替えます。
Ctrl + Alt + Del ホスト キー + Del Ctrl + Alt + Del をバーチャル マシンのオペレーティング システムに送信します。
一時停止,再開 ホスト キー + P バーチャル マシンの現在の状態に応じて、バーチャル マシンを一時停止または再開します。
リセット ホスト キー + R バーチャル マシンをリセットします。
終了 ホスト キー + F4 バーチャル マシンを終了します。
コピー ホスト キー + C 選択した項目をコピーします。
貼り付け ホスト キー + V コピーされた項目を貼り付けます。
すべてを選択 ホスト キー + A すべてを選択します。
ホスト キー + E ホスト キー + E バーチャル マシンの設定を開きます。
最小化 ホスト キー + ↓ バーチャル マシンを最小化します。
前のバーチャル マシン ホスト キー + ← 複数のバーチャル マシンを実行している場合に、全画面表示モードを使用していない限り、前のバーチャル マシンに切り替えます。
次のバーチャル マシン ホスト キー + → 複数のバーチャル マシンを実行している場合に、全画面表示モードを使用していない限り、次のバーチャル マシンに切り替えます。

 

11.Virtual PC 本体の設定

Virtual PC オプションとは、全画面表示モード、言語設定など、Virtual PC 本体の設定です。初期状態から、この設定を変更することはあまり無いと思います。

Virtual PC コンソール→メニュー→ファイル→オプションでVirtual PC オプションダイアログを表示することができます。

Image

オプション 説明
起動時に復元 実行されていたバーチャル マシンを復元するかどうかを設定します。
パフォーマンス 次の2つのパフォーマンス設定を行うことができます。
  • 複数のバーチャルマシン間で割り当てる CPU 時間時間の優先度を制御します。
  • バーチャルマシンがバックグラウンドで実行時のCPU時間の優先度を制御します。

デフォルトでは、アクティブ ウィンドウのバーチャル マシン優先、ホスト オペレーティング システム優先です。

全画面表示モード 全画面表示モードで実行するときにホスト オペレーティング システムで、アクティブなバーチャル マシンと同じ画面解像度を使用するかどうかを設定します。
サウンド バックグラウンドで実行されているバーチャル マシンのサウンドを再生するかどうかを設定します。
メッセージ バーチャル マシンのメッセージが Virtual PC で表示されるかどうかを設定します。
キーボード Virtual PC ホスト キーと Windows キーの組み合わせを設定します。デフォルトではホスト キーは右側の Alt キーです。
マウス マウス ポインタをバーチャル マシンに遷移させる方法を設定します。
セキュリティ 各オプションを変更するのに管理者の資格が必要かどうかを設定します。
言語 Virtual PC に使用する言語を設定します。

 

12.性能比較

Crystal Mark というベンチマークソフトで、ホストPCとゲストPCでどのぐらい性能差があるのか調べてみました。

OSが異なるので、単純な比較はできませんが、おおよその傾向がつかめました。

測定条件:

  • ホストPCは、Windows XP、ゲストPCは Windows 2003 Server。
  • ホストPC、ゲストPCともに、同じ解像度(1280 x 1024)
  • ホストPC、ゲストPCともに、アクティブウィンドウを優先。
  • ホストPC、ゲストPCともに、グラフィックスアクセラレータ最大。
  • ゲストPCは、フルスクリーンモードで測定。
  性能比
ALU 83%
FPU 85%
MEM 78%
HDD 833%
GDI 13%
D2D 41%
OGL 7%

 

  ベンチマーク結果
ホストPC Image
ゲストPC Image

これから、面白いことがわかります。CPU、メモリ性能は、15%程度ダウンなので、それほど影響はありません。驚きなのがディスク性能で、840%、つまり8倍以上 ゲストOSのほうが早いということです。これは、メモリ上のバーチャルディスクがRAMディスクと同等の効果を発揮している のだと思います。しかし、グラフィックスは遅く、GDIで13%程度です。ホストPCがグラフィックスアクセラレータを搭載していても、それを利用できないのでしょう。

これから言える事は、CPU、ディスクに負荷があるようなテストは比較的問題ないが、グラフィックス系には弱いということです。この特徴を理解して使えば、かなり使えると思います。

バーチャルマシンのビデオドライバは、S3Trio32/64です。ハードに依存しないようにするため、このように固定のビデオドライバーで動作させるようにしているので遅いのではないでしょうか。

13.バーチャル マシン追加機能

デフォルトでは、バーチャルマシンとホストPCの間で、フォルダの共有、クリップボード共有などの便利な機能が使えません。バーチャルマシン追加機能をインストールすることにより、次の機能が使えるようになります。

  • ドラッグ アンド ドロップ
  • フォルダ共有
  • 統合マウス
  • DOS の CD-ROM サポート
  • 最適化されたビデオ ドライバ
  • 時間同期
  • クリップボード共有
  • オペレーティング システムのパフォーマンスの向上
  • バーチャル マシン ウィンドウの動的なサイズ調整による、ゲスト オペレーティング システムのデスクトップ サイズの自動調整

とても便利なので、追加するのが良いでしょう。

設定方法は、バーチャル マシンを起動し、メニュー→操作より、バーチャル マシン追加機能のインストール/更新を選択します。

注意
Virtual PC 2004 のバーチャル マシン追加機能をバーチャル マシンにインストールすると、そのバーチャル マシンは以前のバージョンの Virtual PC との互換性を失います。互換性を回復するには、バーチャル マシン追加機能を削除します。

14.Virtual PC 2004を効果的に使うには!

Virtual PC 2004を使う上で、次の点を注意すれば、かなり楽になります。

バーチャルディスク専用のパーティションを用意する。
バーチャルディスクは、激しくフラグメントします。ホストOSと同じパーティションにバーチャルディスクを作ると、この影響をまともに食らってしまいます。バーチャルディスク専用のパーティションを用意して、そこを使うようにします。1つのOSで、5〜10GBは消費する可能性があるので、余裕を持って100GBぐらい欲しいですね。
最初に完全なOSを作成する。
Virtual PCのメリットは、ファイルを2つコピーするだけで、OSのコピーが出来上がることです。毎回テストするのにWindows Update あてたり、ネットワークの設定をしたりしたくないですよね。そのためには、まず最初に完全なOSを作成します。そのためには、ゲストOSをインストール後、次の作業を行います。
  • Windows Updateなどで、最新のセキュリティパッチをすべて当てる。
  • ネットワークの設定を行う(IP Address, DNS, WINS, Proxyなど)。
  • ウィルス対策ソフトをインストールする。
  • 拡張機能は便利なので必ず入れる。
  • 不要なものは、絶対に入れない。
  • 簡単にコピー&削除ができてしまうので、MSライセンス認証はぎりぎりまでしない。

これで、きれいな、すぐ使える状態のOSになります。これをオリジナルOSとして取っておき、触らないこと。
テストしたい場合は、このオリジナルOSをコピーして使いまわすようにします。

15.Virtual PC 2004 とVirtual Server 2005、何が違うの?

Virtual PC 2004と同じようなソフトウェアで、Virtual Server 2005 というソフトウェアがあります。Virtual PC 2004が1つのゲストOSをメインに使いたいという用途に対して、Virtual Serverは複数のゲストOSを並行して使いたいという用途に向いています。

Virtual PCでも同時に複数のゲストOSを使うことは可能ですが、どちらにCPUパワーを何%振り向けるかという調整ができません。これに対して、Virtual Serverは複数のゲストOSにどのようにリソースを振り向けるのかという調整が可能です。

このため、たとえばActiveDirectory, SQL Server, IIS Serverの3サーバー構成で動作検証を行いたいという場合にはVirtual Server 2005 のほうがきめ細かいコントロールができます。

用途に応じて使い分けましょう。

エラー: 指定されたドメインの名前またはセキュリティ ID (SID) はそのドメインの信頼情報と矛盾します。
Virtual PCでは大抵1つのOSしか同時に動かさないので問題ないですが、Virtual Serverで1つのバーチャルディスクをコピーして、複数のOSとして動かそうとすると、次のようなエラーが発生することがあります。

指定されたドメインの名前またはセキュリティ ID (SID) はそのドメインの信頼情報と矛盾します。

これは、単にバーチャルディスクのクローンを作成してドメイン名やホスト名を変更しただけでは、SID、RIDが重複してしまうためです。

対処方法

  •  Sysprep.exe を使用する。(詳細は参考書4)
  •  http://www.sysinternals.com/Utilities/NewSid.htmlから、NewSidツールでSIDを振りなおす。ただし、これは正規の方法ではないので、この方法でテストして問題ないからといって、OKとは言えない。
  • ntdsutil.exeで重複したSIDをクリーンアップする。(未確認)