共计 2286 个字符,预计需要花费 6 分钟才能阅读完成。
导读 | 本次实验,通过使用安装了自定义内核 4.18.202 的 Centos7.3 系统在 Lenovo SR650 服务器,RAID 阵列卡为 940-8i 中测试兼容性,进入安装界面发现找不到磁盘。 |
我们就需要下载 940-8i 的驱动,首先查一下 lenovo 940-8i 的芯片型号,然后在 Broadcom 官网查询和哪一个相同,下载芯片相同的 RAID 驱动。下载地址:
https://www.broadcom.com/products/storage/raid-controllers/megaraid-9560-8i
解压 MR_LINUX_DRIVER_7.20-07.720.04.00-1.tgz,然后解压 megaraid_sas_components.tgz,
进入 kmod_srpm 目录,yum 安装”Development Tools”组和一些常用工具。
[root@localhost kmod_srpm]# yum groupinstall "Development Tools"
[root@localhost kmod_srpm]# yum -y install libelf-dev libelf-devel elfutils-libelf-devel
安装 kernel-headers,注意!kernel-headers 尽可能从镜像安装,因为 kernel-headers 要和 kernel 版本一致。
[root@localhost kmod_srpm]# yum -y install kernel-headers-`uname -r`
下面开始重新编译一个和当前系统版本兼容的 RAID 驱动:
[root@localhost kmod_srpm]# rpmbuild --rebuild kmod-megaraid_sas-07.720.04.00-1.src.rpm
进入~/rpmbuild/RPMS/x86_64 目录,
找到这个文件 kmod-megaraid_sas-07.720.04.00-1.x86_64.rpm。找到之后先保留。我们下一步要将该 rpm 包打包成 dd.iso 文件。
[root@localhost ~]# cd ~/rpmbuild/RPMS/x86_64
在官网下载的压缩包里面有一些其他操作系统的 raid 驱动。我们找这个目录
rhel7_oel7_centos7/disks- 1 里面的这个文件
megaraid_sas-07.720.04.00_el7.7-1.x86_64.iso.gz
首先使用 gunzip 解压它,解压为.iso 文件
[root@localhost generic_srpm]# gunzip /root/rhel7_oel7_centos7/disks-1/megaraid_sas-07.720.04.00_el7.7-1.x86_64.iso.gz
将 megaraid_sas-07.720.04.00_el7.7-1.x86_64.iso 文件挂载到目录,然后将里面的内容复制到一个新建的文件夹里面:
[root@localhost ~]# mount rhel7_oel7_centos7/disks-1/megaraid_sas-07.720.04.00_el7.7-1.x86_64.iso /mnt/
[root@localhost ~]# mkdir test && cp -r /mnt/* test/
如下是复制出来的文件目录结构:
将 test/rpms/x86_64/* 下面的东西删掉。将编译好的 kmod-megaraid_sas-07.720.04.00-1.x86_64.rpm 文件复制到 x86_64 目录下。
[root@localhost ~]# rm -rf test/rpms/x86_64/*
[root@localhost ~]# cp -p rpmbuild/RPMS/x86_64/kmod-megaraid_sas-07.720.04.00-1.x86_64.rpm test/rpms/x86_64/
安装 createrepo 安装包
[root@localhost ~]# yum -y install createrepo
进入 test/rpms/x86_64/ 目录
在当前目录执行 createrepo,为该目录生 repo metadata.
[root@localhost x86_64]# createrepo .
然后想办法将 test 目录制作成 iso,就可以在 Linux dd 里面加载驱动了。
下面是使用 mkisofs 命令来制作 iso 文件。
[root@localhost test]# yum -y install genisoimage
[root@localhost test]# cd ~/test
[root@localhost test]# mkisofs -o dd.iso -r .
进入 grub boot option 时,选择 Install CentOS Linux 7
按一下 tab 键,在后面加入 linux dd 选项,回车,就可安装 raid 驱动了。(如果是使用 58 的这个定制镜像,不要忘记修改前面 LABEL 名称)
下图第一个红圈,选择存放 raid 驱动的存储器。第二个红圈搜索到 dd.iso 文件,是否挂载。三个红圈选择对应的 rpm 包格式的 raid 驱动。第四个圈输入 c,继续。
再次输入 c,并回车,进入安装界面
安装界面,可以看到识别硬盘了。
安装完系统,发现无法进入系统,进入了 emerency 模式。
启动到安装界面时使用的内核版本为 3.10.0.514 版本:
还是因为没有加载 RAID 驱动的问题,因为系统里面的内核为 4.18.202 版本,所以需要加载一个 4.18.202 匹配的 raid 驱动。