• 场景描述

安装系统时可以进入安装界面,但是无法识别到硬盘,查看服务器硬件均无异常且从bios或者raid配置界面中能正常看到raid信息及硬盘信息,运行lspci 命令查看到服务器有raid卡,但是未加载驱动。

  • 获取驱动程序模块

查看raid卡的型号获取设备id,并查询驱动名称。

#Lspci -knn | grep -i raid -A 5

例如驱动是megaraid_sas。下载源码后在其他环境的同版本系统中编译好驱动,拿到megaraid_sas.ko 文件。在目标系统中查看驱动信息,例如内核版本是否一致。

#modinfo megaraid_sas.ko

#uname -a

  • 加载驱动安装系统

1、挂载上驱动盘后,切到其他终端手动执行命令加载驱动

#insmod megaraid_sas.ko

2、确认驱动是否正确加载,通过dmesg命令能看到驱动加载后显示驱动信息

#dmesg

3、查看已经正确识别到硬盘,

#lsblk或者fdisk -l

4、切回安装界面继续安装完系统

  • 更新initrd

1、安装完先不要重启系统,可直接进行更新操作。安装完的系统会挂载在/target目录。在目标系统中新建temp目录并拷贝驱动模块。

#mkdir -p /target/temp

#cp megaraid_sas.ko  /target/temp

2、通过chroot进入目标系统执行更新操作。

#chroot /target

3、拷贝驱动到内核驱动相应目录,更新模块信息

#cp /temp/megaraid_sas.ko  /lib/modules/`uname -r`/kernel/drivers/scsi/megaraid/

#depmod -a

4、重新生成initramfs(也可通过执行mkinitrd /boot/initramfs-`uname -r`.img `uname -r`)

U系系统可执行

#update-initramfs -u

R系系统可执行

#dracut -f

5、更新完后可通过lsinitrd/lsinitramfs 命令查看生成的文件中是否包含目标驱动。

  • 问题处理

1、驱动更新已确认完成,但是还是无法启动系统。

需要直接移走或者删除默认的内核驱动,例如accraid。

2、执行mkinitrd命令提示文件已存在

将默认的initramfs文件重命名作为备份,或者加一个-f参数强制覆盖

Logo

鸿蒙生态一站式服务平台。

更多推荐