トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

VM/Tips

INDEX

Virtual Machineの種類

主な仮想コンピュータ
名称 方式 ホストOS ゲストOS License
VMware Workstation HW W32, L86 x86系OS 有償
VMware Fusion HW MXi x86系OS 有償
VMware Player HW W32, L86 x86系OS 無償
VMware Server HW W32, L86 x86系OS 無償
Virtual PC HW W32 W32(x86系OS) 無償
Virtual Server HW W32 W32(x86系OS) 無償
Parallels Workstation HW W32, L86 x86系OS 有償
Parallels Desktop HW MXi x86系OS 有償
VirtualBox HW W32, L86, MXi x86系OS 無償/GPL
Virtual PC for Mac CPU Mp x86系OS 有償
Bochs CPU W32, L x86系OS LGPL
QEMU (system) CPU W32, L, B, Mac x86系OS GPL
VMware ESX Server HV 不要 x86系OS 有償
VMware ESXi Server HV 不要 x86系OS 無償
Microsoft Hyper-V HV 不要 x86系OS 無償
Xen HV 不要 x86系OS GPL
coLinux OS W32, L Linux
User Mode Linux OS L Linux
Wine API L, B N/A
QEMU (user) API L N/A GPL

  • 方式 - エミュレータの方式
    • HW - 仮想PC環境を作成。部分的にホストのハードウエア機能を利用する。
    • CPU - 仮想PC環境を作成。CPUの演算からすべてエミュレートする。
    • HV - 仮想PC環境を作成。ネイティブハイパーバイザ形式。
    • OS - ゲストOSのカーネルに修正を加えて仮想環境を作成する。
    • API - アプリケーションからのAPI,CPUへの命令をエミュレートする。
  • ホストOS
    • W32 - Windows 2000,XP 32bit
    • L - Linux
    • L86 - Linux (x86 CPU)
    • B - *BSD
    • Mac - Mac OS
    • Mp - Mac OS (PowerPC)
    • MXi - Mac OSX (Intel)
  • ゲストOS
  • CPU-VT - CPUの仮想化機能
    • Intel VT や AMD-V に対応したプロセッサに対応しているか

 エミュレータの方式

仮想PC方式

仮想PC方式は、ホストOS(エミュレータを実行するOS)上に仮想のPC環境を作り出し、そこでゲストOS(エミュレータ環境内で実行するOS)を実行する方式。

この方式では、PCのハードウェアを含めてすべてエミュレーションを行い、ゲストOSはあたかも1台の独立したPC上で動いているのと同じように動作する。仮想PC上には、ゲストOSのカーネルや仮想ディスクを持ち、ホストOSとはネットワーク的にも切り離された別ホストになる。

実際のPCそっくりの環境でゲストOSを実行するため、エミュレーションの忠実度は高い。しかし、エミュレーションのためにゲストOSをまるごと起動しなければならない。

修正カーネル方式

修正カーネル方式に分類できる coLinux や UML(User Mode Linux) は、何らかの手を加えたLinuxカーネルをゲストOSとして使い、ホストOS上で実行させる(COLinux の場合は、ホストOS側も特殊なドライバが使用される)。この方式では、仮想PC方式と同様に、ゲストOSが仮想ディスクを持ちネットワークも別となる。しかし、仮想PCに相当する階層はなく、ゲストOSはより緊密にホストOS上で動作する。

coLinux の対応ホストOSは、Windows と Linux で、Windows 対応がメインである。対し、UML はホストOSおよびゲストOSとも Linuxのみ。なお、対応ゲストOSは、カーネルに専用パッチを適用しなければならないため Linux に限られる。

アプリケーション直接方式

アプリケーション直接方式は、仮想PCを使わないだけでなく、ゲストOSのカーネルも使用せずに、ゲストOSのアプリケーションを直接ホストOS上で実行する。Wine や QEMU(user mode) がこの方式に相当する。

Wine の場合、WindowsアプリケーションのAPI(ApplicationProgramInterface)を、XウインドウシステムのAPIなどに変換して実行します。QEMU(user mode)は、同じ Linux どうしで、異なるCPU用の Linuxバイナリを、システムコールを変換しながら実行する。x86 以外のCPU上でWindowsアプリケーションを動作させたいという場合に、Wine と QEMU(user mode) を組み合わせて利用するなどの例がある。

この方式では、ゲストOSのカーネルや仮想ディスクがないため、ゲストOSのアプリケーションとホストOSのアプリケーションを、同じホストOS上に同列に混在させて実行できる。ゲストOSとホストOSは、ネットワーク的にも同一ホストになる。

