Disk2vhd ツールを利用した P2V 化

目次

本記事はマイクロソフト社員によって公開されております。

いつも弊社製品をご利用いただきまして誠にありがとうございます。Windows プラットフォーム サポートの栗木です。

今回は、Disk2vhd ツール を利用し、物理環境の物理ディスクから Hyper-V で使用できる仮想ディスクを作成する P2V 化についてご紹介いたします。仮想環境で実行することにより、ハードウェア要因の問題を切り分けられたり、問題を引き起こしている可能性のあるソフトウェアのアンインストールが容易になり、スムーズに問題を解決できる可能性がございます。

Disk2vhd ツールは VSS に対応しているため、OS を起動させた状態で実行可能ではございますが、VSS に対応していないアプリケーションや実行時の負荷などを考慮すると、Windows PE/RE (プレインストール環境/回復環境)で実施いただいたほうが安全ため、Windows PE/RE での P2V 化の手順をご紹介いたします。回復環境が利用できない場合は、後述する 回復環境が利用できない環境での変換方法 より仮想ディスクを作成してください。

Windows プレインストール環境 (Windows PE)
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/winpe-intro

Windows 回復環境 (Windows RE)
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/windows-recovery-environment--windows-re--technical-reference

注意点:
本記事は検証目的として Disk2vhd による P2V 化手順をご案内しております。Disk2vhd ツールは Windows 標準ツールではございませんのでサポート内容については使用許諾を確認し、ご理解いただいた上でご利用ください。

P2V 化の流れ

  1. ドライブにラベル名を付与
  2. Disk2vhd ツールの zip ファイルをダウンロード・展開
  3. Windows PE (WinPE) メディアの作成
  4. Disk2vhd ツールで仮想ディスクを作成
  5. Hyper-V で起動

1. ドライブにラベル名を付与

Windows PE/RE で起動すると、ドライブ レターが通常の OS 起動時と異なる可能性がございます。そのため、ラベル名を変更し、ラベル名から判別できるようにします。すでに OS が通常起動できないエラー状態にある場合は、こちらの手順はできませんので、スキップしてください。

2. Disk2vhd ツールの zip ファイルをダウンロード・展開

以下の Web サイトから Disk2vhd ツールをダウンロードし、USB メモリ等の外部ストレージに展開します。
Disk2vhd - Sysinternals | Microsoft Learn
https://learn.microsoft.com/en-us/sysinternals/downloads/disk2vhd

3. Windows PE (WinPE) メディアの作成

P2V 化したいシステムに Windows RE がインストールされている場合(A)や Windows OS のインストール メディアがある場合(B)は、以下の方法で、Windows RE を起動できます。(A)、(B)に該当する場合は、Windows PE (WinPE) メディアの作成をする必要ありませんのでこちらの手順はスキップできます。

A. コマンドプロンプト(管理者権限)から Windows RE を起動

reagentc /boottore && shutdown /r /t 0 /f

B. インストール メディアから コンピューターを修復する を選択し、Windows RE を起動

上記の方法で、Windows RE を起動できない場合は、次の手順より、Windows PE (WinPE) メディアを作成してください。

1. 作業用の Windows 10/11 環境にて Windows ADK をインストール

Windows ADK のダウンロードとインストール
https://learn.microsoft.com/ja-jp/windows-hardware/get-started/adk-install

2. 以下の Web サイトを参考に WinPE のブートメディアを作成

起動可能な Windows PE メディアの作成
https://learn.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive

4. Disk2vhd ツールで仮想ディスクを作成

1. Windows PE/RE で、コマンド プロンプトを実行

Windows PE は、自動的にコマンド プロンプトが起動し、wpeinit の自動実行が完了するとプロンプトが戻ります。プロンプトが戻るまで、5~10 分程かかる場合がございます。
Windows RE では、トラブルシューティング -> コマンド プロンプトを選択することにより、コマンドプロンプトを実行できます。

2. Disk2vhd ツールを実行し、設定を変更

