気の向くままに辿るIT/ICT/IoT
システム開発

仮想マシンで動くOS

ホーム前へ次へ
Virtual Machineとは?

OS仮想マシン

仮想マシンで動くOS

 仮想マシンLinuxの需要の高まりといった背景もあり、各種 Linux ディストリビューション(Linux OSとして機能する一塊のソフトウェア群がまとまった配布物)でもサーバOSだけでなく、LinuxでGUI/Graphical User Interfaceを実現するX Window System上で動作するGUIデスクトップ環境(GNOME/KDE/xfce/LXDE...etc.)の性能向上と使い勝手の向上から個人(家庭)でもWindows OSをLinux OSとする動きさえ加速しているようですが、実際乗り換えるにしてもLinuxディストリビューションには、様々なモノがあり、即1つに決めるというのもなかなか悩ましいという話もあるでしょう。

 それだけでなくPC-UNIXやLinux上でWindowsやMac OS X、Mac OS X上でPC-UNIX、LinuxやWindows、Windows上でMac OS X含むPC-UNIX、Linuxを、しかも異なるOSや異なるバージョンのOSを複数手軽に利用できたらPCの使い道が格段に広がって便利ですよね。

 それを実現可能にするのが、先にも挙げたQEMU、KVM/QEMU、Bochs、Hyper-V、Xen、Virtual PCVMware Player/VMware ServerVirtualBox(Innotek > Sun > Oracle VM VirtualBox)といったような既存のOSに影響せずに異なるOSを動作させることができる仮想化したPC(仮想マシン)を作成可能な仮想化ソフトウェアです。

 尚、物理的な実機PCのOSをホストOS、仮想マシンで動くOSをゲストOSと呼びますが、ホストOSとゲストOS間で共有フォルダの作成、クリップボード共有、ローカルホスト接続ができたり、ゲストOSからも実機の周辺機器を利用できたりもします。

PCのシステム要件

 但し、CPUもさることながら、メモリをホストOSとゲストOSで分け合う形となる為、一方だけの使用なら特に支障なくても同時にサクサク使いたいとなるとメモリが少なければ少ないほどスムースに使うのは難しくなります。

 Windowsの場合、Vista含む以降のシステム要件としてCPUはマルチコア、推奨メモリは、32bitで1GB、64bitで2GB以上となっていますし、いわゆるIntel MacにおけるMac OS X/OS Xでもv10.5 Leopardこそ512MBですが、OS X LionとMac OS X v10.6含む以降では、マルチコアCPU、推奨メモリは、2GB以上となっています。

 つまり、Windows Vista/7/8/8.1/2008( R2)/2012( R2)とMac OS X/OS X、これらの異なるバージョン同士の組み合わせでは、最低でもデュアコアCPUでメモリは4GB以上必要となります。

 ただ、その場合、メモリについてははPAE付きでない限り、32bitでは、4GBメモリを有効活用できない為、これら組み合わせには不足、仮に4GB全て使えたとしてもギリギリですし、ホスト型仮想化ソフトウェアの分も考慮すると不足するので6GB以上、4GBを越えるとなると必然的に64bitを選択することになり、CPUも4コア(クアッドコア)は必要でしょうし、利用するアプリケーションによっては、8GB以上、CPUも8コアを要する場合もあるかもしれません。

 また、近年のLinux/UNIX/BSDは、推奨メモリ512MB以上を要するものも珍しくなく、仮に実機のメモリ(RAM)が1GB程度あったとしてもホストOS/ゲストOSを同時にサクサク使いたいという場合には、相応に対象が限られることもあります。

 例えば、デスクトップ環境を使わないCLI/CUIベースか、デスクトップ環境を使う場合には、予めグラフィカル環境が整った日本語版、もしくは日本語化したDSL/Damn Small LinuxやPuppy Linuxなど特に軽量といわれるようなOSを利用、もしくは、CLI/CUIベースのディストリビューションにデスクトップ環境(ウィンドウマネージャ)・日本語環境を組み込むといったことを検討することになるでしょう。

 よってデュアルコアCPU、メモリ1GBといった一昔前の、今となっては低スペックなマシンでもLinux/UNIX/BSD同士なら組み合わせによっては、ホスト・ゲスト共に軽快に動作可能な選択肢は、比較的豊富ですが、ゲストOSだけ使えれば良いなら多少選択肢は増えるとはいえ、一方が、Vista含む以降のWindowsやMac OS X/OS Xとなるだけでも組み合わせは相当限定されることになるでしょう。

 ということで当サイトでは、その「デュアルコアCPU、メモリ1GB」といった一昔前のPCでOSがVistaという微妙な環境を使うと各種仮想化ソフトウェアの仮想マシンにどんなOSをインストール、起動でき、LiveCD(イメージ)などを実行できるのか、どの程度動かせるのかを検証しています。

