Symptom description:
Recently, the virtual machine system was installed with fedora9, which was cloned or copied for future use. When the cloned virtual machine is used, the network card eth0 in the basic system is lost to the new system. If ifconfig-A is used, only eth1 is found. Because the network configuration of the basic system is based on eth0, and eth1 does not have network-related configuration, in this case, the network in the virtual machine must be normal, and only the network configuration of eth1 should be added, in this way, it is inconvenient to modify the NIC configuration every time you perform multiple Linux system tests. Furthermore, if the clone VM continues to clone or copy a new Vm, the nic id will be automatically added with 1 (the second clone will be changed to eth2 ), dmesg shows that the kernel only recognizes the network adapter eth0.
Cause analysis:
Many Linux distribution uses udev to dynamically manage device files and name them based on device information. For example, in Debian Etch, udev identifies the NIC during system boot and records the MAC address and nic name in the udev rule script. VMware automatically generates the MAC address of the VM. In this way, because the VM of the basic system has recorded that the MAC address of the NIC of the VM corresponds to eth0 of the NIC, the MAC address of the cloned VM is changed, udev automatically maps the Mac to the network adapter eth1. Similarly, udev records all the relationships between recognized MAC addresses and network card names. Therefore, each clone Nic name is automatically added with 1, and its real-time kernel only recognizes one network card, the network configuration related to the NIC name has not changed.
Solution:
Network search finds that In Debian Etch, udev stores the correspondence between MAC and nic name in/etc/udev/rules. d/z25_persistent-net.rules, In the cloned virtual machine as long as you delete the line with name = "eth0" and restart the system. For example, delete the following two lines in Debian etch:
# PCI device 0x1022: 0x2000 (pcnet32) subsystem = "Net", drivers = "? * ", Attrs {address} =
"00: 0C: 29: 4C: 46: 01", name = "eth0 ″
Modify the 70-persistent-net.rules file under/etc/udev/rules. d under my fedora9.
Delete # Advanced Micro Devices [amd] 79c970 [pcnet32 Lance] (rule written by Anaconda)
Subsystem = "Net", Action = "add", drivers = "? * ", ATTR {address} =" 00: 0C: 29: AD: 06: 2a ",
ATTR {type} = "1", kernel = "ETH *", name = "eth0 ″
Modify "eth1" of the corresponding line of eth1 to "eth0.
Another method is to delete all the contents and restart the system. The system also discovers the hardware of the NIC and generates the file again.
OK!
From: http://blog.chinaunix.net/u3/97076/showart_2015984.html