Windows TIPS
[System Environment]
  Windows TIPS TOPへ
Windows TIPS全リストへ
内容別分類一覧へ

仮想ハードディスクのサイズを拡大する

解説をスキップして操作方法を読む

デジタルアドバンテージ 打越 浩幸
2007/03/30
 
対象ソフトウェア
Virtual PC 2004/2007
Virtual Server 2005
.VHDファイルは仮想マシンで使われるディスクのイメージ・データを保存するファイルである。1度作成すると、そのサイズを変更するのは容易ではない。
VHD Resizerというツールを使うと、.VHDファイルを拡大して、未割り当て領域を増やすことができる。ただし仮想ディスクのサイズは拡大できるが、その中のボリュームのサイズはそのままである。
NTFSならば、diskpartコマンドでボリューム・サイズを拡大できる。
 
解説

 仮想化ソフトウェアVirtual PC 2004/2007やVirtual Server 2005などを利用する場合、仮想マシンで利用するために、最初に「仮想ハードディスク」と呼ばれるファイルを(ホストOS上に)作成する(拡張子は.VHD)。このファイルの中には、仮想マシンで利用するハードディスクの内容(セクタ・データ)がそのまま保存されている。

 仮想マシン作成ウィザードや仮想ディスク作成ウィザードを使って.VHDファイルを作成する場合、デフォルトでは16Gbytesに設定されているので、そのまま作成していることが多いだろう。だが場合によっては、これではサイズが不足することがある。インストールしたゲストOSに加え、さらにサーバ・アプリケーションやデータベース、それらで使用するデータ・ファイルなどもインストールしようとすると、16Gbytesはあまりにも少ない。

 このような場合は、.VHDファイルのサイズを拡大できると便利である(OSのインストールからやり直すのでは手間がかかりすぎるから)。仮想ディスクは、実際にはホストOS上のファイルとして実現されているため、こんなことは簡単にできそうだが、残念ながらVirtual PCやVirtual Serverには.VHDファイルのサイズを拡大する機能は用意されていない。これを行うには、何らかの補助的なソフトウェアを利用する必要がある。

 仮想ディスクのサイズを拡大する方法は2つある。ゲストOS上で、ディスクのコピー・ツール(あるディスクの内容を別のディスクへコピーするツール。引越しツールなどと呼ばれることもある)を利用するか、.VHDファイルに特化した操作ツールを利用して、より大きなサイズの仮想ディスクへコピーする。

 .VHDファイルを直接操作するツールはいくつかあるが、本TIPSでは、vmToolkitのサイトで配布されている「VHD Resizer(VhdResizer)」というフリー・ソフトウェアを紹介する。

 このサイトのDownloadsというリンクから「VHD Resizer」というファイルをダウンロードし(.ZIPファイルで配布されている)、適当なフォルダに解凍して利用する。ただしダウンロードするためにはメール・アドレスの登録が必要である(登録はサイト右上にある「Sign in」から行うこと)。また実行には.NET Framework 2.0が必要である。

 以下、VHD Resizerを使った.VHDファイルの拡大方法について解説する。ただしいくらか制限などがあるので注意が必要だ。具体的には次のような点が挙げられる。

  • .VHDファイルの仕様では2Tbytesまで可能だが(このツールでは2Tbytesまで拡張できるが)、仮想マシンの仕様や利用するゲストOS環境などの制限により、128Gbytesが現実的な最大サイズとなっている。大きな仮想ディスクを作成しても、仮想マシンのBIOSのIDE設定画面では137Gbytesまでしか認識されないからだ(いわゆるIDEの「137Gbytesの壁」に遭遇する。詳細についてはSystem Insider「IDEハードディスクの「容量の壁」とは?」を参照)。ただしVirtual Serverの仮想SCSIインターフェイスに接続するなら、大きな仮想ディスクでも利用できる。
  • 縮小も可能だが、ゲストOSのボリュームが確保済みの場合は縮小できない。
  • これは仮想ディスクのサイズを拡大するツールであり、仮想ディスク上に確保されているゲストOSのファイル・システムのボリューム・サイズを変更するツールではない。
  • 拡大できるのは容量固定か容量可変の仮想ディスクのみ。差分仮想ディスクや物理ハードディスクへリンクされた仮想ディスクは操作できな。必要ならこれらのタイプへ変換してから作業すること。

