Windows 7 やWindows Server 2008 R2 では、VHD ファイルを内蔵ドライブとして直接マウント可能なのですが、その容量についてネットで検索すると「最大 2TB まで」という情報が散見されます。
ざっとみたところ、それらの情報は「Hyper-V 」「容量可変」という前提で書かれています。
ちょうどバックアップ用に3TBのHDDを買ってきたところなので、本来の目的に使う前に、「Hyper-V とは関係なく」「容量固定」だとどうなるのか?という実験をしてみました。
(Windows Server 2008 R2 SP1 を使いました。)
結論、出来ました。
E:ドライブとしてマウントした3TBの物理HDDの中に 2.5TBの容量固定のVHDファイルを作成し、それをF:ドライブとしてマウントすることに成功しました。
(作成には4時間以上かかりました。。。 もう二度とやりません。)
なおフォーマットの際には、パーティションのスタイルをGPT形式にする必要があります。旧来のMBR形式を選択すると、MBR自体が2TBまでしか扱えないため、2TBを超える部分が「未割り当て」として残ってしまいます。
※表示上は2TB超だけど、実際には2TB分しか機能しない・・・ という可能性も僅かに残ってはいますが、そこまで検証するのは面倒なので今回はパス。(おそらく次回はありません。)
次に、Hyper-V 上の仮想マシンのブートディスクとして、このVHDを利用出来るか試してみました。
まずはF:ドライブとしてのマウントを解除。Hyper-Vで新規の仮想マシンを作成してこのVHDを接続し、Windows Server 2008 R2 をインストールします。ところが・・・
インストールウィザードの「Windows のインストール場所を選択してください。」画面で、「このディスクにWindowsをインストールする事はできません。選択されたディスクはGPTのパーティションの形式ではありません。」と断られてしまいました。
いや、GPTなんですけど。。。
ここでパーティションを新規に作り直すと、2TB以上の数値を入力しても2TBのパーティションが作成され、のこりは「未割り当て」となります。この2TBのパーティションを選択すれば「次へ」ボタンがアクティブになるため、おそらくインストール可能です。(実施にはそこまでやってません。)
その状態でインストールを中断し、仮想マシンをシャットダウンしてホスト側にVHDをマウントしたところ、思った通りMBR形式になっていました。
2TB超のVHDを、仮想マシンのブートディスクには出来ないことが分かったので、次に、既存の仮想マシンのデータディスクとして接続可能か否かを試しました。
まずは、MBRになってしまったVHDをGPTに戻します。それから仮想マシン(Windows Server 2008 R2 SP1)の設定画面でVHDを接続し、起動します。
仮想マシン側の「ディスクの管理」画面で確認したところ、ちゃんとGPT形式のまま、2.5TBの大きなディスクとして認識されています。そのままE:ドライブとしてフォーマットしたところ、ちゃんとエクスプローラーからも2.49TBで認識されるようになりました。
なるほど、仮想マシンのブートは無理でも、データ用ならオッケーなんですね。