本サイトはサイト運営費捻出のため、アフィリエイト広告を利用しています。*詳細
ESXiからエクスポートしたOVFテンプレートをProxmox VE 8.1にインポート出来ない場合の対処方法

ESXiからエクスポートしたOVFテンプレートをProxmox VE 8.1にインポート出来ない場合の対処方法

スポンサーリンク
VMware ESXiからProxmox VEに仮想マシンを移行する方法【Windows VMの場合】
VMware社がBroadcom社に買収された影響で、今後vSphere製品については全てサブスクリプション契約が必要となるようです。 https://www.…
syobon.jp

前回、VMware ESXiからProxmox VEに仮想マシンを移行する手順を解説しました。

今回テストでVMware ESXi 8.0.2からエクスポートしたOVFテンプレートをProxmox VE 8.1環境にインポートしたところ、下記の様なエラーが発生してVMのインポートができませんでした。

transferred 26.9 GiB of 96.0 GiB (28.01%)
transferred 27.8 GiB of 96.0 GiB (29.01%)
transferred 28.8 GiB of 96.0 GiB (30.01%)
qemu-img: error while reading at byte 6750273536: Invalid argument
  Logical volume "vm-100-disk-1" successfully removed.
copy failed: command '/usr/bin/qemu-img convert -p -n -f vmdk -O raw Win11/Win11-disk1.vmdk zeroinit:/dev/pve/vm-100-disk-1' failed: exit code 1

どうやらエクスポートした際に出力されたvmdkファイルがうまく読み込めない様子。

そのため、エクスポートしたvmdkイメージに問題ないかqemu-imgコマンドでチェックしてみました。

qemu-img check -f vmdk /mnt/pve/shokaku/esxi-to-pve/Win11/Win11-disk1.vmdk
No errors were found on the image.

しかし、結果としてはvmdkイメージにエラーは見つかりませんでした・・・

Hello, i want to move a esxi VM to proxmox, created the ovf export but when i tr…
forum.proxmox.com

どうやらProxmoxのフォーラムでも同様のエラーが発生している方が複数人居るようで、特に今のところ解決策が示されたわけでもないようです。

今回は、vmdkイメージファイルに問題が無さそうなのにProxmox VE 8.1にインポートできない場合の対処方法を探ってみます。

注意

今回は下記の手順でProxmox VEに追加したNAS上にファイルをコピーするので、NASを追加していない場合は下記記事を参考にしてProxmox VEにNASを追加してから作業してください。

VMware ESXiからProxmox VEに仮想マシンを移行する方法【Windows VMの場合】
VMware社がBroadcom社に買収された影響で、今後vSphere製品については全てサブスクリプション契約が必要となるようです。 https://www.…
syobon.jp

VMFSから直接vmdkイメージファイルをダウンロードする

ESXiの管理画面を開き、「ホスト」→「管理」→「サービス」タブの順にクリックします。

サービス一覧の中に「TSM-SSH」というサービスがあるのでクリックして選択し、「起動」をクリックします。

WinSCPを開き、下記の通り指定して「ログイン」をクリックします。

項目内容備考
転送プロトコルSCP
ホスト名10.0.20.139ESXiのIPアドレスを指定します
ポート番号22
ユーザ名root
パスワードhogehogeESXiのrootアカウントのパスワードを入力します

接続後「vmfs」というディレクトリをダブルクリックします。

続いて「volumes」をダブルクリックします。

開いた先にESXi上に作成したVMが格納されているデータストアを見つけてダブルクリックします。

各VM毎のディレクトリが表示されるので、移行したいVMのディレクトリをダブルクリックします。

今回はWin11を移行する対象として作業を進めていきます。

VMのディレクトリ内にある「<VM名>-flat.vmdk」を右クリックし、「ダウンロード」→「ダウンロード」の順にクリックします。

ダウンロード先を指定して「OK」をクリックします。

vmdkイメージファイルのダウンロードが始まるのでしばらく待ちます。

ダウンロードが完了したら、「<VM名>.vmdk」を右クリックし、「ダウンロード」→「ダウンロード」の順にクリックして同じくダウンロードします。

Proxmox VE上にVMを作成

今回はOVFテンプレートを利用しないため、事前にProxmox VE上に仮想マシンを作成する必要があります。

