刚刚安装后,我无法在 RHEL 7 中找到 eth0。即使我在 /etc/sysconfig/network-scripts/ 目录中创建了 eth0。在网络脚本中创建 eth0 后,我无法重新启动网络服务。我运行命令:
service network restart
出现以下错误:
Job for network.service failed.
See systemctl status network.service and journalctl -xn for details.
编辑:更多细节
运行命令 systemctl status network.service 后,我将收到以下错误:
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: failed (Result: exit-code) since Mon 2014-11-24 00:02:21 IST;
Process: 626 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Nov 24 00:02:21 htpc.homenet network[626]: Bringing up loopback interface:[Ok]
Nov 24 00:02:21 htpc.homenet network[626]:Bringing up interface eth0 :ERROR[/etc/sysconfig/network-scripts/ifup-eth]Device does not seem to be present,delaying initialization.
Nov 24 00:02:21 htpc.homenet network[626]:network.service:control process exited,code=exited status=1
Nov 24 00:02:21 htpc.homenet network[626]: Failed to start LSB:Bringing Up/down networking
Nov 24 00:02:21 htpc.homenet network[626]:Unit network.service entered failed state
答案1
RHEL7 使用令人愉快的反复无常和任意的设备名称更改,以使其操作系统的非服务器或笔记本电脑版本保持敏感,以维持其业务(这实际上也是 systemd 的广告原因,尽管其利益值得怀疑)。
它会像这样设置你的网络设备enp132s456
,如果你用 NIC 调整插槽,则会更改它们,并且无需快速修复即可给过去 20 年使用 Linux 的任何人带来巨大的惊喜。但他们似乎认为这是好的。
grep -q ifnames /etc/sysconfig/grub ||\
sed -i~ '/^GRUB_CMDLINE_LINUX/s/"$/ net.ifnames=0"/' /etc/sysconfig/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
exec init 6
这就是目前的解决办法。
我希望它能继续作为一个修复程序工作,因为它是一个内核问题,并且很可能成为我们迁移到的任何新内核的一个功能,无论是否有 systemd。
答案2
只需禁用并重新启动 NetworkManager 后,我就能获得网络工作:
systemctl disable NetworkManager
systemctl restart NetworkManager
曾在 Rhel7 上工作过
答案3
RHEL/CentOS 7.x 使用 一致的网络设备命名。它也可能被称为可预测的网络接口名称。
无论如何,我发现最好的方法是以太坊命名回是
yum remove biosdevname
- 编辑
/etc/default/grub
- 附加
net.ifnames=0
到GRUB_CMDLINE_LINUX
- 附加
biosdevname=0
到GRUB_CMDLINE_LINUX
如果你有生物设备名称已安装 grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
{将 centos 替换为 rhel}- 重启
- eth0 和 eth1 等现在应该在那里,而不是使用的命名语法。
你不需要搞乱下面的任何东西/etc/sysconfig/
。