场景说明
硬件:华为服务器携带RAID阵列卡
系统:RedHat6.5
系统安装到服务器的硬盘上,启动提示无法找到系统盘,中断退出。其实这主要是内核没有添加megaraid驱动的关系,而且光盘上提供的initrd虚拟根文件系统,也没有将megaraid打包进initrd之中。所以在安装的过程中,由于无法识别RAID卡,导致找不到硬盘,无法加载系统进内存,启动失败。
知识储备
Linux内核源码实际上有各大厂商提供的支持的RAID驱动的源码,内核源代码目录linux-2.6.11\drivers\scsi\megaraid下是RAID卡驱动,Kconfig.megaraid记录支持RAID卡的种类详细信息。
除了内核源码有RAID卡的驱动源码,在系统的/lib/module/`uname–r`/driver/scsi/目录下还有编译好的megaraid.ko驱动文件,这个时候如果使用dracut指令,通过添加RAID驱动到initrd,重新打包,就能够解决问题。
解决方案
系统环境:CentOS release 6.5 (Final)
内核版本:2.6.32-431.el6.x86_64
#dracut --add-driver megaraid.ko /boot/initrd.img
将在/boot目录下创建一个名为initrd.img文件的通用initramfs.这包含了你当前运行内核当前加载的全部内核模块,目前生成的虚拟文件大小是45MB。
详细操作
环境:CentOS release 6.5 (Final)+ 2.6.32-431.23.3.el6.x86_64。服务器上的系