私の構成は LVMを2つ使用し、root用とSwap用としている。xmlのvncの設定は固定portにしている。IPアドレスは固定。kvmで作られるvirbr0はVM側では使っていない。でクローンの作成は(クローンされたVMで使うLVMは事前に作っておく)
# virt-clone -o 元になるVMの名前 -n クローンされたVMの名前 -f イメージファイル又はLVMのpath -f 2つ目のLVMのpath
ここで、-fのオプションが2つあるのは、LVMでroot用とswap用がある為(もちろんオリジナル側も同じ)
但し、訂正が必要
1:eth0がudevでeth1リネームされ、eth0がないのでエラーになる(起動画面で青いバーが長くなるときにAlt+dで詳細が表示される。この時eth0が無いのでイニシャライズを遅らせるとの表示が出る)
2:IPアドレスが同じになっている
3:ホストの名前が同じになっている。
4:/etc/libvirt/qemuに出来るホストの設定ファイル(VM名.xml)のvncの設定を変更する必要がある。(私はvncポートを固定で使っている)
対処
1:/etc/udev/rules.d/70-persistent-net.rulesの中のeth0の記述がある部分の行をコメントアウト(オリジナルのVMが2つ持っていればeth1も)。eth1の記述をeth0に変更する(2つなら2、3を0、1に)。
2:/etc/sysconfig/network-scripts/eth0のIPADDRをユニークな固定IPに変更する。この時MACアドレスがあればコメントアウトしておく。(/etc/livbirt/qemuにある設定ファイルで設定しておいくべき)
3:/etc/sysconfig/networkのHOSTNAMEをユニークな名前に変更する。
4:/etc/libvirt/qemuに出来るホストの設定ファイルの <graphics にあるport=をユニークなポートに、但し他のサービスとかぶらないように5900〜5909くらいが良い。/etc/servicesにあるポートとかぶらないようにする。又、iptablesが有効になっているときは設定したportを空ける事。
以上を設定し(xmlファイルを変更しているので)、新しいVMを停止し、
# service libvirt restart
でlibvirtを再起動し、その後新しいクローンされたVMを起動する。
追記:centos 6.2のGUIから同じ事をしていた時、[Errno 28] デバイスに空き領域がありません。とエラーが出た。同じ事をvirt-cloneからすると
Error cloning diskimage /dev/mapper/vgkvm-webroot to /dev/vgkvm/testboot1: [Errno 28] デバイスに空き領域がありません
と出た。つまりwebroot(10GB)をtestboot1(100M)にコピーをしようとしてサイズが足りないと起こられた (この時はコピーされる側のLVMは3つ、/boot用(100M)、/用(10G)、swap用(2G))。つまり /etc/libvirt/qemuにある設定ファイル(xml)に書いてある順番通りに、クローンされる側のdisk(私はLVM)も指定しないとダメだって事。