■Hyper-Vのディスク編集ツールについて【2009/09/18追記】
 Windows Server 2008/Server 2008 R2の仮想環境であるHyper-Vの場合は、Hyper-V管理ツールに含まれているディスク編集ツールを使って仮想ディスクのサイズを拡大できる(最大2040Gbytesまで拡大可能)。詳しくはTIPS「仮想ハードディスクのサイズを拡大する(Hyper-V編)」を参照のこと。.VHDファイルの仕様は同じなので、Hyper-Vの管理ツールを使ってVirtual PCやVirtual Serverの.VHDファイルを操作してもよい。

操作方法

手順1――VHD Resizerで.VHDファイルを拡大する

 VHD Resizerを起動すると、元の.VHDファイルを指定するダイアログが表示される。そこでファイルを指定してもよいし、[Esc]キーを押してスキップしてもよい。起動すると次のような画面が表示される。

VHD Resizerによるファイル・サイズの変更
VHD Resizerを使えば、.VHDファイルのディスク・サイズを変更できる。これはディスクの物理的な容量を変更することに等しい。
  変換元の.VHDファイル名。容量固定か容量可変のみ指定可能。[open]ボタンをクリックして、選択することも可能。
  変換元の.VHDファイルの情報。容量可変の16Gbytesの仮想ディスクであることが分かる。[save as]ボタンをクリックして、選択することも可能。
  変換後の.VHDファイル名。
  Dynamic(容量可変)かFixed(容量固定)が選択可能。
  新しいサイズ。基本的には拡大のみ可能。ただし未使用パーティション領域があれば、縮小も可能。なおこの下には「Max: 4000 gb」と書いてあるが、「4000」「GB」と入力しても、実際に作成されるのは2000Gbytes(2Tbytes)のディスクまでである。仮想マシンの仕様(IDEでは最大137Gbytesまでしかサポートされていない)を考えると、128Gbytesまでにしておくのがよいだろう。
  正しくパラメータをセットするとこのボタンが有効になり、クリックすると変換作業が始まる。

 ここで変換元と変換先のファイル名を指定し、さらに変換後の仮想ディスクのタイプやサイズを指定してから[resize]ボタンをクリックすると、自動的に変換が行われる。特に難しい操作は何もなく、これだけで自動的に仮想ディスクのサイズが拡大される。

手順2――ボリューム・サイズを拡大する

 以上の操作により、仮想ディスクのサイズは拡大するが、その上に確保されているファイル・システム(ボリューム)のサイズはそのままである。例えば16Gbytesの仮想ディスク上に16GbytesのNTFSボリュームが確保済みの場合、32Gbytesに拡大しても、NTFS領域は16Gbytesのままである。拡大された16Gbytes分は未割り当て領域のままになっている。ゲストOSから見ると、単にディスクの総容量が増えたようにしか見えない。

 未割り当て領域の活用方法には2通りある。1つは、新しいパーティションを確保し、その上に新しくボリュームを作成する方法である。これは分かりやすい方法だろう。ゲストOSの持つディスクの管理機能を使ってパーティションを確保し、その上にボリュームを作成してフォーマットすればよい。この方法については、これ以上は述べない。

 もう1つの活用方法は、すでに確保されているボリュームを拡大する方法である。これが最も望ましい方法だが、すべての場合に使えるわけではない。ファイル・システムがNTFSの場合には、以下のような操作によって、ボリューム・サイズを拡大できる。

 NTFSボリュームのサイズを拡大するには、Windows OSに用意されているdiskpart.exeコマンドを利用する。具体的な操作方法や制限などについてはTIPS「ディスクのボリューム・サイズを拡張する」を参照していただきたいが、簡単にまとめると次のようになる。

1.ゲストOSの2台目のディスクとしてマウントする
 diskpartコマンドは、Windows OSのシステム・ボリュームやブート・ボリュームは拡大できないので(ゲストOSが使用しているボリュームは拡大できない)、適当な別のゲストOSを起動し、そのゲストOSの2台目以降のディスクとしてマウントする。ちなみにディスクのマウントは、仮想マシンの設定オプションで行う。

