最近,一台虚拟机是从外网下载的,然后导入本地测试环境使用。
发现一个奇怪的问题:修改了 /etc/sysconfig/network-scripts/ifcfg-eth0 保存后,
重启网络服务( systemctl restart network)是有效的。但是重启系统之后就失效了。
ifcfg-eth0内容被重置了。
尝试了关闭自带网络管理工具,
systemctl stop NetworkManager systemctl disable NetworkManager
无效。重启后,ifcfg-eth0内容仍被重置。
打开这个文件后,顶部有一行注释提示:
# Created by cloud-init on instance boot automatically, do not edit. # BOOTPROTO=dhcp DEVICE=eth0 HWADDR=fe:fc:fe:46:95:ba ONBOOT=yes TYPE=Ethernet USERCTL=no
好吧,找一找服务:
systemctl list-unit-files
发现了这4行,应该是和最下面一行有关:
cloud-config.service enabled cloud-final.service enabled cloud-init-local.service enabled cloud-init.service enabled
于是,上网搜了俩小时,尝试过N次后,最终找到了某位大神给的正确答案:
在 /etc/cloud/cloud.cfg中添加内容,禁止 cloud-init服务接管网络,如下图所示:
network: config:disabled
后续执行以下操作:清理,检查cloud-init配置文件,再次检查eth0配置,重启测试。
cd /usr/lib/python2.7/site-packages/cloudinit/sources/ rm -rf __init__.pyc rm -rf __init__.pyo rm -rf /var/lib/cloud/* rm -rf /var/log/cloud-init* cloud-init init --local cat /etc/sysconfig/network-scripts/ifcfg-eth0 reboot