All Articles

Hyper-V 仮想マシンを Proxmox に移植する方法

Proxmox に載せている解析環境を立て直すことにしたのですが、さすがに 1 からマシンのセットアップを行うのはめんどくさすぎたので、別の検証機の Hyper-V 仮想マシンを移植してみることにしました。

Proxmox はバージョン 8.2.7 を使用しています。

もくじ

Hyper-V のマシンをエクスポートする

以下の記事を参考にしたところ、どうやら vhdx 形式の仮想ディスクがあれば Proxmox に仮想マシンを移植できそうです。

参考:様々な仮想基盤用のVMをProxmox環境に移行してみる│チラシの裏

そこで、Hyper-V マネージャ上で既存のマシンをエクスポートし、その中から取り出した仮想ディスクを USB 経由で Proxmox サーバにコピーすることにします。

image-20241104102447274

image-20241104102828273

Proxmox 側で仮想マシンを作成する

続いて、移植先の仮想マシンを Proxmox 上で作成しておきます。

CD とディスクの設定を削除した以外は、普通に仮想マシンを作成する際と同じ手順でした。

image-20241104102730756

Proxmox にファイルをコピーする

まず、仮想ディスクファイルをコピーしたメディアが /dev/sdb1 としてサーバに接続されたことを確認します。(今回は外付け M.2 SSD を使用しているので、SSD と識別されたようです)

image-20241104103339615

この中からファイルを取り出したいので、シェルを起動して適当なマウントポイント(/mnt/ex-disk1) を作成して /dev/sdb1 をマウントします。

mkdir -p mnt/ex-disk1

# /etc/fstab は使用しない
mount /dev/sdb1 /mnt/ex-disk1

これで仮想ディスクファイルを取り出せるようになりました。

Proxmox で仮想ディスクをインポートする

これで USB 経由で仮想ディスクを参照できるようになったので、Proxmox のシェルで以下のコマンドを順に実行し、仮想ディスクをインポートしていきます。

# 仮想マシンの ID が 100、インポート先は local-lvm を指定
qm importdisk 100 /mnt/ex-disk1/Ubuntu22.04.vhdx local-lvm

image-20241104105234779

インポートが完了すると、local-lvm に指定した ID(100) のディスクが追加されたことを確認できます。

image-20241104105347430

続いて作成した ID 100 の仮想マシンを開くと、インポートした仮想ディスクが [未使用のディスク 0] として表示されていることを確認できます。

image-20241104105557120

続けて [編集] ボタンからこのディスクをアタッチした後、[オプション] の [ブート順] の設定からアタッチしたディスクを起動ディスクとして有効化します。

image-20241104105958600

これで仮想マシンを起動すると、Hyper-V で作成したマシンが Proxmox で起動することを確認できます。

まとめ

忘れたころに使いそうな手順だったのでまとめておきました。

※ ちなみに、今回上記の方法で移植したマシンのうち、minimal の Ubuntu Server に xface をインストールした仮想マシンは移植後に noVNC のコンソールに GUI 画面は表示されたものの、キーボード入力を受け付けない問題が発生しました。