仮想マシンでOSを走らせるには

 仮想マシンでOSを走らせる流れとして最もシンプルなのは、『仮想マシンを作成』して物理的なLive CD、または、それらのISOディスクイメージを仮想ディスク上にマウントして、それらライブメディアを実行することであり、それがOSインストールメディアであれば、物理的なCD/DVDか、それらのisoディスクイメージファイルから仮想マシンにOSをインストールして起動することです。

 isoイメージとは、ファイルシステムの完全な内容と構造を1つのファイルに格納したデータである(磁気ディスクや光学ディスクなど)ディスクイメージ(イメージファイル)と呼ばれるものの1つであり、国際標準規格ISOによるファイルシステムISO9660で管理されているCD-ROM用アーカイブファイルで多くのOSでは、インストールやお試し用に拡張子が.isoとなっているisoイメージというディスクイメージファイルが用意されています。

 Windowsでは市販、シェアウェア、フリーソフト、オープンソースの仮想マシンを使って、Mac OSでは、標準アプリケーションで、Linuxではカーネル2.4以降は、isoイメージをマウントできるようになっているので通常のファイル同様アクセスしたり、書き込みや読み込みができます。

 一方、仮想マシン内に作成される下記のような各種ディスクイメージ(物理ディスク上のハードディスクに相当)は、各仮想化ソフトウェア間で互換性がある場合もあります。

  • VDI/VirtualBox Disk Image
  • VMDK/Virtual Machine Disk(VMware)
  • VHD/Virtual Hard Disk(Virtual Server/Virtual PC)
  • HDD/Hard Disk Drive(Parallels)
  • QED/QEMU enhanced Disk
  • QCOW/QEMU Copy-On-Write
  • ...etc.

 isoイメージには、それ自体を仮想マシンに読み込むことで仮想OSとして実行できるもの、インストール用、その併用タイプなどがあります。

 また、最低限のシステム構成やフルスペック、英語版、国際版含む日本語対応版、バージョン違いなどisoイメージファイルが数種類用意されている場合もあります。

 isoイメージをCDに焼いて、そのCDからOSをブート(起動)できるものは一般に『LiveCD』と呼ばれますが、仮想マシンを利用する場合には、焼かなくてもisoイメージを読み込むだけで利用できるので手軽です。

 尚、仮想マシンもisoイメージも手持ちのOSが32ビット(x86)か64ビット(x64)かを(Windowsなら「コントロールパネル」から「システム」を開いて)確認してから対応するものを選びましょう。

 CDならLiveCD、DVDに(何れの場合もディスクイメージとして)焼いてLiveDVDとして、PCが対応していればUSBメモリからでもOSをブート(起動)できたりします。

 これらのメディアから起動する場合は、あらかじめ対象のマシンのBIOS設定で起動順序を変更しておく必要があります。

 BIOS設定は一般にPCの電源を入れた直後(OSが起動する前に)、一定のキー(例えば[Del]/[F2]/[F8]/[F10]/[F12]など)を押すことでBIOS設定メニューを含む設定画面に切り替えることで可能となり、BIOS設定メニューでCD/DVDやUSBなど対象ブート(起動)メディアをハードディスク(IDEディスク/SATAディスク他)より先に設定しておきます。

 このことからBIOS設定メニューで選択できないメディア(対象メディアが選択肢にないマシンで)は、そのままでは利用できません(が、そうしたマシンの対象外メディアからでもブートを可能にする方法もあります)。

 ちなみにCD/DVDに焼いたり、USBへのインストールする場合には、(ホストまたはゲスト)OSに標準インストールされているソフトウェアやフリーなどでも出回っているソフトウェアを使うことも可能ですが、Linuxによっては仮想マシン上からでもCD/DVD/USBなど外部メディアにインストールできます。

 USBへのインストールやCD/DVDに焼くか焼かないかは、利用目的によります。

 家のデスクトップPCと外出先でノートPCで、職場と家で同じ環境を・・・という場合にはUSBやCD/DVDに焼く必要があるでしょうし、特定のPCでOS選びの為のお試しなら他の媒体に焼くのはそれなりに時間もかかり面倒なのでisoイメージをそのまま利用すれば事足りるでしょう。

 尚、仮想マシンでisoイメージファイルからインストールした場合、インストール後は、仮想マシン上の対象OSの起動順設定でハードディスクを先にしておく必要があります。

