VMware ESXiの既存VM(仮想マシン)をコピーして新しくVMを作成する際に、いつも手順を忘れてて苦労するのでメモしておきます。
事前準備
ESXiのWebUIの「管理」→「サービス」で「TSM-SSH」を起動しておく。
コピー元のVMを停止しておく。
既存のVMデータのコピーと設定変更
ESXiにSSH接続します。
コピー元のVMデータが格納されているデータストアへ移動する
# cd /vmfs/volumes/datastore1/
コピー先のディレクトリ(新しく作成するVMのデータ格納用ディレクトリ)を作成する
# mkdir testhost02
仮想ディスクをコピーする
# cp -p testhost01/testhost01.vmdk testhost02/testhost02.vmdk
# cp -p testhost01/testhost01-flat.vmdk testhost02/testhost02-flat.vmdk
仮想マシン構成ファイルをコピーする
# cp -p testhost01/testhost01.vmx testhost02/testhost02.vmx
コピーできたことを確認する
# ls -l testhost02
total 52428800
-rw------- 1 root root 53687091200 Oct 20 11:36 testhost02-flat.vmdk
-rw------- 1 root root 451 Oct 20 11:35 testhost02.vmdk
-rwxr-xr-x 1 root root 3351 Oct 20 11:37 testhost02.vmx
仮想マシン構成ファイル(testhost02.vmx)の以下の箇所がコピー元の名前になっているので、コピー先の名前に変更する
# vi testhost02/testhost02.vmx
scsi0:0.fileName = "testhost02.vmdk"
displayName ="testhost02"
nvram = "testhost02.nvram"
sched.swap.derivedName = "/vmfs/volumes/62fa4fbb-18678ea4-9c6b-b8cb29dd0762/testhost02/testhost02-e823816f.vswap"
migrate.hostLog = "./testhost02-e823816f.hlog"
仮想ディスク(testhost02.vmdk)の以下の箇所がコピー元の名前になっているので、コピー先の名前に変更する
# vi testhost02/testhost02.vmdk
# Extent description
RW 104857600 VMFS "testhost02-flat.vmdk"
念のため変更漏れがないか確認する
cat testhost02/testhost02.vmx | grep testhost01
cat testhost02/testhost02.vmdk | grep testhost01
コピーしたVMデータから、仮想マシンを作成する
WebUIの「ストレージ」→「データストア ブラウザ」でコピー先の仮想マシン構成ファイル(testhost02.vmx)を右クリックし「仮想マシンの登録」を選択する
成功すれば新しく仮想マシンが登録される
新しく登録した仮想マシンを選択し、「パワーオン」をクリックする。
「この仮想マシンは移動またはコピーされている可能性があります~」と質問されるので、「コピーしました」を選択し回答すると、VMが起動する。
VM起動後、必要に応じてIPアドレスやホスト名等を変更する。