How can I change the default "ens33" network device to old "eth0" on Fedora 19?

YM *_*ang 23 linux networking fedora

I've just installed a Fedora 19 on VMware workstation 9. The default network device is "ens33" instead of "eth0" on RHEL.

The reason I have to use "eth0" is that the license component of one of our products has be to be linked with "eth0".

有一些帖子讨论了类似的问题,其中大部分是针对旧操作系统的。我还没有找到一个完全符合我的情况。

小智 34

恢复旧方式 Kernel/modules/udev 重命名以太网接口的最简单方法是向Fedora 19提供这些内核参数:

  1. net.ifnames=0
  2. biosdevname=0

为此,请执行以下步骤:

  1. 编辑/etc/default/grub
  2. GRUB_CMDLINE_LINUX行的末尾附加“ net.ifnames=0 biosdevname=0
  3. 保存文件
  4. 输入“ grub2-mkconfig -o /boot/grub2/grub.cfg
  5. 输入“重启

如果您在安装期间没有提供这些参数,您可能需要调整和/或重命名/etc/sysconfig/network-scripts/ifcfg-* 中的接口文件。

Fedora 18 之前,只需biosdevname=0就足够了。

例如,在某台机器上,经过详尽的研究,我得到:

- 无参数:NIC 标识为“ enp5s2 ”。
- 参数 biosdevname=0:NIC 标识为“ enp5s2 ”。
- 参数 net.ifnames=0:NIC 标识为“ em1 ”。
- 参数 net.ifnames=0 AND biosdevname=0:NIC 标识为“ eth0 ”。

  • 此解决方案也适用于 Fedora 20。谢谢。 (3认同)

Chr*_*own 10

您可以使用 udev 规则执行此操作,如下所示:

cat > /etc/udev/rules.d/99-rename-to-eth0.rules << EOF
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="$(cat /sys/class/net/ens33/address)", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOF
Run Code Online (Sandbox Code Playgroud)


小智 8

在 Fedora 20 中,事情似乎发生了进一步的变化。

1) grub 内核参数
是的,"net.ifnames=0" 和 "biodevame=0" 似乎都是必要的。

2) /etc/sysconfig/network-scripts/ifcfg-ethX
是的,这些也是必要的。

3) /etc/udev/rules.d/60-net.rules
如果你有多个接口并且想控制每个设备的命名而不是让内核按照自己的方式做,/etc/udev/rules.d/60 -net.rules 似乎有必要覆盖 /usr/lib/udev/rules.d/60-net.rules,如下所示。

# PCI device 0x1011:0x0019 (tulip) {SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:c0:f0:4c:f5:78", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="60:a4:4c:b5:26:48", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

4)yum remove biosdevname似乎没有必要。