更换主板后网卡名称(eth0、eth1)丢失

更换主板后网卡名称(eth0、eth1)丢失

我安装了一块新主板(以及 CPU 和 RAM)(ASRock H97 Pro4,板载 Intel 千兆以太网),并尝试让现有的 LMDE(Linux Mint Debian 版)与其配合使用。到目前为止一切顺利,但没有互联网。

互联网通过命令行进行管理,使用pon dsl-provider。现在显示

Plugin rp-pppoe.so loaded.
/usr/sbin/pppd: In file /etc/ppp/peers/dsl-provider: unrecognized option 'eth1'

sudo pppoeconf显示“抱歉,找不到可用的以太网卡。”

/sbin/ifconfig显示根本没有 eth0 或 eth1。那里唯一的条目是lo(Loopback)。

还有一些其他文章认为 eth0 或 eth1 可能只是被重命名为其他名称,例如enp0s10。但重命名后的名称会显示在 ifconfig 中,但事实并非如此。

我也尝试了sudo service networking stop(works) 和sudo service networking start。第二条命令给出:

[....] Configuring network interfaces...eth1: ERROR while getting interface flags: No such device
Failed to bring up dsl-provider.
done.

并且仍然仅lo在 ifconfig 中。

ip addr show eth0(和 eth1 类似)显示:

dig: couldn't get address for 'resolver1.opendns.com': not found

lspci -v显示:

[..]

00:19.0 Ethernet controller: Intel Corporation Ethernet Connection (2) I218-V
        Subsystem: ASRock Incorporation Device 15a1
        Flags bus master, fast devsel, latency 0, IRQ 5
        Memory at f7200000 (32-bit, non-prefetchable) [size=128K]
        Memory at f7238000 (32-bit, non-prefetchable) [size=4K]
        I/O ports at f040 [size=32]
        Capabilities: <access denied>

[..]

编辑 I:有趣的是,我以为我已经写了关于该/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 0x8086:0x100e (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:52:fe:13", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:/sys/devices/pci0000:00/0000:00:1c.5/0000:04:00.0 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:d0:91:e1:68", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x1814:/sys/devices/pci0000:00/0000:00:1e.0/0000:05:01.0 (rt61pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:21:29:66:32:7a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

# USB device 0x:0x (r8712u)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:14:5c:8b:db:40", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"

我猜想与以太网相关的两条线都来自旧主板。因此,如果我移除它们,就什么也不剩了。

此外,该文件表示它将使用 重新生成/lib/udev/write_net_rules。根据网络上的其他文章,如果文件被删除/重命名/丢失,这可能会在重新启动时手动或自动发生。但是,就我而言,重新启动时不会重新生成任何内容。/lib/udev/write_net_rules首先手动运行显示“缺少 $INTERFACE”。当执行以下操作时这些说明,这ip addr show $INTERFACE就是失败的地方。这就是我ip addr show eth0上面发布的原因。以不同的方式执行(不记得了)显示输出文件被锁定(我不认为这与文件写入权限有关)。


编辑 II:我安装了额外的 PCI 以太网卡,看看是否可行。起初,这在 lspci 中添加了一行,但在 ifconfig 中没有任何新内容。现在,经过多次重启并安装额外的 HD(副作用?),我eth2在 ifconfig 中得到了一个。我不知道这是 PCI 卡还是板载卡。

sudo pppoeconf确实接收了 eth2,但随后无法配置互联网连接,并提示“您的提供商的访问集中器没有响应”。

无论如何,我应该尝试将其重命名为 eth0 / eth1,而不是 eth2。正在努力。

答案1

好吧,这只是猜测,但我希望我猜对了。

一些背景知识

如今,设备命名和/dev文件系统中的条目创建由守护进程管理udev,该守护进程必须安装在现有 Debian 中。为了使网卡接口名称可预测,udev将它们绑定到其 MAC 地址(低级硬件地址,对于以太网卡,仅在以太网层上可见)。当udev观察到网络接口出现时首次,它会etnN为其生成一个名称,并更新包含网络接口命名规则的文件,在 Debian 中,该文件是

% ls -1 /etc/udev/rules.d/*net*
/etc/udev/rules.d/70-persistent-net.rules

顺便说一句,我相信实际上并不是它udev本身更新了这个文件,而是当 Debianudev看到网络接口卡的设备出现时调用的一些脚本,但确切的机制与我们的情况无关。

更换主板的问题在于新卡的 MAC 地址与旧主板上的卡的 MAC 地址不同,因此为新卡创建的接口的名称与“规则”文件中已有的名称不同。

怎么修

我只需使用任何文本编辑器打开该规则文件,删除与旧主板上的卡有关的所有行,然后编辑仅剩下的行以读取eth0接口名称。

保存文件后你可以运行

# udevadm trigger

看到您的网卡重新出现在名称下eth0。(如果这没有帮助,请运行service udev restart或重新启动作为最后的手段。)


附注:ip addr ...对于您的情况来说,它并不是很有用,因为它处理的是 IP 级别,而您正在努力配置链接级别 — 较低的级别。因此,您可以尝试使用命令ip link列出可用的网络“链接”,这通常意味着网络接入卡。

答案2

这是我所做的,它(某种程度上)解决了我的问题。我不会说这是一个通用的解决方案。尤其是因为不是每个人都有备用的 PCI 以太网卡。

  1. 安装 PCI 以太网卡(除板载卡外)。 在我的情况下,这是旧的 Realtek RTL-8139。
  2. 重命名/etc/udev/rules.d/70-persistent-net.rules
  3. (可能做一些不相关的事情,例如连接新的 HD,或者围着火跳舞)
  4. 重启。
  5. 运行sudo pppoeconf。如果它要求您进行备份,请执行备份。然后按照步骤操作。

结果(对我而言):

  • ifconfig 将添加的 PCI 以太网卡显示为 eth0,但是除此之外没有其他 eth* 条目(只有loppp0)。
  • 文件/etc/udev/rules.d/70-persistent-net.rules尚未重新生成。它不存在。
  • 互联网工作。

我猜这意味着板载以太网仍然没有被识别。我猜想新的板载以太网在技术上比旧的 PCI 卡要好一些。但我不知道这会带来多大的实际差异。

相关内容