DELL R720安裝REDHAT5.1 RAID驅動問題

    前兩天一臺DELL R720因業務需求安裝RH5.1,DELL官網和Utilty光盤裏都是支持RH5.8以上.

    光盤安裝時到分區這一步時找不到硬盤,也就是說光盤的initrd的ramdisk盤沒帶這個RAID卡的驅動,

    先說一下過程,後面會有操作方法:

    這臺機器用的是低端RAID卡,PERC H310 MINI,在LSI官網下載對應的驅動是一個IMG的鏡像文件,megaraid_sas-v00.00.04.38-1-rhel50-all.img,修改了光盤isolinux/initrd.img文件後重新打包,引導安裝可以識別到硬盤了,順利安裝完成,重啓後initrd文件引導完後無法加載內核,因爲此時硬盤的initrd裏也沒有RAID卡驅動,因此無法加載內核。用安裝盤進入rescue模式後chroot到新安裝的系統,然後拷ko驅動到對應的目錄後重新生成initrd,再啓動,可以正常引導了。另外BCM5720的網卡驅動也沒有,需要到BCM下載安裝。

    注意:需要確認驅動版本和當前ISO的內核版本一致

wKioL1QX0NeD8R6TAAFFOZcUj8E050.jpg

    總結下:

        一:安裝時RAID驅動問題,解決方法有三種:

            1:修改光盤的initrd文件,把對應驅動拷到modules就可以了

            2:製作一張驅動光盤,安裝盤引導後輸入linux dd加載這張盤

            3:直接把megaraid_sas-v00.00.04.38-1-rhel50-all.img放在光盤根目錄,在isolinux/isolinux.cfg裏指定加載

        二:安裝系統後RAID驅動問題

            修改硬盤上的initrd並重新打包

        三:網卡驅動編譯和安裝,兩種方法

            1:DELL官網下載驅動,用dkms安裝

            2:BCM官網下載,自己編譯安裝


一:

   1: 從ISO中提取initrd.img,並修改。

[root@test test]#file initrd.img
initrd.img: gzip compressed data, from Unix, last modified: Sat Sep 13 22:09:43 2014, max compression
文件是gzip壓縮的
[root@test test]#gzip -dc initrd.img |cpio -ivd
[root@test test]# ls
bin  dev  etc  init  initrd.img  modules  proc  sbin  selinux  sys  tmp  var
[root@test test]#rm -rf initrd.img
[root@test test]#cd modules
[root@test modules]#ls
module-info  modules.alias  modules.cgz  modules.dep  pci.ids
[root@test modules]#mkdir modules.cgz.folder
[root@test modules.cgz.folder]#cd modules.cgz.folder/
[root@test modules.cgz.folder]#mv ../modules.cgz .
[root@test modules.cgz.folder]#gzip -dc modules.cgz |cpio -ivd
[root@test modules.cgz.folder]#rm -rf modules.cgz
[root@test modules.cgz.folder]#cd 2.6.18-53.el5/
我這個是32位的系統,如果64位,應該是x86_64
[root@test modules.cgz.folder]#cd 2.6.18-53.el5/i686/
複製ko驅動到當前目錄(megaraid_sas.ko這個驅動一定要和ISO光盤的內核版本一致)
[root@test i686]#cp /var/www/data/os/rh5-1/megaraid_sas.ko .
[root@test i686]#cd ../../
把modules重新打包回modules.cgz
[root@test modules.cgz.folder]#find 2.6.18-53.el5 |cpio -oH crc |gzip -9 >modules.cgz
[root@test modules.cgz.folder]#ls
2.6.18-53.el5  modules.cgz
[root@test modules.cgz.folder]#cd ..
[root@test modules]#mv modules.cgz.folder/modules.cgz .
[root@test modules]#rm -rf modules.cgz.folder
拷貝驅動文件的modules.alias(此文件在megaraid_sas-v00.00.04.38-1-rhel50-all.img文件的根目錄下)別名信息到modules.alias
[root@test modules]#cat /var/www/data/os/rh5-1/modules.alias >>modules.alias
[root@test modules]cd ..
[root@test modules]ls
bin  dev  etc  init  modules  proc  sbin  selinux  sys  tmp  var
重新把所有文件打包回initrd.img
[root@test test]#find .|cpio -oH newc|gzip -9>initrd.img
[root@test test]ls
bin  dev  etc  init  initrd.img  modules  proc  sbin  selinux  sys  tmp  var
此時這個initrd.img就包含了megaraid_sas的驅動了,重新替換iso光盤文件中的isolinux目錄下的同名文件,刻盤安裝就可以識別到了

一:加載img驅動盤的方式

    2:用ultraiso把img寫入U盤(或linux下用dd命令安裝),用光盤安裝系統時在安裝界面輸入linux dd,即可加載(此方法我沒有嘗試成功)


一:isolinux/isolinux.cfg文件加載img驅動盤,在append行增加dd=cdrom:/megaraid_sas-v00.00.04.38-1-rhel50-all.img(我沒測試這種方法)

    append initrd=initrd.img dd=cdrom:/megaraid_sas-v00.00.04.38-1-rhel50-all.img


二:安裝系統後RAID驅動問題,也有兩種方法

    1:用安裝光盤進rescue模式,它會自動查找硬盤上的linux系統,按提示掛載到/mnt/sysimage(不要選擇只讀模式)

    掛載U盤,拷貝U盤裏的驅動到安裝後的目錄(安裝好的系統內核是2.6.18-53.el5PAE,注意KO文件要選擇對應內核的。安裝時的內核是2.6.18-53.el5)

bash3.2#mkdir /mtn/tmp
bash3.2#mount /dev/sdb1 /mnt/tmp
bash3.2#cp /mnt/tmp megaraid_sas.ko /mnt/sysimage/lib/modules/2.6.18-53.el5PAE/updates/
bash3.2#chroot /mnt/sysimage
生成模塊依賴
bash3.2#depmod -v 2.6.18-53.el5PAE
備份原ramdisk
bash3.2#mv /boot/initrd-2.6.18-53.el5PAE.img /boot/initrd-2.6.18-53.el5PAE.img.bak
生成新的ramdisk
bash3.2#mkinitrd  /boot/initrd-2.6.18-53.el5PAE.img 2.6.18-53.el5PAE



重啓即可


三:網卡驅動如果有KO文件,可以直接按上面的方法直接加入,或者進入系統後再操作,方法類似。

本次加載網卡驅動時出現了各種問題,dkms安裝的時候報錯,用源碼包安裝同樣報錯,最後進源碼包直接make,查找error的原因,發現是/usr/src/kernels/2.6.18-53.el5PAE-i686/include/linux/pci.h裏沒有關於pci_channel_offline函數的定義,沒有去細看了,把調用這些函數的段註釋掉了,編譯通過。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章