Hyper-V から Proxmox へ仮想マシンを移行する方法:ステップバイステップガイド

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 も導入します。

  1. 最新の安定版 VirtIO ドライバ もしくは 最新ビルドの ISO を、公式リソースから取得します(QEMU Guest Agent のインストールにもこの ISO を使用)。
  2. ダウンロードした ISO を、移行元 Hyper-V VM の仮想 CD/DVD ドライブにマウントします。本例の移行元VMは「Win10test」(Windows 10、世代2、20GB の動的 VHDX=thin相当)。
  3. Hyper-V マネージャーで VM を右クリック → Settings。左ペインの DVD Drive を選択し、右ペインで Image file にドライバ ISO(例:virtio-win-0.1.240.iso)を指定して保存。
  4. VM を起動して VMConnect で接続。ゲストOS内でエクスプローラーを開き、DVD ドライブ直下のインストーラ(virtio-win-gt-x64.msi または virtio-win-gt-x86.msi)を実行し、ウィザードに従って VirtIO ドライバをインストール。
  5. 続けて ISO 内 guest-agent ディレクトリにある QEMU Guest Agent(例:qemu-ga-x84_64.msi)を OS に合わせてインストール。
  6. PowerShell でサービス起動を確認:
    Get-Service QEMU-GA もしくは services.msc(サービス)で QEMU Guest Agent が「自動・実行中」であることを確認。
  7. 移行元 Hyper-V ホスト上で VM をシャットダウン。
  8. チェックポイント(スナップショット)がある場合は削除(本例はなし)。

Hyper-V 仮想マシンをエクスポート

Hyper-V マネージャーで対象 VM を右クリック → Export。保存先フォルダを指定してエクスポートを実行します(例:H:\Exported)。

エクスポートした VM ファイルを Proxmox ホストへ転送

エクスポートフォルダ内 Virtual Hard Disks サブディレクトリにある仮想ディスク(.vhd / .vhdx)を Proxmox ホストへコピーします。Windows から Linux(Proxmox)への転送には、SSH 経由で動作する WinSCP(SCP/SFTP クライアント)が便利です。

  1. WinSCP で Proxmox ホストに接続。
  2. エクスポート済みの VHD/VHDX をドラッグ&ドロップでアップロード。
  3. アップロード後、Proxmox ホストのコンソールで整合性チェック:
    qemu-img check -r all /home/user1/Downloads/Win10test.vhdx

Proxmox で新規 VM を作成

  1. Proxmox の Web UI(Datacenter)で対象ホストを右クリック → Create VM。この新規 VM は後で「インポートした仮想ディスク」を使うための器になります。
  2. ウィザードで以下を設定:
    • General:VM 名(例:Win10-migrated)。VM ID は自動採番で可(例:101)。
    • OSDo 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:必要に応じて設定(移行元と同等で可)。
  3. 作成後、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 に接続

  1. VM の HardwareUnused Disk 0 をダブルクリックし、IDE(または SATA) に接続して追加。
    ※最初から SCSI に接続すると、Windows 起動時に BSOD になる場合があります。 いったん IDE/SATA で起動して Windows 側に必要ドライバを入れた後、SCSI へ切り替えます。
  2. 次に、一時用の 1GB SCSI ディスクを追加(SCSI ドライバ導入のため)。Add → Hard Disk でバス/デバイスに SCSI を指定。
  3. Options → Boot order を開き、変換・接続した IDE/SATA ディスクにチェックを入れて最上位へ。
  4. VM を起動しコンソール接続。ゲストOS(Windows)が起動したら、デバイス マネージャーで以下を確認:
    • ディスク:IDE/SATA の変換済みディスク(例:20GB)と、1GB の SCSI 一時ディスクが見える。
    • ストレージ コントローラ:標準 SATA/AHCI と VirtIO SCSI が見える(ドライバ導入済み)。必要なら再起動。
  5. VM をシャットダウンし、IDE に接続している 20GB ディスクを Detach。表示が Unused Disk 0 になったらダブルクリックして今度は SCSI に接続。
  6. Options → Boot order で、SCSI に接続した Windows ディスク(例:Win10-converted.qcow2)を最上位へ。
  7. VM を起動し、SCSI ディスクから正常にブートできることを確認。デバイス マネージャー上では SCSI ディスク2台+SCSIコントローラ2つ(各ディスクが別コントローラに接続)の構成で表示される場合がありますが、想定どおりです。
  8. 問題なければ VM を停止し、一時の 1GB SCSI ディスクを削除、および Hyper-V からコピーした元の VHDX ファイルも削除して整理します。
    例:rm /var/lib/vz/images/101/vm-101-disk1.qcow2rm /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)でデータ保護を確実に行ってください。

コメント

タイトルとURLをコピーしました