背景
最近, 自己组装了台主机, 默认的操作系统是windows 10, 自己烧了个CentOS 8, 安装了双系统 (中间遇到了不少问题, 有时间再写一篇笔记)。 系统安装完成后, 发现无法联网, 通过 ifconfig/ ip addr 等命令查看, 发现系统并没有检测到网卡, 只有 lo 和virbr0 两块虚拟卡。
原因定位
一开始以为是自己从阿里镜像上下载的CentOS 8镜像不完整导致的, 考虑是否换成CentOS 7再来安装一次,但在网上搜索了一下, 发现也有人遇到过类似的问题, 在安装CentOS 7/8的情况下都出现了网卡识别不了的情况, 也就是说, 即使再安装成CentOS 7可能也会遇到同样的问题, 排除了发行版本的因素。
在一篇文章https://www.cnblogs.com/braveym/p/9091025.html中, 看到一名运维工程师提及在运维一批机器时, 因为是组装机, 所以费了不少功夫, 跟自己的情况挺类似的。
通过lspci的命令(lspci | grep -i ethernet ), 查到自己的网卡型号:r8125 (Ethernet controller: Realtek Semiconductor Co., Ltd. Device 8125 (rev 01)), 这卡网卡相对来说比较新, Linux自带的通用网卡驱动不适用, 需要自行安装驱动。
安装过程
下载驱动安装
从官网https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software 下载 驱动, 考虑到CentOS 8自带的内核版本过于4.18, 下载了 r8125-9.007.01.tar.bz2, 复制到U盘上。
因为机器是离线的, 没有办法通过网络复制进去或者在主机上直接下载, 复制到U盘后。 通过命令mount /dev/sdb4 /mnt/udisk
挂载到机器上, 具体U盘对应的盘符可以通过fdisk -l
查看, 挂载路径提前创建好。
挂载后,就可以读取U盘的内容。 U盘用的还是之前记录了CentOS 8 ISO安装镜像的那个。 将网卡驱动复制到本地目录, 解压后, 给安装脚本添加执行权限, 尝试执行安装。
安装不成功, 提示缺少“libelf-dev, libelf-devel or elfutils-libelf-devel” 等依赖包。 按照网上的建议, 从安装镜像的ISO包里面找到 Package目录, 根据提示一个个进行安装, 用的是x86_64的版本, 如下:
最后提示 load module r8125. Completed.
网卡驱动安装成功了。
配置网卡
通过ifconfig查看到网卡已经识别出来了, 但还无没有分配IP无法上网。 需要制作一个网卡的配置文件//在 /etc/sysconfg/network-script下面新建文件ifcfg-xxx
。 类似下面: ``
DEVICE=“xxx”
NAME=“xxx”
DHCP=none
Address=“xxx.xxx.xxx.xxx”
Gateway=“xxx.xxx.xxx.xxx”
``
一开始可以先将DHCP配置为both, 通过ifconfig看到已经获取到IP了, 可以ping通百度了, 说明已经可以上网了, 再重新修改为上面的静态IP。 静态IP可以用于后续的远程连接。
最后修改于 2021-12-12