复制出的虚拟机启动不能ping通的解决思路分析
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了复制出的虚拟机启动不能ping通的解决思路分析相关的知识,希望对你有一定的参考价值。
用clone方法复制出的Ubuntu虚拟机启动后,尽管IP等网络信息不和其他虚拟机冲突,但就是无法ping通其他虚拟机。
创建得到的虚拟机信息:
?
复制得到的虚拟机信息:
?
? ? ? ? ?通过观察网络配置文件,发现两台虚拟机的网卡名称是最大的区别。按照常理,当系统中只有一块网卡时,Linux的硬件侦测程序会把它标识为第一块网卡,即在Ubuntu中应显示为编号0而不是1。这就意味着,复制得到的虚拟机中还应存在一张网卡,只不过由于未被侦测到而未能挂载到Ubuntu系统中,而这张看不见的网卡就是编号为0的第一网卡。
经查询Ubuntu的硬件注册机制文档得知,/lib/udev/writenetrules会在系统安装好后自动生成一个记录当前网卡硬件信息的文件70-persistent-net.rules,这个文件一般存放在目录 /etc/udev/rules.d/ 中。
它的内容大致如下:
***# This file was automatically generated by the /lib/udev/writenetrules
program, run by the persistent-net-generator.rules rules file.
You can modify it, as long as you keep each rule on a single
line, and change only the value of the NAME= key.
net device ()
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="00:0C:29:D5:2C:03", ATTR{type}=="1", KERNEL=="eth", NAME="eth0"*
?
? ? ? ?这个文件中记录了网卡的MAC地址及对应的设备名称。Linux开机后,系统会检查当前挂载的设备是否与配置文件中记录的信息向一致,入不一致就不会激活相关设备。具体到此处而言就是,Ubuntu开机后,设备侦测程序发现当前网卡的MAC地址与/etc/udev/rules.d/70-persistent-net.rules 中所记载的信息不一致,因此会将编号0保留给70-persistent-net.rules已记录的MAC地址(尽管编号0未挂载到当前系统)、将编号1分配给当前网卡的MAC地址并拒绝激活当前网卡。
? ? ? ? 因此,在解决这类故障时有两种思路:一是修改 70-persistent-net.rules 中的设备信息记录,二是使已存在的记录失效。
? ? ? ? 如果是在生产环境中解决此类故障,建议修改 70-persistent-net.rules 中的记录,或者采用注释的方式使记录失效。如果是实验环境或者非重要环境可以删除文件 70-persistent-net.rules 或者以修改文件名的方式备份。
? ? ? ? ?CentOS 6后,CentOS改变了设备的命名方式,采用一致性设备命名规范,同时支持biosdevname和net.ifnames规范,因此不能再依靠设备编号来识别网卡了,但网卡的MAC地址是全球唯一的,因此在CentOS中解决这类故障时,上述两个思路依旧有效。
? ? ? ? 更换网卡后,新网卡不能被激活也是因为有这个文件的存在,删除后重启系统即可激活新网卡。
? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?孟伯,20200304
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?交流联系:微信 1807479153 ,QQ1807479153
以上是关于复制出的虚拟机启动不能ping通的解决思路分析的主要内容,如果未能解决你的问题,请参考以下文章
虚拟机ubuntu不能ping通主机,但是主机可以ping通虚拟机。虚拟机也不能ping通网络,主机却可以,啥原因