※実行時には使用許諾が表示されますので、同意 (Agree) していただいた上でご利用ください。
・ “Use Vhdx” のチェックをつけます。
・ “Use Volume Shadow Copy” のチェックを外します。
・ “VHD File name” にvhdx の保存先とファイル名を指定します。
・ 仮想ディスクに変換したいボリュームにチェックをつけます。

名前が、\\?\Volume から始まるボリュームがある場合は、必ずチェックをお願いします。上述いたしましたが、OS を通常起動した場合とドライブ レターが異なる場合がありますので Label を参考に必要なボリュームを選択してください。例えば、システム ディスクである C ドライブが D ドライブにアサインされていることがあります。
出力先にネットワークドライブを指定したい場合は、後述の ネットワークドライブにドライブレターを割り当てる方法 を参考に IP アドレスの設定とファイルサーバーへの接続を先に実行してください。

3. Create をクリックして、仮想ディスクを作成

選択したボリュームが複数の物理ディスクにある場合は、複数の仮想ディスクが連番のファイル名で作成されます。
正常に完了しましたら、Close をクリックし、ツールを終了させ、コマンド プロンプトで wpeutil shutdown を実行してシステムをシャットダウンします。

5. Hyper-V で起動

BIOS 環境

Disk2vhd ツールは、BIOS 環境用に作られているため、もともとの物理端末が BIOS 環境であれば、次の PowerShell コマンドにより、Disk2vhd で作成した仮想ディスクを指定し、Hyper-V 仮想マシンを作成・起動することができます。メモリのサイズやプロセッサーの数は、ご希望の値に変更してください。

New-VM -Name "TestVM" -MemoryStartupBytes 4GB -Generation 1 -VHDPath "D:\path\to\vhd\test.vhdx"
Set-VM -Name "TestVM" -StaticMemory -ProcessorCount 4
Start-VM -Name "TestVM"

New-VM (Hyper-V) | Microsoft Learn
https://learn.microsoft.com/en-us/powershell/module/hyper-v/new-vm
Set-VM (Hyper-V) | Microsoft Learn
https://learn.microsoft.com/en-us/powershell/module/hyper-v/set-vm
Start-VM (Hyper-V) | Microsoft Learn
https://learn.microsoft.com/ja-jp/powershell/module/hyper-v/start-vm

UEFI 環境

UEFI 環境の場合は、そのままの状態では OS の起動ができないことがございます。その場合には、Hyper-V 仮想マシンを作成した後に、OS が起動できるようにシステム パーティションの初期化処理を Windows PE/RE で実施する必要があります。

1. Hyper-V 仮想マシンを作成

第 2 世代の仮想マシンとして、Disk2vhd で作成した仮想ディスクを指定して、Hyper-V 仮想マシンを作成・起動します。

New-VM -Name "TestVM" -MemoryStartupBytes 4GB -Generation 2 -VHDPath "D:\path\to\vhd\test.vhdx"
Set-VM -Name "TestVM" -StaticMemory -ProcessorCount 4
Start-VM -Name "TestVM"

仮想マシン起動後に、以下のような画面が表示されている場合は、システム パーティションの初期化が必要なので、次の手順に進んでください。

2. Windows PE/RE で起動

Windows OS のインストール メディア の ISO ファイル、または Windows PE の ISO ファイルを仮想マシンのディスク ドライブに追加し、起動します。ISO ファイルがない場合は、上述したWindows PE (WinPE) メディアの作成 へ戻り、ISO ファイルを作成してください。

Add-VMDvdDrive -VMName "TestVM" -Path "D:\path\to\InstallMedia\or\WinPE\disk.iso"
Start-VM -Name "TestVM"

仮想マシン起動時に “Press any key to boot from CD or DVD” のメッセージが表示されるので、任意のキー入力してください。

3. コマンド プロンプトから diskpart ツールを起動

Windows PE メディアから起動した場合は、自動的にコマンド プロンプトが起動します。Windows OS のインストール メディアから起動した場合は、Shift+F10 キーを入力するとコマンド プロンプトを起動できます。
コマンド プロンプトが起動したら、diskpart を実行してください。

4. diskpart ツールでシステム パーティションの初期化

まず、list disk コマンドで現在のディスクを確認し、sel disk (ディスク番号) を実行し、ディスクを選択します。

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online          238 GB      0 B        *
 