VM作成メモ

 VMware で Linux を動かした際の時刻のずれ

VMware で Linux (kernel 2.6) を動かすと次第にシステムクロックが実際の時間よりずれてくる。ntp を使っていても補正が間に合わないくらいに。

原因

で要は、Linux はタイマー割り込みに基づくソフトウェア・カウンタで時計を管理している。このタイマー割り込みの間隔が、1000 Hz に設定されている。エミュレータはこの頻度の割り込みは処理し切れない。実機でも取りこぼしはあるが、それを補正する機能がある。ただ、これはたまに不正な補正を行ってしまう。エミュレータ環境では、これが多発する。よって、APM が有効だと「割り込みの取りこぼし」で時刻が遅れ、APM が無効だと「不正な補正」で時刻が進むことになる。

対策

  1. カーネルの起動オプションとして "clock=pit" を指定する。(時刻が進む場合の対策)
  2. カーネルの起動オプションとして "nosmp noapic nolapic" を指定する。(時刻が遅れる場合の対策)
  3. タイマー割り込みの間隔が "/usr/src/linux-2.6/include/asm-i386/param.h" 内の "HZ" マクロで定義されているので、"100" に変更してコンパイルする。

主な対策としては、上の3つ。CPUが1つの場合は、(1)と(2)でよいが、複数の場合は、(1)と(3)を適用する。

カーネルオプションの設定

ブートローダーの設定ファイルを編集して、カーネルオプションを指定する。対策の(1)と(2)を実施する。

GRUB の設定ファイル "/boot/grub/grub.conf" を開き、以下のように kernel の行に "clock=pit" と "nosmp noapic nolapic" を追加する。

title Fedora Core (2.6.9-1.667)
root (hd0,0)
kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 clock=pit nosmp noapic nolapic

編集し終わったらリブートする。

VMwareTools の時刻同期を有効に

VMware Tools をインストールした後で、.vmx ファイルに以下の設定を追加する。

tools.syncTime = "TRUE"

VMインストールメモ

 Linux に VMware Server をインストール

Linux をホストOSにして、VMware Server をインストールする手順。

Linux kernel 2.6 系で VMware のインストール

kernel-2.6.xx の環境で VMware をインストール(コンパイル)するとお互いのバージョンによってはエラーになるらしい。

 VirtualBox 2.2.0 ブリッジ接続ネットワークアダプタ

VirtualBox 2.2.0 でホスト内接続ネットワークアダプタが追加されたが、ブリッジ接続ができない。インストーラをもう一度起動して修復すれば直るようです。(2.1.4 からアップデートすると失敗するみたい/2.2.2で直ってる?)

VMイメージ

 IE互換検証用VHD

Microsoft が、Webページの互換性チェックサービス modern.IEローカルでの Internet Explorer 検証用に無償提供する仮想マシンイメージ。用意される組み合わせは、IE6(XP), IE7(Vista), IE8(XP,Win7), IE9(Win7), IE10(Win7,Win8) となる(2013-04-04時点) IE8, IE9, IE10, IE11 on Win7、IE11 on Win8.1、Edge on Win10 (2017-05-07 時点)。

タイムリミットが設けられており、最初に使い始めてからトータルで90日間利用出来る(30日ごとに認証を要求される。コマンドラインで“slmgr –rearm”を実行し執行猶予を伸ばす必要がある)。IE6(XP) については、modern.IE にアップロードされてから90日で期限切れとなる(期限が切れる頃に更新される)。

イメージは、Download CenterInternet Explorer Application Compatibility VPC Image からダウンロードする。

 Microsoft Windows 7 90-Day Eval VHD

機能制限なしで90日間試せる“Windows 7”仮想ディスクイメージ

イメージは、Download CenterMicrosoft Windows 7 90-Day Eval VHD (認証が必要) からダウンロードする。

 Windows Server 2012 Standard x64 Core EVAL

機能制限なしで180日間試せる“Windows Server 2012”仮想ディスクイメージ

イメージは、Download CenterWindows Server 2012 Standard x64 Core EVAL からダウンロードする。

 Windows 10 development environment

Windows 10 に Visual Studio 2017 や SDK などがインストールされた、Universal Windows Platform アプリケーションの開発環境。

https://developer.microsoft.com/en-us/windows/downloads/virtual-machines

最終更新時間:2017年05月07日 19時05分01秒 指摘や意見などあればSandBoxのBBSへ。