Linux网卡eth0变成eth1修改方法

当克隆或者重装虚拟机后,或者电脑更换了主板后,再启动系统时会发现系统下不再有eth0,而变成了eth1,当使用/etc/init.d/network重启网络时,会提示找不到设备eth0及eth1的启动脚本。

由于网卡mac地址变了,70-persistent-net.rules中仍然保留了老网卡的内容,新网卡则被识别为eth1。
将表示老网卡的行注释掉,然后将表示新网卡的行中eth1改成eth0,在把网卡配置文件ifcfg-eth0的mac地址改成新网卡mac地址,重启。

操作:

[[email protected] ~]# vi /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, and change only the value of the NAME= key.

# PCI device 0x1022:0x2000 (pcnet32) (custom name provided by external tool)
# SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:50:52:46″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:46:6f:cd”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0

[[email protected] ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=”eth0″
BOOTPROTO=”static”
HWADDR=”00:0C:29:46:6f:cd”
IPADDR=”192.168.1.239″
NETMASK=”255.255.255.0″
NETWORK=”192.168.1.0″
ONBOOT=”yes”

为什么原来的eth0会变成eth1?

很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth1。

发表评论

电子邮件地址不会被公开。 必填项已用*标注