Ubuntu 20.04升级至22.04后网卡未识别(UNCLAIMED),手动安装模块依赖报错且无法联网求助
看起来你在升级到Ubuntu 22.04后遇到了Realtek网卡无法被系统识别的棘手问题,而且因为没法联网,连离线安装内核模块都卡壳了——毕竟Valheim服务器的种子和数据不能丢,重装肯定是下下策。先理清楚你的问题细节:
你的网卡硬件信息如下:
*-network UNCLAIMED description: Ethernet controller product: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller vendor: Realtek Semiconductor Co., Ltd. physical id: 0 bus info: pci@0000:1e:00.0 version: 15 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress msix bus_master cap_list configuration: latency=0 resources: ioport:f000(size=256) memory:fd504000-fd504fff memory:fd500000-fd503fff
你尝试手动安装linux-modules-5.15.0-52-generic_5.15.0-52.58_amd64.deb时,遇到了依赖错误:
Selecting previously unselected package linux-modules-5.15.0-52-generic. (Reading database ... 190584 files and directories currently installed.) Preparing to unpack linux-modules-5.15.0-52-generic_5.15.0-52.58_amd64.deb ... Unpacking linux-modules-5.15.0-52-generic (5.15.0-52.58) ... dpkg: dependency problems prevent configuration of linux-modules-5.15.0-52-generic: linux-modules-5.15.0-52-generic depends on linux-image-5.15.0-52-generic | linux-image-unsigned-5.15.0-52-generic; however: Package linux-image-5.15.0-52-generic is not installed. Package linux-image-unsigned-5.15.0-52-generic is not installed. dpkg: error processing package linux-modules-5.15.0-52-generic (--install): dependency problems - leaving unconfigured Errors were encountered while processing: linux-modules-5.15.0-52-generic
完全离线解决方案(靠另一台联网机器+U盘搞定)
既然没法联网,我们就用最原始的离线方式解决:
确认目标机器需要的内核镜像类型
在你的Ubuntu服务器上先跑这个命令,确认当前内核版本和类型:uname -r如果输出是
5.15.0-52-generic,Ubuntu默认用带签名的内核镜像包(linux-image-5.15.0-52-generic);如果是自定义编译的内核,才需要无签名版本。离线下载所有依赖包
找一台能联网的Ubuntu 22.04机器,下载以下amd64架构的包:- 对应版本的
linux-image-5.15.0-52-generic_5.15.0-52.58_amd64.deb(带签名内核用这个),或linux-image-unsigned-5.15.0-52-generic_5.15.0-52.58_amd64.deb(无签名内核用这个) - 额外下载
linux-modules-extra-5.15.0-52-generic_5.15.0-52.58_amd64.deb,这个包包含了Realtek网卡的驱动模块,大概率能解决UNCLAIMED问题
- 对应版本的
传输包到目标机器
把下载好的deb包复制到U盘,插到你的Ubuntu服务器上,再把包复制到服务器的某个目录(比如~/deb-packages)。按顺序安装包
内核镜像包必须先装,再装模块包:cd ~/deb-packages # 先装内核镜像 sudo dpkg -i linux-image-5.15.0-52-generic_5.15.0-52.58_amd64.deb # 如果是无签名版本就换成:sudo dpkg -i linux-image-unsigned-5.15.0-52-generic_5.15.0-52.58_amd64.deb # 再装模块包和额外模块包 sudo dpkg -i linux-modules-5.15.0-52-generic_5.15.0-52.58_amd64.deb sudo dpkg -i linux-modules-extra-5.15.0-52-generic_5.15.0-52.58_amd64.deb重启验证
安装完成后重启机器:sudo reboot重启后用这个命令检查网卡驱动是否加载:
lspci -k | grep -A 2 Ethernet如果看到
Kernel driver in use: r8168或者r8169,说明驱动正常加载,网卡应该能被系统识别了。
额外补救方案
如果上面的步骤还是没解决,可能需要手动安装Realtek的专用驱动r8168,同样离线下载对应的dkms包(比如r8168-dkms_8.050.03-1_all.deb,找适配Ubuntu 22.04的版本),然后用dpkg -i安装,重启后应该就能解决问题。
备注:内容来源于stack exchange,提问作者fragelius




