かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  メモ. 手間はかかるが金いらずのV2V: VMwareのLinux VMをHyper-Vへ (その2)

 

 

メモ. 手間はかかるが金いらずのV2V: VMwareのLinux VMをHyper-Vへ (その2)

2024年07月02日配信
2024年07月03日更新
執筆者:山内 和朗

 前回に引き続き、Linuxゲストを実行するVMware ESXi VMのHyper-V VMへの、ddコマンドを使用した移行手順を紹介します。前回は、物理ディスク(USB外付けハードディスク)または、SMB/NFS共有に、ddコマンドを使用して、オンラインまたはオフラインでVMware ESXi VMのディスクイメージをファイル化するところまで完了しました。今回は、そのファイル化したイメージをHyper-V VMの空のディスクにコピーして、Hyper-V VMとして起動できるようにします。

 

空のディスクを持つHyper-V VMにイメージを復元

 

 Linuxのディスクイメージを保存したら、Hyper-V VMを新規作成します(画面1)。Windowsの場合と同様に、UEFIベースの場合は「第2世代」、レガシBIOSベースの場合は「第1世代」を選択します。メモリやネットワークは移行元の構成に合わせ、「仮想ハードディスクの接続」ページでは、移行元に合わせた空の仮想ハードディスクを作成して割り当てます(画面2)。ディスクのサイズは、移行元でsudo fdisk -lを実行することで確認できます。最後の「インストールオプション」では、「ブートCD/DVDからオペレーティングシステムをインストールする」を選択し、LinuxのLive DVD、例えば、Ubuntu Server 22.04 LTSのLive DVDのISOを指定します(画面3)

 

画面1
画面1 UEFIベースの場合は「第2世代」、レガシBIOSベースの場合は「第1世代」を選択する

 

画面2
画面2 移行元のVMの構成に合わせて空のVHDXファイルを作成して接続する

 

画面3
画面3 LinuxのLive DVDからインストールを開始するようにインストールメディアを指定する

 Hyper-V VMを作成したら、「設定」を開き、コア数やセキュアブート(第2世代の場合)などの設定を調整します。なお、Linuxでセキュアブートを有効にする場合は、Hyper-Vの既定のテンプレート「Microsoft Windows」ではなく、「Microsoft UEFI 証明機関」に変更してください。

 また、SCSI(第2世代)またはIDEコントローラー(第1世代)の未使用の場所にハードディライブを追加し、イメージを保存した物理ディスク(ホスト側でオフラインにする必要があります)をパススルー接続します(画面4)。なお、共有にイメージを保存している場合は、物理ディスクにコピーしておいてください。

 

画面4
画面4 ディスクイメージを保存した物理ディスクをホスト側でオフラインにし、Hyper-V VMに接続する

 

Tryモードでシェルを起動しイメージを復元

 

 LinuxのLive DVDから起動し、「Try or Install」オプションを選択して起動します。Ubuntu ServerのLive DVDの場合は、言語を選択したあと、[Help]メニューから「Enter Shell」を選択してrootのシェル(#)を起動します(画面5、画面6)。Ubuntu DesktopのLive DVDの場合は、Ubuntuのデスクトップ環境でTerminalを開いて作業してください。

 

画面5
画面5 Ubuntu ServerのLive DVDから起動し、「Try or Install Ubuntu Server」を選択する

 

画面6
画面6 [Help]メニューから「Enter Shell」を選択して、rootのシェル(#)に入る

 rootのシェル(#)が起動したら、物理ディスクをマウントし、次のようにddコマンドを実行します。イメージの適用が終了したら、「仮想マシン接続」ツールの「停止」ボタンをクリックして、VMを停止します(画面7)。

 

#  dd if=/<パス>/<ファイル名>.img of /dev/sda status=progress

 

画面7
画面7 Live DVDから起動したrootのシェル(#)で物理ディスクをマウントし、ddコマンドでイメージを/dev/sdaに適用する

 イメージをオンラインで取得した場合、Hyper-V VMに復元したLinuxを初めて起動すると、メンテナンスモード(Maintenance mode)で起動する可能性があります。その場合は、fsckコマンドを実行することで(fsck /dev/sda2など)、ファイルシステムのエラー状態を解消できます。

 Linuxが正常起動したら、VMware Toolsをアンインストールします。VMware提供のVMware Toolsの場合は、以下のドキュメントで説明されています。

VMware Tools のアンインストール(VMware Docs by broadcom)

 open-vm-toolsを利用している場合は、open-vm-toolsパッケージを削除してください。

 

$ sudo apt-get --purge remove open-vm-tools


 VMware ESXi VMとHyper-V VMでは、ネットワークインターフェースのデバイス名が異なるため、ネットワークが有効にならないはずです。Ubuntuの場合は、/etc/netplanディレクトリにある.yamlファイルを書き換える必要がありました。VMware環境では「ens###」や「eno###」のデバイス名が使用されますが、Hyper-V VMでは「eth0」や「eth1」が使用されます(画面8)。

 

画面8
画面8 VMware Toolsまたはopen-vm-toolsをアンインストールし、ネットワークを再設定したら、Hyper-V VMへの移行は完了

 

 LinuxのカーネルにはHyper-Vの統合コンポーネント(hv_vmbus、hv_storvsc、hv_netvsc、hv_balloon、hv_utilsなど)がマージされており、仮想マシンバスのサポート、SCSIコントローラーや第2世代のネットワークアダプターといった統合デバイスのサポート、動的メモリのサポート、時刻同期やシャットダウン連携のサポート、時刻同期、ハートビート、KVPデータ交換サービスのサポートなどが標準で利用でき、Hyper-V上で最適化されます。

 

・・・

メモ. 手間はかかるが金いらずのV2V: VMwareのWindows VMをHyper-Vへ (その1)

メモ. 手間はかかるが金いらずのV2V: VMwareのWindows VMをHyper-Vへ (その2)
メモ. 手間はかかるが金いらずのV2V: VMwareのLinux VMをHyper-Vへ (その1)
メモ. 手間はかかるが金いらずのV2V: VMwareのLinux VMをHyper-Vへ (その2) ←このメモ

blog_subscribe

blog_comment

最新記事