Proxmox VE はあらゆる規模の組織で信頼できる仮想化基盤ですが、他プラットフォームからのVM移行には注意点があります。近年のバージョンでは、VMware ESXi → Proxmox の移行を部分的に自動化するウィザードが追加されました。一方、Hyper-V から Proxmox への移行は手動手順が必要です。本記事では、Hyper-V から Proxmox へ VM を移行する具体的手順と設定方法を解説します。
移行前の準備:Hyper-V 側ゲストOSに VirtIO ドライバを導入
まず、移行対象の Hyper-V VM のゲストOSに VirtIO ドライバをインストールします。これは Proxmox の仮想デバイス用ドライバ群で、パフォーマンスと操作性を改善するもの(VMware Tools に相当)。移行後に Proxmox 上で VM を起動した際の不具合防止に必須です。同時に QEMU Guest Agent も導入します。
- 最新の安定版 VirtIO ドライバ もしくは 最新ビルドの ISO を、公式リソースから取得します(QEMU Guest Agent のインストールにもこの ISO を使用)。
- ダウンロードした ISO を、移行元 Hyper-V VM の仮想 CD/DVD ドライブにマウントします。本例の移行元VMは「Win10test」(Windows 10、世代2、20GB の動的 VHDX=thin相当)。
- Hyper-V マネージャーで VM を右クリック → Settings。左ペインの DVD Drive を選択し、右ペインで Image file にドライバ ISO(例:
virtio-win-0.1.240.iso
)を指定して保存。 - VM を起動して VMConnect で接続。ゲストOS内でエクスプローラーを開き、DVD ドライブ直下のインストーラ(
virtio-win-gt-x64.msi
またはvirtio-win-gt-x86.msi
)を実行し、ウィザードに従って VirtIO ドライバをインストール。 - 続けて ISO 内
guest-agent
ディレクトリにある QEMU Guest Agent(例:qemu-ga-x84_64.msi
)を OS に合わせてインストール。 - PowerShell でサービス起動を確認:
Get-Service QEMU-GA
もしくはservices.msc
(サービス)で QEMU Guest Agent が「自動・実行中」であることを確認。 - 移行元 Hyper-V ホスト上で VM をシャットダウン。
- チェックポイント(スナップショット)がある場合は削除(本例はなし)。
Hyper-V 仮想マシンをエクスポート
Hyper-V マネージャーで対象 VM を右クリック → Export。保存先フォルダを指定してエクスポートを実行します(例:H:\Exported
)。
エクスポートした VM ファイルを Proxmox ホストへ転送
エクスポートフォルダ内 Virtual Hard Disks サブディレクトリにある仮想ディスク(.vhd
/ .vhdx
)を Proxmox ホストへコピーします。Windows から Linux(Proxmox)への転送には、SSH 経由で動作する WinSCP(SCP/SFTP クライアント)が便利です。
- WinSCP で Proxmox ホストに接続。
- エクスポート済みの VHD/VHDX をドラッグ&ドロップでアップロード。
- アップロード後、Proxmox ホストのコンソールで整合性チェック:
qemu-img check -r all /home/user1/Downloads/Win10test.vhdx
Proxmox で新規 VM を作成
- Proxmox の Web UI(Datacenter)で対象ホストを右クリック → Create VM。この新規 VM は後で「インポートした仮想ディスク」を使うための器になります。
- ウィザードで以下を設定:
- General:VM 名(例:
Win10-migrated
)。VM ID は自動採番で可(例:101
)。 - OS:Do not use any media。Guest OS:Microsoft Windows、Version:10/2016/2019。
- System:Firmware に OVMF (UEFI) を選択(世代2 VM のため)。q35 ベースの EFI ディスクを追加し、仮想TPMは無効。SCSI コントローラは VirtIO SCSI single(既定)。
- Disks:一時用に 1GB の仮想ディスクを作成(後で削除)。
- CPU / Memory / Network:必要に応じて設定(移行元と同等で可)。
- General:VM 名(例:
- 作成後、VM の Hardware で 1GB の仮想ディスク(例:Hard Disk (ide0))を Detach。表示が Unused Disk 0 に変わったら Remove で削除。
VHDX を QCOW2 へ変換
Hyper-V の VHD/VHDX を、Proxmox(KVM)で推奨の QCOW2 へ変換します(thinを有効化)。root 権限で実行:
qemu-img convert -f vhdx -O qcow2 -o preallocation=off /var/lib/vz/dump/disk.vhdx /var/lib/vz/images/VMID/disk.qcow2
例(VMID=101、ソース Win10test.vhdx
を変換して /var/lib/vz/images/101/Win10-converted.qcow2
へ出力):
qemu-img convert -f vhdx -O qcow2 -o preallocation=off ./Win10test.vhdx /var/lib/vz/images/101/Win10-converted.qcow2
完了後、ストレージを再スキャン:
qm rescan
Web UI のストレージ一覧に変換済みディスクが表示されます。
変換した仮想ディスクを Proxmox VM に接続
- VM の Hardware で Unused Disk 0 をダブルクリックし、IDE(または SATA) に接続して追加。
※最初から SCSI に接続すると、Windows 起動時に BSOD になる場合があります。 いったん IDE/SATA で起動して Windows 側に必要ドライバを入れた後、SCSI へ切り替えます。 - 次に、一時用の 1GB SCSI ディスクを追加(SCSI ドライバ導入のため)。Add → Hard Disk でバス/デバイスに SCSI を指定。
- Options → Boot order を開き、変換・接続した IDE/SATA ディスクにチェックを入れて最上位へ。
- VM を起動しコンソール接続。ゲストOS(Windows)が起動したら、デバイス マネージャーで以下を確認:
- ディスク:IDE/SATA の変換済みディスク(例:20GB)と、1GB の SCSI 一時ディスクが見える。
- ストレージ コントローラ:標準 SATA/AHCI と VirtIO SCSI が見える(ドライバ導入済み)。必要なら再起動。
- VM をシャットダウンし、IDE に接続している 20GB ディスクを Detach。表示が Unused Disk 0 になったらダブルクリックして今度は SCSI に接続。
- Options → Boot order で、SCSI に接続した Windows ディスク(例:
Win10-converted.qcow2
)を最上位へ。 - VM を起動し、SCSI ディスクから正常にブートできることを確認。デバイス マネージャー上では SCSI ディスク2台+SCSIコントローラ2つ(各ディスクが別コントローラに接続)の構成で表示される場合がありますが、想定どおりです。
- 問題なければ VM を停止し、一時の 1GB SCSI ディスクを削除、および Hyper-V からコピーした元の VHDX ファイルも削除して整理します。
例:rm /var/lib/vz/images/101/vm-101-disk1.qcow2
、rm /home/user1/Downloads/Win10-test.vhdx
まとめ
Hyper-V から Proxmox への移行は、(1)移行元で VirtIO ドライバ導入 → (2)Proxmox に新規VM作成 → (3)VHD/VHDX を QCOW2 へ変換 → (4)ディスクを接続という流れで行えます。性能面では SCSI 接続が望ましいものの、初回は IDE/SATA から起動して SCSI ドライバを導入 → その後 SCSI へ付け替えるのが安全です。最後に、バックアップ製品(例:NAKIVO Backup & Replication)でデータ保護を確実に行ってください。
コメント