centos和redhat6.0后关于虚拟机克隆后无法启用网卡问题在redhat和centos6.0以后的版本,如果我们用虚拟机装过一个系统后想克隆一个虚拟机用的话,我们会发现clone虚拟机网卡起不来,报一下错误:Error: No suitable device found: no device found for connection 'System eth0'.或者Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. 同时我们执行ifconfig命令的时候,会发现显示eth1网卡网卡配置文件却为/etc/sysconfig/network-scripts/ifcfg-eth0。解决方法:centos—>删除这个 /etc/udev/rules.d/70-persistent-net.rules,重启后把这个文件里NAME=eth1的eth1改成eth0,同时也要修改ATTR{address}里的mac地址和/etc/sysconfig/network-scripts/ifcfg-eth0文件mac地址一致。 redhat—>redhat有点麻烦,redhat需要把/etc/sysconfig/network-scripts/ifcfg-eth0这个文件重命名为/etc/sysconfig/network-scripts/ifcfg-eth1,同时修改文件里面的DEVICE=eth0为DEVICE=eth1,然后把/etc/udev/rules.d/70-persistent-net.rules文件中NAME=eth0的删掉,重启网络服务器正常,只不过没有eth0,而是eth1.如果想改成eth0需要重启后把上述三个位置都修改后再重启。
1.查看/etc/sysconfig/network-scripts/ifcfg-eth0下和/etc/udev/rules.d/70-perisitent-net.rules的HWADDR值是否一致,若不一致,则修改HWADDR的值.以70-perisitent-net.rules下的ATTR{address}值为准.。
2.查看/etc/udev/rules.d/70-perisitent-net.rules文件,将不是eth0的网卡注释或者删除。
3.然后重启网卡
注意:记得配置DNS
请参考《Linux就该这么学》入门书籍。
centos7 无法启动网络(service network restart)错误由多种因素引起,应针对性解决:
1、 和 NetworkManager 服务有冲突,直接关闭 NetworkManger 服务就好了, 执行service NetworkManager stop,并且禁止开机启动 chkconfig NetworkManager off ,之后重启就好了;
2、和配置文件的MAC地址不匹配,直接修改 /etc/udev/rules.d/70-persistent-net.rules文件的MAC地址和 /etc/sysconfig/network-scripts/ifcfg-eth0一样就好了。
3、执行 service network restart 出现以下错误:
Restarting network (via systemctl): Job for network.service failed. See 'systemctl status network.service' 。
and 'journalctl -xn' for details.。
:根据上面的提示,执行“systemctl status network.service”输出以下的类似信息:
[root@localhost ~]# systemctl status network.service。
network.service - LSB: Bring up/down networking。
Loaded: loaded (/etc/rc.d/init.d/network)。
Active: failed (Result: exit-code) since三 2014-11-05 15:30:10 CST; 1min 5s ago。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain network[2920]: RTNETLINK answers: File exists。
11月 05 15:30:10 localhost.localdomain systemd[1]: network.service: control process exited, code=exited 。
status=1
11月 05 15:30:10 localhost.localdomain systemd[1]: Failed to start LSB: Bring up/down networking.。
11月 05 15:30:10 localhost.localdomain systemd[1]: Unit network.service entered failed state.。
解决的办法,就是修改mac地址。
查看centos7复制出来的虚拟机的mac地址,需要执行 “ip addr”,输出如下的类似信息:
[root@localhost ~]# ip addr。
1: lo:
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00。
inet 127.0.0.1/8 scope host lo。
valid_lft forever preferred_lft forever。
inet6 ::1/128 scope host。
valid_lft forever preferred_lft forever。
2: eno16777736:。
link/ether00:0f:19:10:12:f1 brd ff:ff:ff:ff:ff:ff。
inet 192.168.38.135/24 brd 192.168.38.255 scope global dynamic eno16777736。
valid_lft 1681sec preferred_lft 1681sec。
inet6 fe80::20c:11aa:ae11:4fe4/64 scope link。
valid_lft forever preferred_lft forever。
注意上面加粗加红的字,这就是新的mac地址。
接下来就剩下修改ifcfg-XXX文件了,只修改HWADDR就可以了。接下来执行service network restart就正常了。
linux可通过以下步骤修改网卡名称:
1、修改/etc/udev/rules.d/70-persistent-net.rules,将eth0 改为em1,将eth1 改为em2,注意:只需要修改name即可,不需要修改kernel;
2、重命名网卡配置文件,需要ifcfg-eth0文件重命名为ifcfg-em1,需要ifcfg-eth1文件重命名为ifcfg-em2,
mv /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-em1。
mv /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-em2。
3、编辑网卡配置文件,将名称修改过来,并把uuid删除(如没有就不用),重启服务器,重启之后网卡名称已经修改过来,网络正常。
法1:
修改UDEV文件,删除里面的内容;用命令,重新定义名字,两个名字都要改;
法2:
在centos6中,可以直接使用setup,设置一块新网卡,填上eth1、ip等内容。
在 CentOS 6 中,默认的 kudzu 这个识别硬件的服务不存在了,基本上所有的硬件管理都通过 Udev 来管理了。
如果在 Centos 6 中加了一个新的硬件,如网卡只需要重新启动 udev 就行了。
start_udev
它会重新扫描新加的硬件并做相关的处理。
如果新加的是网卡,识别不对和有时想更新网卡的名字,并不需要编辑 /etc/sysconfig/network-scripts/下的内容,向上面运行完后不正常,直接修改 udev 有关网络的配置即可。
有关网络的 udev 的具体网卡序号的配置文件是 /etc/udev/rules.d/70-persistent-net.rules 这个文件。
大概内容如下:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:78:e8:2e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 。
0x1af4:0x1000 (virtio-pci) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:04:19:6c", ATTR{type}=="1", KERNEL=="eth*", 。
NAME="eth0"
参照以上内容,最多修改一下 MAC 地址和 NAME 即可。
修改完成后,使用 udev 的命令测试下:
udevadm test /sys/class/net/eth0/。
此命令可以很详细的显示 udev 的识别和处理的过程。
注意:
新添加的硬件,如果在 setup 和 system-config-network-tui中添加了网卡,但 /etc/sysconfig/network-scripts/ 找不到配置文件时。
是因为这些命令默认会将生成的配置文件放到/etc/sysconfig/networking/devices/,只要将下面的二个配置文件放到 /etc/sysconfig/network-scripts/,再使用 。
system-config-network-tui进行配置即可。
复制代码 代码示例:cp /etc/sysconfig/networking/devices/* /etc/sysconfig/network-scripts/。
然后重新启动后就可以生效了。
法3:
1、在grub里增加biosdevname=0的启动参数,形如。
kernel /vmlinuz-2.6.32-131.21.1.el6.i686 ro root=/dev/mapper/vg_test-lv_root rd_LVM_LV=vg_test/lv_root rd_LVM_LV=vg_test/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latar。
cyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet biosdevname=0。
2、删除udev的配置文件rm -f /etc/udev/rules.d/70-persistent-net.rules。
3、把网卡配置文件改名
mv ifcfg-em1 ifcfg-eth0。
4、把网卡配置文件内容修正,把em1的全部改成eth0。
可以使用 perl -p -i -e 's/em1/eth0/g' ifcfg-eth0 或sed -i 's/em1/eth0/g' ifcfg-eth0 进行替换。
5、重启系统即可