DISKPART> sel disk 0

Disk 0 is now the selected disk.

次に list part コマンドでシステム パーティションを確認し、sel part (パーティション番号) コマンドを実行し、システム パーティションを選択します。

DISKPART> list part

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    System             100 MB  1024 KB
  Partition 2    Reserved            16 MB   101 MB
  Partition 3    Primary            127 GB   117 MB
  Partition 4    Recovery           563 MB   127 GB

DISKPART> sel part 1

Partition 1 is now the selected partition.

format quick fs=fat32 label="System" コマンドを実行して、パーティションをフォーマットします。

DISKPART> format quick fs=fat32 label="System"
 
     100 percent completed
 
DiskPart successfully formatted the volume.

assign コマンドでフォーマットしたボリュームにドライブレターを割り当て、list vol コマンドを実行して、システム ボリュームのドライブ レターを確認します。この例では、E ドライブと確認できます。

DISKPART> assign
 
DiskPart successfully assigned the drive letter or mount point.
 
DISKPART> list vol
 
  Volume ###  Ltr  Label         Fs     Type        Size     Status     Info
  ----------  ---  ------------  -----  ----------  -------  ---------  -------
  Volume 0     D   DVD_ROM       UDF    DVD-ROM      295 MB  Healthy
  Volume 1     C   OS            NTFS   Partition    127 GB  Healthy
  Volume 2                       NTFS   Partition    563 MB  Healthy
* Volume 3     E   SYSTEM        FAT32  Partition    100 MB  Healthy    Hidden

exit コマンドで diskpart ツールを終了します。

DISKPART> exit

Leaving DiskPart...
5. ブート ファイルの作成

コマンド プロンプトで bcdboot (Windows のドライブレター)\Windows /s (システム パーティションのドライブ レター): でブート ファイルを作成します。

X:\windows\system32>bcdboot c:\Windows /s e:
Boot files successfully created.

これで作業は完了したので、wpeutil shutdown コマンドを実行してシステムをシャットダウンします。 ISO イメージをアンマウントし、Hyper-V 仮想マシンが起動できるか確認してください。

回復環境が利用できない環境での変換方法

1. 以下の Web サイトから Disk2vhd ツールをダウンロードし、任意のパスに展開します。

Disk2vhd - Sysinternals | Microsoft Learn
https://learn.microsoft.com/en-us/sysinternals/downloads/disk2vhd

2. disk2vhd64.exe を実行し、設定を変更

※実行時には使用許諾が表示されますので、同意 (Agree) していただいた上でご利用ください。
・ “Use Vhdx” のチェックをつけます。
・ “Use Volume Shadow Copy” のチェックをつけます。
・ “VHD File name” にvhdx の保存先とファイル名を指定します。
・ 仮想ディスクに変換したいボリュームにチェックをつけます。

名前が、\\?\Volume から始まるボリュームがある場合は、必ずチェックをお願いします。

3. Create をクリックして、仮想ディスクを作成

選択したボリュームが複数の物理ディスクにある場合は、複数の仮想ディスクが連番のファイル名で作成されます。 正常に完了しましたら、Close をクリックし、ツールを終了させます。

Windows PE/PE でネットワークドライブにドライブレターを割り当てる方法

ネットワークドライブに保存するためには、IP アドレスの設定を行った上で、接続を行います。ただし、システムに搭載されているネットワークインターフェースカード (NIC) が WinPE に含まれている標準ドライバーで認識できる必要がございます。認識されない場合は、個別にハードウェアベンダー様より提供されているドライバーを適用した状態で Windows PE メディアを作成してください。

1. コマンドプロンプトにて netsh コマンドを利用して IP アドレスを設定

netsh int ipv4 show int ※ 対象のネットワークアダプターの Idx の番号を確認します。 netsh int ipv4 set address “Idx の番号” static “IP アドレス” “サブネットマスク” “ゲートウェイ” “メトリック(省略可)”

2. Net コマンドにてファイルサーバーに接続

net use “ドライブ文字:” “共有パス” /user:“接続するアカウント” “パスワード”

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。