ubuntu重启之后网卡驱动消失,显卡驱动版本错误

这个问题也是十分诡谲莫测,在我的服务器重启之后,莫名奇妙的发现

ifconfig -a

这个命令告诉我,有线网卡的驱动没了,我直接满头问号。只剩下之前安装的docker的默认驱动docker0和回环网络lo,而按理来说,应该存在一个eth0或者什么的(后来我知道高版本里的网卡驱动改名了,我的叫eno1,所以这个关键词不好用了)

nvidia-smi

同时显卡驱动报错,驱动版本和library版本不一致。
然后检查网络问题

cat /etc/network/interface

提示我不存在这个文件

systemctl status network
systemctl status networkd
service network status
service networkd status

提示我Unit network.service could not be found.反正不存在这个东西。
还好,我后来百度,告诉我这个服务在高版本的ubuntu中被NetworkManager替代了

systemctl status NetworkManager
# 告诉我运行正常,并且没有有线网卡的驱动的运行信息
# 查到有一些方法是重启这个服务,显然无效

然后再检查一下netplan的设置,这也是高版本的ubuntu里的网络配置工具。

cat /etc/netplan/01-network-manager-all.yaml
# 下面的是文件内容
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

没啥有效信息,就是表示让NetworkManager管理网络,这个东西还有两个管理工具,分别叫nmtuinmcli,前者是伪图形化工具,后者是命令行工具,反正检查下来对我也没用,怎么使用你们可以自己百度。

这里其实就已经陷入误区了,问题很明显,没有驱动就去检查驱动啊。但是在此之前,我还是先检查了系统日志

dmesg
cat /var/log/kern.log

读了半天的系统报错,没看懂。

然后去分别检查驱动是否加载和驱动的名字

lsmod|grep -i realtek 
lspci|grep -i ethernet
# 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

完事之后就去屁颠屁颠的下载驱动安装驱动力,这里就有一个问题,就是,我没有网卡,所以我上不了网。我得用U盘,在我的本地机器上下载然后用U盘给服务器安装。

然后客服重重困难,在安装的过程中,逐渐发现不对劲,首先,因为这个文件是压缩包,需要我自己编译,在编译过程中,报错/lib/module/$(shell uname -a)下没有build文件夹,无法构建,其中$(shell uname -a)的意思就是用默认的shell调用后面的命令,也就是输出内核名称,然后去到这个文件夹下,发现果然没有,查了一下。告诉我需要安装headers文件,好,我去找,结果找的时候发现更不对劲了,这个版本的头文件怎么这么难找?查了一下发现当前的内核intel-iotg系列是物联网系统的内核,此时我还没有反应过来,只是接着找头文件,安装驱动,但是这个头文件也需要makemake的过程中又出现了一系列的依赖缺失,然后尝试去下载dkms的安装方法,安装完之后还是不对。构建版本有问题。

此时我已经开始考虑重装了,毕竟这成本有点高了。

然后偶然间我想着能不能内核降级,降到其他版本说不定就可以了,然后我在想,既然是内核文件,为什么的我这个目录下有三个内核文件?
检查一下

grep menuentry /boot/grub/grub.cfg 

输出

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-39f884f3-56ae-4cb3-ba78-341a4c781f7f' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-39f884f3-56ae-4cb3-ba78-341a4c781f7f' {
        menuentry 'Ubuntu, with Linux 5.15.0-1035-intel-iotg' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-1035-intel-iotg-advanced-39f884f3-56ae-4cb3-ba78-341a4c781f7f' {
        menuentry 'Ubuntu, with Linux 5.15.0-1035-intel-iotg (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-1035-intel-iotg-recovery-39f884f3-56ae-4cb3-ba78-341a4c781f7f' {
        menuentry 'Ubuntu, with Linux 5.15.0-76-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-76-generic-advanced-39f884f3-56ae-4cb3-ba78-341a4c781f7f' {
        menuentry 'Ubuntu, with Linux 5.15.0-76-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-76-generic-recovery-39f884f3-56ae-4cb3-ba78-341a4c781f7f' {
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {

显然我有两个内核。此时我有一个合理猜测,因为一些不确定的原因,系统里有一个并不适配硬件的系统内核,本来这个内核并不影响,但是在ubuntu自动更新的时候,这个错误的内核版本比正常的内核版本高了,所以默认进入的变成了这个错误的内核,所以进去之后各种驱动都出现问题,因为这些驱动本来就不是为这个内核安装的。

所以修改grub设置,进入新的内核,一切就正常了。

nano /etc/default/grub 

主要修改还以下内容,从后往前说,第三个是系统启动时进入GRUB界面有几秒时间考虑是否进入,第二个在某些系统里是HIDDEN,也就是默认隐藏进入GRUB界面的选项,这里改成菜单,在系统启动过程就会有一个菜单界面用于选择内核或者设置。第一个不要急着改,它对应的是grep menuentry /boot/grub/grub.cfg 这句里的菜单排布,从0计数,因此这里这个default的意思就是如果用户没有选择,默认进入显示的菜单中的第二个(因为从0开始,1对应第二个)下的第三个子选项。也就是我这里的Ubuntu, with Linux 5.15.0-76-generic在之前的版本里这里的default是可以直接写内核名字的,但是要求完全对应,有点困难。如果这里不确定的话,这个选项可以不改,等 重启之后先看一眼再改。

GRUB_DEFAULT="1> 2"
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=1

改完配置文件之后要以下命令更新配置

update-grub

然后进入原来内核发现,里面的网络也不对了,

nano /etc/network/interfaces 
# 在上面这个文件里加入这一行,用于开机自动启动有线网卡驱动
auto eno1
nano /etc/netplan/01-network-manager-all.yaml 
# 在这个文件里只要让他管理网络就行,其他不用写,然后运行下面的重新生成计划并应用。
netplan generate
netplan apply 

如果发现还是启动还是不能远程链接,那可能需要设置一下System-connection对所有用户开放
最后检查
lspci -vv
正常
dhclient en01

RTNETLINK answers: File exists

正常
lshw -C network

  *-network                 
       description: Ethernet interface
       product: RTL8125 2.5GbE Controller
       vendor: Realtek Semiconductor Co., Ltd.
       physical id: 0
       bus info: pci@0000:07:00.0
       logical name: eno1
       version: 05
       serial: 08:bf:b8:81:82:bb
       size: 100Mbit/s
       capacity: 1Gbit/s
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration: autonegotiation=on broadcast=yes driver=r8169 driverversion=5.15.0-76-generic duplex=full firmware=rtl8125b-2_0.0.2 07/13/20 ip=100.100.21.237 latency=0 link=yes multicast=yes port=twisted pair speed=100Mbit/s
       resources: irq:18 ioport:4000(size=256) memory:86f00000-86f0ffff memory:86f10000-86f13fff

正常

uname -a

Linux 5.15.0-76-generic #83-Ubuntu SMP Thu Jun 15 19:16:32 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

正常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值