| [System Environment] | |||||||||||
仮想ディスク(VHD)のディスク・サイズを縮小する
|
|||||||||||
|
|||||||||||
| 解説 |
|
仮想マシンを構築・運用していると、仮想ハードディスク(VHD)のディスク・サイズを縮小したくなることがある。ここでいう「ディスク・サイズ」とは、ゲストOSに認識されるディスクの総容量のことで、実使用量やボリューム(パーティション)のサイズとは異なる。例えば、関連記事で説明しているように、Windows Virtual PCやHyper-Vの仮想IDEインターフェイスでは、接続できる仮想ハードディスクのサイズが127Gbytes(1Gbytes=1,024Mbytes=1,048,576Kbytes=1,073,741,824bytesとして換算)までという制限がある。P2V(物理マシンから仮想マシンへの移行)によって生成されたVHDのディスク・サイズが127Gbytesを超えると、そこから仮想マシンのゲストOSを起動できなくなってしまう。
また、容量固定型のVHDを利用している場合、仮想化ホスト・マシンのディスク空き容量が心許なくなってきたので、固定容量型のままVHDを小さくしたい、ということもあるだろう(容量可変型に変換した方が容量を節約できるが、使い続けているうちにディスクのパフォーマンスが下がってしまう)。
|
Windows 7ではVHDを取り扱う機能が強化されており、例えばVHDに含まれるボリューム(パーティション)を縮小したり拡大したりできる(関連記事参照)。しかしディスクの縮小については、Windows 7の標準機能ではできない。
そこで本稿では、VHDファイルを直接操作する無償配布のツール「VHD Resizer」をWindows 7のボリューム縮小機能と組み合わせて、VHDのディスク・サイズを縮小する手順を説明する。おおまかな手順としては、Windows 7の「ディスクの管理」ツールでボリュームを縮小してディスク末尾に未使用領域を設け、VHD Resizerでその未使用領域を切り詰めてディスク・サイズを縮小する。
VHD Resizerは次の「vmToolkit」というサイトのダウンロード・ページから入手できる。
- VHD Resizerのダウンロード・ページ[英語](vmToolkit)
|
ページ上部の[Download]ボタンをクリックするとVhdResize-<バージョン番号>.zipというファイルがダウンロードされるので、解凍して「VhdResizerSetup.msi」というインストーラを実行する。あとはウィザードにしたがってインストールを完了させる。
本稿で対象とするVHDの形式は、容量固定型または容量可変型とする。差分仮想ディスクや物理ハードディスクへリンクされた仮想ディスクはVHD Resizerでは操作できないので、必要なら容量固定型/可変型へ変換してから作業していただきたい。
また物理ディスクの空き容量が足りないと、後述するVHD内のボリューム縮小作業が途中で失敗することがある。試した限りでは、元のボリューム・サイズの2倍程度は空いていた方が無難なようだ。
| 操作方法 |
VHDをWindows 7に接続(マウント)する
|
まずは対象のVHDをWindows 7に接続(マウントとも呼ぶ)して、デフラグやボリュームの縮小といった操作ができるようにする。それには、スタート・メニューから[管理ツール]−[コンピュータの管理]を起動し、左ペインから[記憶域]−[ディスクの管理]を選ぶ。次に[操作]メニューから[VHD の接続]をクリックしてVHDファイルを指定する。
![]() |
|||||||||
| VHDをWindows 7に接続する | |||||||||
| これはスタート・メニューから[管理ツール]−[コンピュータの管理]を実行したところ。 | |||||||||
|
すると、接続されたVHD内のボリュームに新たなドライブ名が自動的に割り当てられ、エクスプローラなどからもアクセスできるようになる。
![]() |
||||||
| 接続されたVHD | ||||||
| 接続されたVHD内のボリュームが自動的に認識され、ドライブ名が割り当てられてアクセス可能な状態になっている。 | ||||||
|
接続したVHD内のボリュームに対してデフラグを実行する
次に、接続したVHD内のボリュームに対してデフラグを実行する。この後に説明するWindows 7の[ディスクの管理]によるボリューム縮小作業では、フラグメントが残っている状態でも、可能な限り使用領域(クラスタ)を移動してボリューム末尾の未使用領域を広げようとする。しかしファイルのフラグメント自体は解消されないので、やはり事前にデフラグをしたほうが、未使用領域を広げられる可能性がある。
デフラグを実行するには、スタート・メニューから[アクセサリ]−[システム ツール]−[ディスク デフラグ ツール]をクリックして、デフラグ・ツールを起動する。次に、あらかじめ確認しておいたドライブ名からVHD内のボリュームを特定して選択し、分析→最適化の順に実行する。
デフラグが完了しても、デフラグ・ツールはそのまま終了せずに起動したままにしておく。この後のボリューム縮小作業の進行状況がデフラグ・ツールに表示されて便利だからだ。
接続したVHD内のボリュームを縮小する(未使用領域を拡大する)
デフラグが済んだら、次にVHD内のボリュームを縮小する。それには、前述の[コンピュータの管理]の[ディスクの管理]にて、接続済みのVHD内のボリュームを右クリックして表示されるコンテキスト・メニューから、[ボリュームの縮小]をクリックする。
![]() |
||||||
| 接続したVHD内のボリュームを縮小する | ||||||
| これは[コンピュータの管理]の[ディスクの管理]を選択したところ。 | ||||||
|
すると、「利用可能な縮小領域のボリュームを紹介しています。お待ちください」というメッセージが表示される。このときデフラグ・サービスによるボリューム内のフラグメント状況の分析が実施されており、前述のデフラグ・ツールを開くと、分析が何%まで進んでいるのか確認できる。
分析が完了すると、縮小後のボリューム・サイズを指定するダイアログが表示される。デフォルトでは、可能な限りボリュームを小さくするよう設定されるため、ボリュームに必要な空き容量を考慮してサイズを決定すること。[縮小]ボタンをクリックすると実際の縮小作業が始まる。
![]() |
|||||||||||||||
| ボリュームを縮小するサイズを指定する | |||||||||||||||
| 対象ボリュームの分析が完了すると、このダイアログが表示される。 | |||||||||||||||
|
縮小中はデフラグ・サービスによってボリューム内の使用領域(クラスタ)の移動が実施されるので、やはりデフラグ・ツールで進行状況を確認できる。事前にデフラグを実行していないと、ここで数十分から数時間、時間がかかることもある。
なお、Windows VistaなどWindows 7より前のOSにディスク管理ツールでは、NTFSボリュームの真ん中付近に配置されている管理領域(MFT:Master File Table)を移動しないため、元のディスク・サイズの半分以下には縮小できない。だがWindows 7/Windows Server 2008 R2では移動できるので、Windows 7以降のOSでボリューム縮小を実行した方がよい。
縮小作業が完了したら、[ディスクの管理]でVHD内のボリュームが指定どおりのサイズに縮小されていることを確認する。
![]() |
|||||||||
| ボリューム縮小直後のVHD内の状態 | |||||||||
| これはボリューム縮小作業が完了した直後の[ディスクの管理]画面。 | |||||||||
|
VHDをアンマウントする
|
この後にVHD ResizerでVHDのディスク・サイズを縮小するために、ここでVHDの接続を解除する(アンマウントする)。それには、[ディスクの管理]画面でVHDのディスク(「ディスク 2」などと表示されている部分)を右クリックし、表示されたコンテキスト・メニューから[VHD の切断]をクリックする。次のダイアログでは、[ディスクの削除後に仮想ハード ディスク ファイルを削除する]のチェックが外れていてオフになっていることを確認してから、[OK]ボタンをクリックする。
VHD ResizerでVHDのディスク・サイズを縮小する
|
最後にVHD ResizerでVHDのディスク・サイズを縮小する。スタート・メニューから[vmToolkit]−[Vhd Resizer]をクリックしてVHD Resizerを起動すると、元になるVHDファイルを指定するダイアログが表示される。さきほどボリュームを縮小したVHDファイルを指定して[開く]ボタンをクリックすると、VHD Resizerの画面が現れる。
![]() |
|||||||||||||||||||||
| VHD ResizerでVHDのディスク・サイズを縮小する | |||||||||||||||||||||
| これは最初のファイル・オープン・ダイアログのあとに表示される画面。VHD Resizerでは、元のVHDファイルを上書きせず、縮小(あるいは拡大)したVHDを新規作成のファイルに保存する。 | |||||||||||||||||||||
|
新たなVHDのファイル名や形式、ディスク・サイズを指定して[resize]ボタンをクリックすると、新VHDファイルの生成が始まる。物理ディスクの性能やVHDファイルのサイズに大きく依存するが、完了までには数十分を要することが多いので、じっくり待つこと。
新VHDファイルの生成が完了したら、VHD Resizerは閉じる。そして再び[コンピュータの管理]の[ディスクの管理]から新VHDを接続して、ディスク・サイズやボリューム、未使用領域の状況を確認する。ディスク・サイズは、VHD Resizerで指定したサイズに縮小されているはずだ。
![]() |
||||||
| VHD Resizerによってディスク・サイズが小さくなったVHD | ||||||
| VHD Resizerが生成した新しいVHDを[ディスクの管理]でWindows 7に接続したところ。 | ||||||
|
複数のボリュームを含むVHDを縮小するには?
複数のボリュームが存在するVHDの場合、ここまで説明した手順では、ディスク末尾に最も近いボリュームの縮小分しかディスクは小さくならない。ディスク先頭に近いボリュームをいくら縮小しても、Windows OSの標準ツールでは各ボリュームの先頭位置は変えられないため、結果としてディスク内に未使用領域(ボリュームのない領域)が散在することになる。
これを解消する方法としては、まず市販のパーティション管理ツールを利用してボリュームを移動してディスク先頭へ詰める手がある。未使用領域がディスク末尾にまとめられるため、VHD Resizerで圧縮できるだろう(市販ツールなら、これも実行できるかもしれない)。
もう1つは、OS起動関連(予約ボリュームやWindowsフォルダを含むボリューム)のボリュームだけVHDに残し、残りのボリュームはいったんバックアップしてから削除し、新たに作成した個々のVHDにリストアする、という方法だ。OSの起動に関係なくデータを保存しているだけのボリュームなら、アクセス権や所有権などを含めてフル・バックアップすれば、別のVHDにリストアすることも可能だ。こうすると起動関連のボリュームの後ろからディスク末尾までは未使用領域になるため、前述の手順でディスクを縮小できる。![]()
|
||||||||||||||||||||||||||||
| 「Windows TIPS」 |
TechTargetジャパン
- フォルダの名前が変更できない不具合を解消する (2012/5/25)
Windows 7のエクスプローラで画像ファイルやPDFが含まれるフォルダの名前が変更できなかったり、削除できなかったりする不具合の解消方法を解説する - 通信相手のMACアドレスを調べる近隣探索プロトコル (2012/5/24)
イーサネットで通信する場合、相手のMACアドレスが分からないとパケットを送信できない。ARPに代わるIPv6の近隣探索機能とは? - 第316話 ネット対応トイレ (2012/5/22)
毎日用をたすだけで、体温に体重、血圧、体脂肪率も計測して、尿検査、便検査も自動で実施、データはネット経由で医師に送られます - 私物のスマートフォンを業務に活用、「BYOD」って何? (2012/5/21)
私物のスマホやノートPCを組織的に業務に活用する「BYOD」が新たなトレンドとして注目されている。なぜいまBYODなのか? BYODのメリットとデメリットは?
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -









