仮想ディスクは何台まで接続できる? ボリュームやファイルサイズの最大値は? シンプルとスパンの違いは何?
前回までは、4回に渡ってVMwareのVMware PlayerやOracleのVirtualBoxなどについて取り上げてきた。MicrosoftのVirtual PCやHyper-V以外にもいろいろな仮想化ソフトウェアがあり、それぞれ特徴を持っている。機能や目的に応じて使い分けるとよいだろう。
さて仮想化ソフトウェアを利用すれば、実機ではなかなかできないようなことでも簡単に実行できる。今回と次回の2回では、Windows OSのディスク管理ツール関連の話題について取り上げる。可能な限り大きな仮想ディスクを作成して仮想マシンにつないでみるとか、どこまで大きなボリュームが作成できるか、作成可能なファイルの最大サイズはいくらかなど、いろいろ試してみよう。
仮想ディスクの実験をするには、まず仮想ディスク・ファイルを用意する必要があるが、利用可能な最大の仮想ディスク・サイズはいくらだろうか。すでに連載 第1回「仮想PC環境の準備」やTIPS「仮想ハードディスクのサイズを拡大する」などで触れているが、Virtual PCやHyper-Vなどで利用される.VHDファイルの仕様では、最大2Tbytes(正確には2040Gbytes)までとされている(VMwareで利用される.VMDKファイルでもやはり最大2Tbytesまでとなっている)。
実際の仮想ディスク作成ウィザードでは次のように表示され、2040Gbytesが最大となっている。
ただし最大2Tbytesの仮想ディスクが作成できるのは、Hyper-VやVirtual Server 2005 R2の仮想ディスク作成ウィザードを使った場合だけである。これらの仮想環境では仮想SCSIインターフェイスが利用できるため、このようなサイズの仮想ディスクが作成できるし、利用もできる。仮想SCSIインターフェイスでは、ディスクのセクタ番号(ブロック番号)を32bit幅の数値で表現しているため、512bytesというセクタ・サイズと掛け合わせると、ディスクの最大サイズが2Tbytesまでとなる。
これに対し、Virtual PC 2007やWindows 7のWindows Virtual PCの仮想環境では古いIDEインターフェイスしかサポートしていない。IDEではディスクのブロック番号を28bit幅で表現しており、これとセクタ・サイズの512bytes(2の9乗)を掛け合わせて、最大が128Gbytes(2の37乗)となる。これはいわゆる「137Gbytesの壁」と呼ばれる、古いPCの仕様である。現在のIDE(ATA)では、もっと大容量をカバーできるアクセス手法が一般的だが、これらの仮想実行環境では互換性を重視しているためか、古いIDEインターフェイスしかサポートされていないようだ。この制限に合わせ、例えばWindows Virtual PCの仮想ディスク作成ウィザードでは、最大でも127Gbytesまでの仮想ディスクしか作成できないようになっている。
なおWindows 7やWindows Server 2008 R2では、仮想ディスク・ファイル上にシステムをインストールしてブートすることも可能だが(連載「Windows 7新時代」の第10回「Windows 7のVHDファイル・サポート」参照)、この場合は最大で2Tbytesの仮想ディスク・ファイルを利用できる。仮想ディスクの作成にはディスクの管理ツールを使うが、この場合は作成サイズとして2040Gbytesまで指定できる。
これ以外にも、コマンド・プロンプト上でdiskpartコマンドを利用しても仮想ディスクは作成できるが、指定できるサイズはやはり2040Gbytes(diskpartではMbytes単位で指定するので、最大2040×1024=208万8960Mbytes)までとなっている。
C:\>diskpart ……diskpartコマンドの起動
Microsoft DiskPart バージョン 6.1.7600
Copyright (C) 1999-2008 Microsoft Corporation.
コンピューター: WIN7PC001
DISKPART> create vdisk file="d:\vhdboot\vhd-2TB.vhd" type=expandable maximum=2088961 ……大きすぎでエラー
DiskPart にエラーが発生しました: パラメーターが間違っています。
詳細については、システム イベント ログを参照してください。
DISKPART> create vdisk file="d:\vhdboot\vhd-2TB.vhd" type=expandable maximum=2088960 ……1Mbytes小さくしてみる
100% 完了しました ……これは正常終了する
DiskPart により、仮想ディスク ファイルが正常に作成されました。
古いIDEタイプのディスクは最大サイズが127Gbytesまでに制限されているが、それよりも大きなサイズの仮想ディスクを仮想マシンのIDEインターフェイスに接続するとどうなるだろうか。現実のPCの場合は、サイズの大きなディスクを接続しても先頭の127Gbytesしか見えないし、アクセスもできない。仮想マシンの場合も同様と考えられるが、それを試してみよう。まず、上で述べたような方法で2Tbytesの仮想ディスクを作成し、それをVirtual PC 2007やWindows Virtual PCで仮想マシンに接続してみる。
Virtual PC 2007上の仮想マシンを起動し、ゲストOS(この場合はWindows XP SP3)上でディスクの管理ツールを開くと次のようになった。
これを見ると分かるように、2Tbytesの仮想ディスクを接続しても、先頭の127Gbytes分しか認識されていない。このままディスクを初期化してボリュームを確保しても、127Gbytesのボリュームしか作成できない。
なお同様のことをWindows 7上のWindows Virtual PCで行おうとすると、128Gbytes以上の仮想ディスクではエラーとなって、設定そのものを完了させることができない。間違えて接続するのを防ぐためであろう。さらに構成ファイルをエディタで直接編集したり、仮想ディスク・ファイルを上書きしたりしても、128Gbytes以上の仮想ディスクが接続されていると、起動に失敗するようだ。Windows Virtual PCの場合は、素直に127Gbytes以下の仮想ディスクを利用するのがよいだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.