Centos7.3編譯RAID驅動(一)

大雄45發表於2022-05-25
導讀 本次實驗,透過使用安裝了自定義核心4.18.202的 7.3系統在Lenovo SR650伺服器,RAID陣列卡為940-8i中測試相容性,進入安裝介面發現找不到磁碟。

Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)

解決方法

我們就需要下載940-8i的驅動,首先查一下lenovo 940-8i的晶片型號,然後在Broadcom官網查詢和哪一個相同,下載晶片相同的RAID驅動。下載地址:

Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
解壓MR_ _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

Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
進入~/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

Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
在官網下載的壓縮包裡面有一些其他作業系統的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

Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
將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/

如下是複製出來的檔案目錄結構:
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
將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 .

Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
然後想辦法將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
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
按一下tab鍵,在後面加入linux dd選項,回車,就可安裝raid驅動了。(如果是使用58的這個定製映象,不要忘記修改前面LABEL名稱)
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
下圖第一個紅圈,選擇存放raid驅動的儲存器。第二個紅圈搜尋到dd.iso檔案,是否掛載。三個紅圈選擇對應的rpm包格式的raid驅動。第四個圈輸入c,繼續。
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
再次輸入c ,並回車,進入安裝介面
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
安裝介面,可以看到識別硬碟了。
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
安裝完系統,發現無法進入系統,進入了emerency模式。
啟動到安裝介面時使用的核心版本為3.10.0.514版本:
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
還是因為沒有載入RAID驅動的問題,因為系統裡面的核心為4.18.202版本,所以需要載入一個4.18.202匹配的raid驅動。
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)
Centos7.3編譯RAID驅動(一)Centos7.3編譯RAID驅動(一)

本文原創地址:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2896881/,如需轉載,請註明出處,否則將追究法律責任。

相關文章