コピー実行
以下のコマンドで起動します。
$ sudo virt-clone --original vm10 --name vm11 --file vm11.qcow2 --mac 52:54:00:12:34:57
設定変更
その後vm11を起動してホスト名、MACアドレス、IPアドレスを変更します。
ホスト名変更
# vi /etc/sysconfig/network HOSTNAME=vm11 # この行を修正
さらに今すぐ変更するためにコマンドも実行します。
# hostname vm11
一旦ログアウトしてログインし直すとプロンプトも変わりました。
MACアドレス、IPアドレスを変更
# service network stop # cd /etc/sysconfig/network-scripts # ls ifcfg-eth0* ifcfg-eth0 ifcfg-eth0.bak # rm ifcfg-eth0 # mv ifcfg-eth0.bak ifcfg-eth0 # vi ifcfg-eth0 HWADDR=52:54:00:12:34:57 # この行と IPADDR=192.168.11.242 # この行を修正 # service network start
設定変更用のスクリプト
毎回手動で上記の設定変更を行うのも面倒なので、シェルスクリプトを書いてみました。ゲストOSに入れておきます。
#!/bin/bash if [ $EUID -ne 0 ]; then echo "This script must be run by root." 1>&2 exit 1 fi if [ $# -ne 1 ]; then echo "Usage: chgvm hostname" 1>&2 exit 1 fi hostname=$1 case $hostname in vm10) ipaddr=192.168.11.241 macaddr=52:54:00:12:34:56 ;; vm11) ipaddr=192.168.11.242 macaddr=52:54:00:12:34:57 ;; *) echo "Wrong hostname: $1" 1>&2 exit 1 esac hostname $hostname sed -i -e "s/^HOSTNAME=.*/HOSTNAME=$hostname/" /etc/sysconfig/network service network stop cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ DEVICE=eth0 BOOTPROTO=none ONBOOT=yes HWADDR=$macaddr NETMASK=255.255.255.0 IPADDR=$ipaddr GATEWAY=192.168.11.1 TYPE=Ethernet EOF service network start
上記のvirt-cloneでコピーした後、以下のようにして変更します。
host$ sudo virsh start vm11 host$ sudo virsh console vm11 # ここでrootでログインして上記のシェルスクリプトを実行
virt-cloneした後はネットワークの設定がvm10と同一になっているので、まずvm11だけを起動してsshではなくconsoleからログインして、上記のシェルスクリプトで設定を変えるという手順をとる必要があります。