问题 :在Vmware装了linux(redhat or centos),复制或者保存ovf文件重新deploy之后,发现找不到网卡eth0,

在输入ifconfiga的时候,,查看eth0的时候,提示我no device found(设备没法找到),而是会顺次将网络信息配置在eth1,再次复制会出现eth2,依次类推。。。


解决方法:

为什么会产生这个问题呢,还需要从UUID谈起(UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUIDAPI),虚拟机同样会有一个UUID,而且这个UUID是唯一的。

虚拟机的UUID一般和虚拟机配置文件的位置和物理主机有关。当我们对一个虚拟机系统做移动操作的时候,我们不需要新建一个UUID。当我们复制一个虚拟机的时候我们应该选择建立一个新的UUID,来保证此虚拟机的唯一性

 

而当我们copy的时候VM自然会为我新建一个UUID,一些新的Linux版本是把以太网与Mac地址绑定,当新的UUID建立的时候,Mac地址就被改变了,但由于eth0设备所装载的配置与读取默认配置的Mac地址不一致。

另外的解决方案:进入/etc/sysconfig/network或者/etc/sysconfig/network-scripts,编辑eth0配置文件。比较在配置文件里面的Mac地址与输入ifconfig输出的mac地址,如果两者不一致,统一为ifconfig输出的mac地址,然后重启

 

sudo rm /etc/udev/rules.d/70-persistent-net.rules能够成功的原因:

该文件的内容:

# This file was automatically generated by the /lib/udev/write_net_rules
# 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.

# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d2:3f:2c", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:18", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:22", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:c8:3a:15", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

 

将这个/etc/udev/rules.d/70-persistent-net.rules删除,重启,网卡eth0成功启动,并重新生成/etc/udev/rules.d/70-persistent-net.rules文件

    自己成功的做法是修改ifcfg-eth0文件,把UUID和HWADDR这两行注销掉,重启系统

    删除/etc/udev/rules.d/70-persistent-net.rules文件测试并不可行