2.diskpartコマンドでボリュームを拡大する
 diskpartコマンドを使い、次のようなコマンドを発行して、ボリュームを拡大する。extendコマンドを引数なしで実行すると、指定されたボリュームに続く空き領域部分がすべて追加され、ボリュームが拡大される(拡張するサイズをMbytes単位で「size=引数」で指定可能。詳細は上記TIPSを参照)。なおWindows Vistaでは、GUIのディスク管理ツール([コンピュータの管理]−[記憶域]−[ディスクの管理]ツール)でこの拡大操作ができる。

C:\>diskpart …diskpartコマンドの起動

Microsoft DiskPart version 5.1.3565

Copyright (C) 1999-2003 Microsoft Corporation.
コンピュータ: SYSLABPC5178

DISKPART> list disk …ディスクの確認

  Disk ###  Status           Size     Free     Dyn  Gpt
  --------  ---------------  -------  -------  ---  ---
  Disk 0    オンライン         16 GB      0 B …システム・ディスク
  Disk 1    オンライン         32 GB    16 GB …拡大したディスク。サイズが32Gbytesになっているが、半分空いている

DISKPART> list volume …既存のボリュームの確認

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B
  Volume 1    C                NTFS  Partition     16 GB  正常       システム
  Volume 2    E                NTFS  Partition     16 GB  正常
  ↑↑…Volume 2が拡大したいNTFSボリューム

DISKPART> select volume 2 …ボリュームE:の選択

ボリューム 2 は選択されたボリュームです。
  ↑↑…Volume 2(E:)の直後に16Gbytes空きがある

DISKPART> extend …ボリュームE:を拡張する

DiskPart はボリュームを正常に拡張しました。

DISKPART> list volume …拡大結果の確認

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B
  Volume 1    C                NTFS  Partition     16 GB  正常       システム
* Volume 2    E                NTFS  Partition     32 GB  正常
  ↑↑…Volume 2(E:)が32Gbytesに拡大されている

DISKPART>

 Windows OS以外の場合や、FAT32ボリュームなどの場合は、この方法は利用できない。必要なら市販のディスク・コピー・ツールなどをゲストOS上で実行するか、FAT32ならば、エクスプローラやXCOPYコマンドなどでコピーすればよいだろう。End of Article

関連記事(Windows Server Insider)
  Windows TIPS:クライアント向け仮想化ソフトウェアVirtual PC 2007を利用する
  Windows TIPS:クライアント向け仮想化ソフトウェアVirtual PC 2004を利用する
  Windows TIPS:ディスクのボリューム・サイズを拡張する
Windows TIPS:仮想マシンの実行優先度を調整する(Virtual PC 2004編)
Windows TIPS:仮想マシンの実行優先度を調整する(Virtual Server 2005編)
Windows TIPS:仮想マシンの終了方法を理解する(Virtual Server 2005編)
Windows TIPS:起動するプログラムの優先度を変更する方法
Windows TIPS:Virtual PCの仮想マシンへのショートカットを素早く作成する
Windows TIPS:仮想マシンにおける差分ディスクと復元ディスクの違
Windows TIPS:仮想ハードディスクのデフラグに注意
Windows TIPS:仮想ハードディスクを圧縮する(Virtual PC 2004編)
Windows TIPS:仮想ハードディスクを圧縮する(Virtual Server 2005 R2編)
Windows TIPS:仮想マシンの時刻同期機能を無効にする(Virtual PC編)
Windows TIPS:仮想マシンの時刻同期機能を無効にする(VS2005編)
Windows TIPS:sysprepで環境複製用のマスタ・イメージを作成する
Windows TIPS:物理ディスクの内容を仮想ディスク・ファイルに変換する
Windows TIPS:フロッピー・ディスクの内容を仮想FDファイルに保存する
Windows TIPS:Virtual PC/Virtual Serverでエミュレートされるネットワーク・インターフェイス
Windows TIPS:ディスクのパーティション・テーブルを調査する
製品レビュー:デスクトップOSのマイグレーションを支援するVirtual PC 2004
製品レビュー:サーバ・システムの統合/マイグレーションを推進するVirtual Server 2005
製品レビュー:Windows Server 2003 R2
     
  関連リンク
Microsoft Virtual PC 2007の製品ページ(マイクロソフト)
Microsoft Virtual Server 2005 R2の製品ページ(マイクロソフト)
  仮想マシンのためのコミュニティ―vmToolkitサイト(vmToolkit)
     
「Windows TIPS」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間