安装系统时可以进入安装界面,但是无法识别到硬盘,查看服务器硬件均无异常且从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、切回安装界面继续安装完系统
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参数强制覆盖