-
场景A 内核升级后 initramfs 缺驱动导致无法挂载根或设备消失
- 确认缺失的模块(示例为存储控制器 mpt3sas):
lsinitrd -k <旧内核版本> | grep mpt
lsinitrd -k <新内核版本> | grep mpt(若为空则缺驱动)
- 将驱动加入 initramfs 并重建:
- 方法一(永久生效):在 /etc/dracut.conf 中添加
add_drivers+=“mpt3sas”
然后重建:dracut -f /boot/initramfs-<新内核版本>.img <新内核版本>
- 方法二(一次性):
dracut --force --add-drivers mpt3sas --kver=<新内核版本>
- 重启验证。
-
场景B NVIDIA 专有驱动在升级内核后失效(nvidia-smi 报错)
- 安装 DKMS(若未安装):yum install dkms
- 确认已安装的 NVIDIA 驱动版本目录:ls -l /usr/src/ | grep nvidia(如 nvidia-470.82.01)
- 用 DKMS 为当前运行内核重建驱动:
dkms install -m nvidia -v <版本号>
- 验证:nvidia-smi;若仍失败,检查并安装匹配当前内核的 kernel-devel/kernel-headers,再重建 DKMS 模块。
-
场景C 网卡驱动缺失或异常(如 bnx2/bnx2x)
- 识别设备与驱动:lspci | grep -i ethernet;modinfo bnx2;ethtool -i <网卡名>
- 更新驱动(以 Broadcom NetXtreme II 为例):
- 安装厂商驱动 RPM 源码包并重建 RPM:
rpm -ivh netxtreme2-<版本>.src.rpm
cd /usr/src/redhat/SPECS && rpmbuild -bb netxtreme2.spec
cd …/RPMS/x86_64 && rpm -ivh netxtreme2-<版本>.x86_64.rpm
- 切换驱动并验证:
rmmod bnx2 && modprobe bnx2
modinfo bnx2 或 ethtool -i <网卡名> 查看新版本
- 如为电源管理引发的异常,可在 grub.conf 内核行临时添加 acpi=off 测试(生产环境慎用)。