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

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

 

 

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

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

 以前、Windowsゲストを実行するVMware ESXi VMの仮想ハードディスク(VMDK)を、Hyper-V VMのVHDX形式に変換し、Hyper-V VMとして移行する、少し手間はかかりますが、お金のかからない方法を紹介しました。今回は、Linuxゲストを実行するVMware ESXi VMのHyper-V VMへの移行です。今回は、DISK2VHDのような外部のツールは1つも使いません。Linuxに標準搭載されているコマンドを使います。

 

 Linuxにはさまざまなディストリビューションが存在します。バージョンによっても大きな違いがあることがあります。今回紹介する方法は、大筋は共通していますが、細かな部分はLinuxディストリビューションやバージョンによって変わってくるかもしれません。今回は、「Ubuntu Server 22.04 LTS」を例に説明します(画面1)。話を簡単にするため、移行元のVMware ESXi VMはOSディスクのみのシンプルな構成です。

 

画面1
画面1 移行元のUbuntu Server 22.04 LTSを実行するVMware ESXi VMにsshで接続したところ

 

ddコマンドを使用して、オンラインでイメージ化

 

 Windows VMの移行では、DISK2VHDユーティリティを使用し、NTFSまたはexFAT(※いずれも4GBを超える大きなファイルを作成可能)のUSB外付けハードディスクなどの物理ディスク(VMware ESXi VMのコンソールと設定にアクセスできる場合)やSMB共有上のパスにVHDXファイルを作成しました。

 Linux VMの場合も、同じように物理ディスク(VMware ESXi VMのコンソールと設定にアクセスできる場合)やSMBまたはNFS共有上のパスにディスクイメージを保存することにします。DISK2VHDはWindows用ユーティリティであるため、Linuxの移行には使えません。

 代わりに使うのが、「dd」コマンドです。ddコマンドは、ファイルのコピー、ディスクイメージの作成と復元、起動可能デバイスの作成、データ消去、ディスククローン、バックアップと復元など、さまざまな用途で利用できる、UNIX/Linuxで標準的に使える古くからあるツールです。ddコマンドはファイルシステムの種類やOSに関係なく、コピー元からコピー先にブロック単位でコピーできるのが特徴です。

 稼働中のVMware ESXi VMからオンラインでディスクイメージを作成するには、物理ディスクや共有をマウントして、次のようなコマンドを実行し、マウント先のパスにイメージ(拡張子.imgは自由)を保存します。この例は、OSディスクが/dev/sdaの場合の例です(画面2)。別ディスクをデータディスクとして利用している場合は、そのディスクに対応するデバイスについても、ddコマンドでイメージ化します。なお、共有フォルダーやUSBディスクのマウント方法についての説明は省略します。

 

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

 

画面2
画面2 ddコマンドでディスク「/dev/sda」をイメージ化する

 

ddコマンドを使用して、オフラインでイメージ化(推奨)

 

 オンラインでのイメージ化では、VMware ESXi VMでダウンタイムが発生することはありませんが、作成したディスクイメージには整合性の問題がある可能性があります。より確実にディスクをイメージ化するには、Windowsの場合と同様に、第3のOS環境で起動して、オフラインのディスクに対してddコマンドを実行します。この場合、作業を行う人は、VMware ESXi VMのコンソールと設定にアクセスできる必要があります。


 Ubuntuの場合は、再起動して起動直後に[Esc]キーを入力し、GRUBブートローダーにアクセスします。GRUBメニューから「Advanced options for ubuntu」「*Ubuntu, ... (recovery mode)」の順番に選択して、「Recovery Menu」から「Drop(Drop to root shell prompt)」を選択します(画面3)。

 

画面3
画面3 Ubuntuを再起動し、GRUBメニューからRecovery modeに入る

 rootユーザーのシェルが起動したら、物理ディスクをマウントして、ddコマンドを実行し(rootなのでsudoは不要)、物理ディスク上のパスにイメージを保存します(画面4)。

 

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

 

画面4
画面4 Recovery modeのrootのシェル(#)でddコマンドを実行し、物理ディスク上のパスにイメージを保存

 

次回(その2)へ続く...(Windows編はこちら

blog_yamanxworld_subscribe

blog_yamanxworld_comment

blog_yamanxworld_WP_2024fh_TOP5

最新記事