PC・仮想マシン・仮想OSの必要スペック

 仮想マシンを利用する際の物理マシンのスペックについては、ケースバイケースであり、一概に言い切れるものではありませんが、たいていの作業をそれなりに快適に行う為のおおまかな目安としては、デュアルコア以上のマルチコアCPU 1.5GHz以上、メモリ1GB以上、HDD160GB以上といったところでしょうか。

 CPUとメモリは、物理マシンの資源を利用しますから、例えば、単純に物理マシンのメモリが1GBでホストOSで512MB確保する必要があるなら、仮想マシンに割り当てられるのは512MB以下のゲストOSを(、ゲストOSが128MBで動作するなら最大4つ、256MBで動作するなら最大2つ同時稼働等も含め)実行可能ということになり、これをうまく配分して実行させる(ように高速演算する)為には、CPUもそれなりのスペックが要求されるということです。

 ハードディスク容量については、仮想マシン作成時に容量可変、容量固定のハードディスクを作成できるようになっているものもありますが、固定なら指定サイズが即、可変ならディスク消費量分だけディスク容量が必要となり、複数のOSをインストールするならその分だけ容量が増え、更に仮想マシン用OSのインストールに物理的なCD/DVDではなく、基本的に圧縮されないISOファイルを直接、または、仮想ドライブなどで利用する場合、ISOファイルによっては600MB~数GBといったものがある為、その分ディスク容量を要するといったことから、ディスク容量をあまり気にせず、どんどんISOファイルをダウンロード、または作成して様々なOSを次から次へとインストールして試したいと思えば、外付けHDDも含め、GB(ギガバイト)、更にはTB(テラバイト)単位でそれ相応のディスク容量を準備する必要があるということです。

 isoイメージのサイズは、当然OSやOSのシステム構成にもよりますし、一部のLinuxでは数十メガバイトで収まるものもありますが、その多くは、100MB以上、媒体としての許容量からCD用のisoイメージの場合、数百メガバイト、DVD用のisoイメージの場合、数ギガバイトというケースが多くなっています。

 仮想OSの仮想パーティーションサイズはデフォルトでは数GB程度が多いようです。

 メモリ容量も多いに越したことはありませんが、仮想マシンで動かすにしてもインストールするにしてもLinuxで必要となるメモリ容量は、256MB~512MBを必要スペックとしているものが多いと思われます。

 よって仮想マシンやisoイメージをインストールするPCは、メモリは仮想OSで必要とする容量の2倍以上、ハードディスクの空き容量は、仮想マシン数百メガバイト+各仮想OSで確保するパーティーション容量(ギガバイト単位以上)掛けるisoイメージの数、プラスアルファということで実質数十ギガバイト以上は必要と考えてよいでしょう。

その他参考情報

