现象:原本的源主机的ifcfg-eth0,在克隆完的克隆机上显示为eth1,导致service network restart 也无法启用网络。
原因:因为在centos6中,有一个规则文件来控制网卡。这个文件的位置是/etc/udev/rules.d/70-persistent-net.rules
1.如果是单独使用此虚拟机,比如nat模式,经过实验,没有ifcfg-eth1文件,也能够通过service network restart 来起网络。
2.如果是和源主机处在同时使用在同一网段,就会造成相同的mac地址,会有arp冲突。这是需要解决的问题!
以下是我写的脚本用于解决这个问题(centos6.8):
#!/bin/bash
cd /etc/udev/rules.d/
sed -i '8d' 70-persistent-net.rules
sed -i 's/eth1/eth0/' 70-persistent-net.rules
cat 70-persistent-net.rules | grep address | awk -F, '{print $4}' | awk -F\" '{print $2}' > /tmp/xx
cat /tmp/xx | tr 'a-z' 'A-Z' > /tmp/qq
md=$(cat /tmp/qq)
cd /etc/sysconfig/network-scripts/
sed -i '4d' ifcfg-eth0
sed -i '/HWADDR/c\HWADDR='"$md"'' ifcfg-eth0 /其中变量要使用'"(变量)"'才能有效
sed -i '/ONBOOT/c\ONBOOT=yes' ifcfg-eth0
sed -i '/NM_CONTROLLED/c\NM_CONTROLLED=no' ifcfg-eth0
sed -i '/BOOTPROTO/c\BOOTPROTO=static' ifcfg-eth0
read -p "please input ipaddr : " ipa
echo "ipaddr is : $ipa"
read -p "please input netmask : " net
echo "netmask is : $net"
read -p "please input gateway : " gat
echo "gateway is : $gat"
sed -i '/BOOTPROTO/a\IPADDR\='"$ipa"'' ifcfg-eth0
sed -i '/IPADDR/a\NETMASK\='"$net"'' ifcfg-eth0
sed -i '/NETMASK/a\GATEWAY\='"$gat"'' ifcfg-eth0
service network restart
reboot
chmod u+x (你的脚本).sh
./(你的脚本)
可以直接拷贝使用。