Windows の VHD ブートの構成方法


こんにちは。

自分のための備忘 (メモ) として、Windows における VHD ブート (OS のマルチブート) の構成手順をメモしておきます。

 

現在のブート パーティションの確認

現在のブート パーティションを確認するには、OS 上からコマンド プロンプトを起動して以下の通り実行します。

bcdedit /enum

 

Windows のインストール DVD から VHD ブートを構成する

Windows のインストール DVD から VHD ブート用の .vhd (または .vhdx) ファイルを作成して VHD ブートを構成する手順です。

1. Windows を DVD からインストール開始します

2. インストールの途中でコマンド プロンプトを表示します

  • [コンピューターを修復する] を選択して、表示されるダイアログボックスでラジオボタンを選択
  • 表示されるダイアログボックスで [コマンドプロンプト] を選択

3. コマンド プロンプトで以下を実行して仮想ディスクを作成します。

diskpart
create vdisk file=C:\VHD\test.vhd maximum=40000 type=expandable

上記の例では、40 GB の可変長の vhd (40 GB 固定ではなく、内容量が 15 GB の場合は 15GB のサイズを割り当て、起動時に 40 GB に拡張) を C:\VHD^test.vhd として作成しています。
固定長の場合は、expandable ではなく fixed とします。

なお、C ドライブなどが仮想的に割り当てられている場合があるのでドライブ文字に注意してください。例えば、OS 起動時に C ドライブであっても、このコマンド プロンプト上では D ドライブとして認識されている可能性があります。その場合には D ドライブとして設定します。

4. コマンド プロンプトで以下を実行して、上記のディスクにアタッチします。

select vdisk file=C:\VHD\test.vhd
attach vdisk
exit

5. インストーラを終了せず、DVD のドライブに移って、インストールを継続します。例えば、コマンド プロンプトで下記の通り実行します。(下記では、インストール DVD のドライブを E ドライブと仮定します。)

e:
setup.exe

6. 以降、インストーラーの手順に沿って新規インストールします。この際、上記の vhd ディスクがパーティションとして認識されるため選択します。

7. インストールが完了したら、新しいブートパーティションができています。

 

バックアップ (コピー) した VHD や、Hyper-V で作成した VHD (ディスク) を VHD ブートで使用する

この方法は、ゲスト OS に一度でもスナップショットを作成した場合には不可ですので注意してください。
また当然ですが、仮想ハードディスクの最大サイズが物理ディスクを超えている場合も不可です。(起動時に Expand されるため)

1. ゲスト OS を起動し、以下のレジストリーの値を 0 に設定します。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Msahci\Start

2. 上記のゲスト OS の vhd をコピーします。今回、C:\VHD\test.vhd にコピーしたと仮定します。

3. コマンド プロンプトを表示して、以下のコマンドを実行し、現在の OS のエントリをコピーします。

bcdedit /copy {current} /d "Windows Test"

この際、「エントリは {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} に正常にコピーされました」と出力される GUID をコピーしておいてください。

4. 以下のコマンドを実行して、.vhd をブート デバイスとして構成します。なお、下記で、GUID として、上記でコピーした内容を設定してください。

bcdedit /set {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} device vhd=[C:]\VHD\test.vhd
bcdedit /set {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} osdevice vhd=[C:]\VHD\test.vhd
bcdedit /set {yyyyyyyy-yyyy-yyyyy-yyyyy-yyyyyyyyyyyyy} detecthal yes

 

Comments (0)

Skip to main content