您好我想知道内核是如何命名网络接口的。我为 Rhel 自动安装了专用硬件的预定义网络接口名称。我想知道如果这个名称要改变,我是否要更换一张 NIC 卡。
我发现:内核根据 PCI 总线号、插槽号和设备号检测设备硬件位置。除非您将其拔下并将其移至不同的扩展槽,否则这种情况不会改变。新名称基于这些物理参数,因此它们不会从一个引导会话更改为下一个。
但我不确定它们对设备编号的含义。这个网卡的Mac地址是否存储在ROM中?如果是,则可能会更改网络接口的名称
您好我想知道内核是如何命名网络接口的。我为 Rhel 自动安装了专用硬件的预定义网络接口名称。我想知道如果这个名称要改变,我是否要更换一张 NIC 卡。
我发现:内核根据 PCI 总线号、插槽号和设备号检测设备硬件位置。除非您将其拔下并将其移至不同的扩展槽,否则这种情况不会改变。新名称基于这些物理参数,因此它们不会从一个引导会话更改为下一个。
但我不确定它们对设备编号的含义。这个网卡的Mac地址是否存储在ROM中?如果是,则可能会更改网络接口的名称
我创建了一些 notwork 脚本/etc/sysconfig/network-scripts
,以便在我的系统启动时设置我的网络(RHEL8.3)。在这个设置中,我有我的物理接口,我也有我的桥接和绑定接口。例如,我的第二个桥接接口
[root@svr_1 network-scripts]# cat ifcfg-bond1
DEVICE=bond1
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100 updelay=60000 primary=ens4f0"
BRIDGE=breth0
NM_CONTROLLED=no
MTU=9000
ONPARRENT=yes[root@svr_1 network-scripts]# cat ifcfg-breth1
DEVICE=breth1
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
MTU=9000
IPADDR=xx.xx.xx.xx
NETMASK=xx.xx.xx.xx
当系统启动时,只有物理接口显示为 ip a show。我在物理接口配置上更改了一些值,重新启动 NetworkManager,我看到更改已应用,但此绑定/桥接接口未显示。知道我展示了什么吗?
[root@svr_1 net]# ls -la /sys/devices/virtual/net/
total 0
drwxr-xr-x 3 root root 0 Jun 9 11:12 .
drwxr-xr-x 22 root root 0 Jun 9 10:21 ..
drwxr-xr-x 5 root root 0 Jun 9 10:21 lo
我在 RHEL7.6 上使用了同样的方法,它工作正常。
我需要安装一些我自己构建到 RHEL8.3 中的 RPMS。我创建了 RPMS,而不是将它们添加到 red hat 的 iso 映像中。我将它们添加到 BaseOS 目录下,并在安装 red hat 时挂载映像并配置 /etc/yum.repos.d/something.repo,如下所示。
[InstallMedia]
name=Red Hat Enterprise Linux 8.3.0
enabled=1
baseurl=file:///mnt/old_valid/BaseOS
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
mediaid=None
metadata_expire=-1
gpgcheck=1
cost=500
这工作正常我可以运行 yum update 并查看一切正常。当我尝试安装我的私有构建 rpm 时,我得到
Error: Unable to find a match: svr_common
即使二进制文件在那里。
我尝试通过在已安装目录下提供 rpm 的完整路径来安装它,并且可以正常工作。
yum install /mnt/old_valid/BaseOS/Packages/svr_common-0.0-10000.x86_64.rpm
似乎我需要在 repo 中配置其他东西,但不确定那是什么。
我对 systemd 服务的行为有点困惑。我有上述系统服务。
[Unit]
After=libvirtd.service
[Service]
Type=simple
Environment=VM_XML=xxxxxxx
ExecStartPre=/usr/bin/bash /usr/local/lib/common/createQcowImage.sh ${VM_XML}
ExecStart=/usr/bin/bash /usr/local/lib/common/createVM.sh ${VM_XML}
ExecStop=/usr/bin/bash /usr/local/lib/common/destroyVM.sh ${VM_XML}
Restart=always
[Install]
WantedBy=multi-user.target
当这个单元在 createVM.sh 脚本中启动时,它会创建一个 VM 并监控它的状态。如果 VM 的 PID 不再存在,则脚本以返回码 1 退出。我注意到,当发生这种情况时,ExecStop 被执行(我正在管理 /var/log/messages,当我手动销毁 VM 时)使用 virsh destroy 我在从 ExecStop 执行的脚本中播下用于调试的回声,以打印在 /var/log/messages 中)。这是 systemd 的默认行为吗?在单元退出时执行 ExecStop(我也尝试使用代码 0 退出,这是相同的行为)。这不是我真正想做的,因为在我销毁 VM 后,ExecStop 会尝试销毁导致 systemd 单元故障的同一 VM。有没有办法避免这种情况?