Proxmox VEのダッシュボードにアクセスし、「Create VM」をクリックしてVMを作成します。

「Create: Virtual Machine」の画面が表示されるので、「Name」欄に今回移行するVMの名前を入力し、「VM ID」をメモした上で「Next」をクリックします。

DVDドライブは利用しないため、「Do not use any media」にチェックを入れます。

今回はWindows 11のVMを作成するため、Guest OSの「Type」は「Microsoft Windows」、「Version」は「11/2022」を選択して「Next」をクリックします。

「System」画面ではEFI StoregeとTPM Storageの場所を指定して、SCSI Controllerを「VMware PVSCSI」に変更したうえで「Next」をクリックします。

「Disk」画面では後ほどvmdkイメージファイルをインポートするため、デフォルトで追加されているストレージの右にあるごみ箱アイコンをクリックし、削除した上で「Next」をクリックします。

「CPU」画面では、もともとESXiで作成したVMと同じコア数を指定して「Next」をクリックします。

「Memory」画面でも同じく、もともとESXiで作成したVMと同じRAMサイズを指定して「Next」をクリックします。

「Network」画面では「Model」を「VMware vmxnet3」に指定して「Next」をクリックします。

最後に確認画面が表示されるので、「Finish」をクリックします。

VMDKイメージファイルのインポート

Proxmox VEに追加したNASに「esxi-to-pve」というディレクトリを作成し、先ほどダウンロードした「<VM名>-flat.vmdk」ファイルと「<VM名>.vmdk」ファイルをコピーします。

コピーが完了したらTeraTermのようなSSHクライアントを使ってProxmox VEサーバにSSHアクセスし、下記コマンドを入力します。

cd /mnt/pve/<Proxmox VE管理画面で追加したNASの名前>/esxi-to-pve

#shokakuという名前でNASを追加した場合はcd /mnt/pve/shokaku/esxi-to-pve

先ほどコピーしたVMDKイメージファイルが保存されたディレクトリに移動するので、下記コマンドを実行してVMDKイメージファイルをインポートします。

qm importdisk <作成時にメモしたVM ID> <VM名>.vmdk <Proxmox VEのストレージ名> -format raw

#例えば、VM IDが100でコピーしたvmdkファイルの名前がWin11.vmdk、Proxmox VEのストレージ名がlocal-lvmの場合は下記の通り
#qm importdisk 100 Win11.vmdk local-lvm -format raw

すると、OVF Toolでエクスポートした物をインポートしたときに発生したエラーは起きず、下記の通り表示されてインポートが完了します。

transferred 91.3 GiB of 96.0 GiB (95.09%)
transferred 92.2 GiB of 96.0 GiB (96.09%)
transferred 93.2 GiB of 96.0 GiB (97.09%)
transferred 94.2 GiB of 96.0 GiB (98.10%)
transferred 95.1 GiB of 96.0 GiB (99.10%)
transferred 96.0 GiB of 96.0 GiB (100.00%)
transferred 96.0 GiB of 96.0 GiB (100.00%)
Successfully imported disk as 'unused0:local-lvm:vm-100-disk-2'

ディスクイメージをVMに追加する

Proxmox VEのダッシュボードより、VMDKイメージファイルをインポートしたVMを選択し、「Hardware」→「Unused Disk 0」をクリックした上で「Edit」をクリックします。

「Add: Unused Disk」画面が表示されるので、「Bus/Device」を「SCSI」に指定して「Add」をクリックします。

続いて「Options」→「Boot Order」→「Edit」の順にクリックします。

「Edit: Boot Order」画面が表示されるので、「scsi0」にチェックを入れた上で、「≡」をクリックしながらドラッグアンドドロップして「scsi0」が一番上に変更して「OK」をクリックします。

最後に「Console」→「Start Now」の順にクリックしてVMを起動します。

問題なくインポート出来ていれば、上図の通りVMが正常に起動します。

これでOVF ToolでエクスポートできなかったVMも移行できるようになります。

恐らくProxmox VE 8.1のバグのような気がしますが、修正されるまでは本記事の手順でVMware ESXiからProxmox VE 8.1にVMを移行できるので、お困りの方はぜひ参考にしてください。