VHD ファイル形式とは?
.vhd ファイルには、Microsoft Hyper-V、Oracle VirtualBox、Windows Virtual PC などの仮想化プラットフォームで使用されるハードドライブの仮想イメージが含まれています。単一の .vhd ファイルに、物理ハードドライブに保存されているすべてのデータを、パーティション、システムファイル、通常のファイル、フォルダといった同じ構造で保存できます。
.vhd ファイルによって可能になること
.vhd ファイルは通常、仮想マシンのディスクとして使用され、複数の物理ドライブや個別のコンピュータを必要とせずに、複数のオペレーティングシステムをインストールして実行することを可能にします。これにより、異なる環境でプログラムやアプリケーションを維持するなど、多くの可能性が広がります。また、.vhd ファイルを使用すると、選択したディレクトリやハードドライブ全体を復元することもできます。Windows 7 以降では、サードパーティ製のソフトウェアを使用せずに、ディスク管理または PowerShell の Mount-DiskImage コマンドレットを介して .vhd を直接マウントできます。
VHD フォーマットの簡単な歴史
VHD フォーマットは、2003年に Microsoft によって買収された Connectix 社によって作成され、その後 Microsoft Virtual PC 製品が開発されました。Microsoft はその後、Open Specification Promise に基づいて VHD 仕様を公開し、このフォーマットをロイヤリティフリーで実装できるようにしました。2012年には、より大きなディスク(最大 64 TB)をサポートし、破損に対する回復力を高めた新しいフォーマット - .VHDX - として大幅なアップグレードが導入されました。
VHD ファイルの種類
.vhd ファイルはいくつかのタイプに識別でき、管理が容易になります:
- 固定ハードディスクイメージ - 仮想ドライブのサイズと等しい固定サイズを持ち、作成時にすべてのストレージが割り当てられます。
- 容量可変(ダイナミック)ハードディスクイメージ - ファイルサイズは小さく始まり、データが書き込まれるにつれて増加します。実際に使用されたセクタのみが含まれます。
- 差分ディスクイメージ - 親(ベース)ディスクに対する変更のみを記録する個別の
.vhdです。Hyper-V は、仮想マシンのチェックポイントファイルに、関連する .AVHD 拡張子を使用します。 - リンク(パススルー) - 物理ドライブへのリンクのみを含み、仮想マシンに直接ハードウェアアクセスを許可します。
競合する仮想化ディスクフォーマットには、.VMDK (VMware) や .VDI (VirtualBox ネイティブ) があります。qemu-img ツールを使用すると、Linux や macOS 上でこれらすべてのフォーマット間を変換できます。
セキュリティと安全性
リスク: MEDIUM.vhd はディスクイメージであり、ホスト上で直接実行されることはありませんが、起動可能な OS 全体が含まれる可能性があるため、ダウンロードした VHD はゲスト内にマルウェアを潜ませている可能性があります。信頼できない仮想マシンは隔離して実行してください(共有フォルダなし、制限されたネットワーク)。ディスク管理を介して VHD をマウントすると、そのファイルシステムがホストに公開されるため、ファイルを開く前に不明なイメージをスキャンしてください。また、VHD にはゲストが持っていた機密データ(資格情報、個人ファイル)が含まれるため、機密情報として取り扱ってください。サイズが大きいため、変換やコピーの前に空き容量を確認してください。
形式の詳細
概要VHD ファイルを開くプログラム
技術的詳細
詳細仕様| コンテナタイプ | バイナリ仮想ハードディスクコンテナ - ファイルの末尾に 512 バイトのフッターが付加された raw ディスクイメージ |
| フッタークッキー (マジックバイト) | 512 バイトのフッターの開始位置にある ASCII 文字列 «conectix» (8 バイト)。固定 VHD の場合はファイルの終端 (EOF)、容量可変および差分 VHD の場合はさらにバイトオフセット 0 にも存在 |
| フッターサイズ | 512 バイト。容量可変および差分 VHD ファイルでは、ファイルヘッダーとして機能する 2 つ目のコピーがバイト 0 に配置される |
| 最大仮想ディスクサイズ | 約 2040 GB (約 2 TB)。VHD フッター内の 32 ビットジオメトリフィールドによって制限 |
| MIME タイプ | application/x-vhd |
| サポートされているディスクイメージタイプ | 固定(事前割り当て)、容量可変(スパース、書き込み時に増加)、差分(親に対する差分を記録する子ディスク)、パススルー(物理ドライブへの参照) |
| ダイナミックブロックサイズ | デフォルトはブロックあたり 2 MB。各ブロックには、その中のどの 512 バイトセクタが書き込まれたかを追跡するセクタビットマップが関連付けられている |
| フッターのバイト順序 | サイズ、ジオメトリ、タイムスタンプを含むすべてのマルチバイトフッターフィールドでビッグエンディアン(ネットワークバイト順) |
| 整合性検証 | 512 バイトのフッターとダイナミックディスクヘッダーの両方に埋め込まれた CRC-32 チェックサム |
| ディスクジオメトリのエンコーディング | BIOS 互換の起動用にフッターに保存されたシリンダ・ヘッド・セクタ (CHS) 値 |
| Windows ネイティブマウント | Windows 7 以降でサードパーティ製ツールなしでマウント可能 - ディスク管理、`diskpart attach vdisk`、または `Mount-DiskImage` PowerShell コマンドレット経由 |
| 後継フォーマット | `.vhdx` によって継承。最大 64 TB の仮想ディスクをサポートし、クラッシュ耐性のためのメタデータジャーナリングを追加 |
| エミュレートされたセクタサイズ | ホストドライブの物理セクタサイズに関係なく 512 バイト(従来の HDD ジオメトリ) |
| 親ロケータエントリ | 差分 VHD は最大 8 つの親ロケータエントリを保存し、プラットフォーム間での柔軟なパス解決をサポート |
| ライセンスモデル | Microsoft の Open Specification Promise に基づいて公開されており、サードパーティによるロイヤリティフリーの実装を許可 |
| リリース日 | Connectix Virtual PC (early 2000s); Microsoft published the VHD spec under its Open Specification Promise in 2006 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | learn.microsoft.com |