複数の仮想マシンをインストールしてみるのも手

 こうしたことを踏まえた上で基本的に複数の仮想マシン(ゲストOS)を動作させることになるでしょうから、OSごとのisoイメージの利用可不可や相性などから場合によっては複数の仮想マシン作成・実行ソフトウェアをインストールしておくのもよいでしょう。

ダウンロード時間等のおおまかな目安

 ちなみに当サイトで利用させて頂いた仮想化ソフトウェアの内、QEMU(QtEmu)は16MB前後、VirtualBoxは160MB前後、VMware Playerは370MB前後です。

 ブロードバンド環境なら(上り下りのスピードやサーバの場所などにもよりますが、)仮想化ソフトウェアの圧縮ファイルのダウンロードに数分といったところでしょう。

 一方、600MB~800MBのisoイメージをダウンロードした場合、時間にして30~40分程度といったところでしょう。

インストール

 仮想化ソフトウェアのダウンロード後のインストールは(、PCのスペックにもよりますが、)数分で済むはずです。

 OSを仮想マシンにインストールする場合、PC-UNIXやLinuxの多くは、10分前後で完了すると思います。

 Windowsの場合、インストールが終わって最初に起動するまでの所要時間の目安は、例えば、Windows 95では15分前後、98/98 SEでは40分前後、XPではトータルで1時間30分前後といったところでしょう。

ディレクトリ・ファイル

 尚、できればisoイメージを置くフォルダ(ディレクトリ)名に日本語や空白が含まれない方がベターで含まれる可能性のある(デスクトップやドキュメントなどの)フォルダ内ではないフォルダに置いた方が、無用なエラーに悩まされる可能性がより低くなるでしょう。

キーボード設定

 仮想マシンの問題なのか、ゲストOSのisoイメージの問題なのか、これらの相性によるものなのか検証はしていませんが、一部のOSでは、日本語対応版でも仮想マシンへのOSインストール中の設定で使用言語に日本語を、キーボードに106/109など日本語キーボードを設定するとインストールに失敗する場合もありますが、これらはインストール後も設定可能なので英語や英語キーボード(101/104)にしておいても大丈夫ですし、何度失敗してもPCやホストOSには、基本的に影響しないところが仮想マシンのいいところなので何度でもやり直してみましょう。

代替キー

 ただ、英語キーボードだと日本語キーボードと同じように入力してもコロンやアンダースコア(アンダーバー)など一部の記号文字が入力できず、インストール途中の設定時など困る場合もあるので対応一例を。

出力したい記号英語キーボード摘要
:コロン[shift] + ;セミコロン
@アットマーク[shift] + 2半角数字の2
_アンダーバー[shift] + -半角のマイナス
|パイプ[shift] + }半角の右波カッコ
キーボード変更
$ which loadkeys 
 /usr/bin/loadkeys 
$ find / -name "qwerty" 
 /usr/share/keymaps/i386/qwerty 
$ ls /usr/share/keymaps/i386/qwerty 
 ... 
 jp106.map.gz 
 ... 
$ loadkeys jp106 

 尚、Linux起動後にCUIベースでキーボード設定する場合には、loadkeysコマンドを使用します。

 loadkeysコマンドにはディレクトリ[.../keymaps/.../qwerty]以下にある[.map.gz]ファイルのファイル名部分を指定することができます。

 よってこのように[jp106.map.gz]があれば日本語106キーボードを設定することができます。

 尚、Linuxディストリビューションによってコマンドやファイル格納ディレクトリパスが微妙に異なることもあります。

$ tty 
 /dev/tty1 
$ cat .bash_profile 
 ... 
if [ `tty` == "/dev/tty1" ]
then 
 loadkeys jp106 
fi 
 ... 

 また、何らかの事情でシステム全体設定が106/109キーボード以外に設定されている場合には、ホームディレクトリの[.bash_profile]などに端末(tty)利用の場合、loadkeysコマンドを設定しておくとよいでしょう。

<< JVMとOS仮想化のVirtual Machine << Linuxの需要の高まり

ホーム前へ次へ