目次

ESXiの仮想マシンをProxmoxへ移行する方法


ProxmoxにVMwareの仮想マシンを移設する方法は簡単、と記載をよく見かけるが、具体的な手順が見つからなかったのでまとめることにしました。

お家ラボとして、ESXiで2ノード運用していましたが、Windows11に上げるためにはTPMが必要。 TPMはvCenterが必要、と、現在の環境ではどう逆立ちしても仮想環境でWindows11が利用できない。

では巷ではどうやってWindows11の仮想環境を用意するのかというと、何やらProxmoxというDebianベースの仮想環境があるらしい。

そういえば、今のお家ラボ環境も、1つはMac miniだが、もう一つは10年以上前のマザーボードを利用した化石のような環境。 はてそういえば、7月にはAmazon プライムデーセールがあるじゃないか。

ということで、NUCなりベアボーンなり気になる構成でほしい物リストに突っ込んでいたら、そこそこの額が割引になったので、新しい環境を組んでしまった訳です。

ハード的な構成については、また改めて整理するとして、環境移設のため、Proxmox環境構築後の最重要課題である仮想マシンの移設についてまずは整理しておきます。

Windows仮想マシンのライセンス再認証について
同じハードであれば可能性は低いですが、H/Wが変わることで Windowsのライセンス再認証が必要 となる場合があります。 手元にライセンスキーは用意しておきましょう。

前提

  • Proxmox version 8.0.4, Sun Jun 25 14:50:35 CEST 2023 (現在の最新)
  • Esxi6.0 ,Esxi 7.0 環境下で動作していた仮想マシンの移設

ESXiで稼働していた仮想マシンをProxmoxに移設する方法

ESXiで稼働していた仮想マシンをProxmoxに移設するにはオンライン移設ではできません。まずはOVFエクスポートが必要となります。

OVFエクスポートは対象の仮想マシンを停止する必要があることと、WebUIにログインした後、セッションが途切れないようにする必要があります。

デフォルトだとESXiは15分程度でセッションを切ってしまいますので、WebUIにログイン後、

  • 右上の @ を選択
  • 「設定」>「アプリケーションのタイムアウト」>「オフ」

などを選択して、エクスポート中にセッションが途切れないようにする必要があります。

また、この場合、ブラウザの「ダウンロード」にOVF形式のVMイメージが保存されますので、ovf toolsなどを利用してNFSなどに直接エクスポートした方が後々Proxmox側に持っていく手間が省けます。

ESXiでOVFテンプレートのエクスポート中にセッションが途切れないようにする

OVFテンプレートはESXiからもProxmoxからもマウント可能なNFSなどに置いておくと捗ります。

OVFエクスポートした仮想マシンをProxmoxにimportする

Proxmox側に移動してきます。Proxmox側でOVFテンプレートから、仮想マシンを作成(import)します。 元のファイルは無くなりませんので、万一のバックアップとしても利用できます。

以下のようなコマンドでProxmox側にインポートします。

1
2
3
4
# 以下、例
# qm importovf <仮想マシン通番> <OVFテンプレート.ovfの保存先> <Proxmoxでの保存先> --format [qcow2|raw]

qm importovf 100 /mnt/pve/NFS/OS/OVFExport/OVF_VM.ovf local-storage --format qcow2

仮想マシンの設定を編集して起動できるようにする

当初、何も考えず「起動」をしたら、BSODとなりました。

QRコードと共に表示された文言は INACCESSIBLE BOOT DEVICEです。 めちゃくちゃ焦ったので、色々と試した結果がなかなか見つかりませんでしたのでまとめようと思います。

突然のBSOD(Blue Screen Of Death)

勘所は以下3(+1)点。

  1. ストレージを一度、「デタッチ」して「編集」可能な状態にする
  2. マシン(チップセットタイプ?)を標準から「q35」にする
  3. 移行したマシンにはネットワークアダプタがセットされていないため、「追加」する
  4. (オプション)起動後にProxmoxドライバをインストールしてアダプタを再設定する

ストレージを一度、「デタッチ」して「編集」可能な状態にする

qmコマンドでインポートした直後の仮想マシンは、なぜかハードディスクのドライバがIDEになっています。 今時、IDEなデバイスで仮想マシンを作成していないと思いますので、SATAに変更する必要がありますが、ディスクがマウントされていると変更できません。

ディスクを一度、「デタッチ(detach)」することでディスクの*バス/デバイス(Bus/Device)*が変更できるようになります。 この時、ディスクは「未使用のディスク(Unused disk)」となりますので、誤って削除しないように注意が必要です。

バス/デバイス(Bus/Device)の再設定

バス/デバイス設定をSATA(など何かしらの設定)にすると、勝手にマウントされますので、複数のディスクがある時は一つずつ行いましょう。

マシンタイプを標準から「q35」にします

qmコマンドでインポートすると、「マシン」のタイプが「i440fx」になっているようです。この状態だと起動できません。 i440fxはIDEデバイスしか認識しない(?)ようですので、「q35」に変更します。

[マシン」を「q35」に変更

ネットワークアダプタの追加

同様に、ネットワークアダプタがなぜか消えます。Windowsのライセンス認証や、NTP設定のためにも、必要となりますのでこちらはセットしましょう。

Proxmox上のWindows仮想マシンにドライバをインストールする

ハードディスクやネットワークアダプタのデバイスについて、VirtIO(準仮想化)ドライバ種別にすると、初回の起動時には立ち上がりません。 初回はVMware準拠のデバイスドライバなどにしておき、ゲストOSの中でドライバをインストール後に、VMをシャットダウン、Proxmox側でハードの種別を再度変更して認識させる必要があります。

これをしておくことで、(おそらく)少しでもProxmoxの標準仕様の仮想マシンに近づくため、性能が向上するのではないでしょうか?

具体的な手順ですが、Windowsであれば公式サイトのWindowsドライバにダウンロードのリンクがありますので、直接Proxmoxにダウンロードすることにしました。

公式サイト上のWindowsドライバ

ストレージの「ISOイメージ」から「URLからダウンロード」を選択し、上記のサイトのダウンロードリンクを入れます。リダイレクトにも対応しているようなので、Wikiのリンク先URLをコピーしてペーストで問題ないかと思います。

ESXiの時はCLIでダウンロードしないことには、一度クライアント端末にダウンロード→ストレージへアップロード、という手間が必要で、地味にめんどくさかったです。

ProxmoxはGUIから直接ストレージにダウンロードする機能があるのが便利ですね。

この後は

  1. 仮想マシンの電源を切る
  2. CD/DVDデバイスを追加して、先ほどダウンロードした「ISO」をマウント
  3. ネットワークなどハードディスク以外のデバイスの種別を「VirtIO」に変更
  4. ドライバを入れるためのダミーのハードディスク(サイズはなんでも良い)を追加して、種別を「VritIO」に変更
  5. 起動後、「デバイスマネージャ」から、「?」となっているデバイスのドライバを追加。
  6. 「?」となっているデバイスがなくなり、ハードディスクのドライバも入ったら電源を切る
  7. 仮想マシンのハードウェアを再度変更して、(不要であれば)ハードディスクのでデタッチ&削除を実行

以上。

次回は話が前後しますがProxmox自体のインストールについて整理したいと思います。