差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
osprovision:kickstart:rhel_centos:apply_driverdisk_on_centos6 [2016/10/21 16:13]
tony [調整kickstart檔案]
osprovision:kickstart:rhel_centos:apply_driverdisk_on_centos6 [2023/06/25 09:48] (目前版本)
行 1: 行 1:
 {{tag>​RHEL CentOS kickstart Os_Provision driverdisk}} {{tag>​RHEL CentOS kickstart Os_Provision driverdisk}}
-====== Apply DriverDisk on RHEL/​CentOS6(Working) ​======+====== Apply DriverDisk on RHEL/​CentOS6 ======
 ===== Problem ===== ===== Problem =====
-在系統自動安裝部屬時,可能有以下原因需要更新驅動:​+在系統自動安裝部屬時,可能有以下原因需要更新驅動:​
   - 安裝光碟搭載的kernel版本不支援新硬體。   - 安裝光碟搭載的kernel版本不支援新硬體。
   - 安裝光碟搭載的kernel版本過舊。   - 安裝光碟搭載的kernel版本過舊。
-最常遇到的問題,莫過於在更新網卡或磁碟陣列驅動了。如下圖:​\\+最常遇到的問題,莫過於在更新網卡或磁碟陣列驅動了。如果使用kickstart自動部屬,在發生硬體找不到時,應會出現如下圖錯誤:\\
 {{:​osprovision:​kickstart:​rhel_centos:​no_driver_found.png|}}\\ {{:​osprovision:​kickstart:​rhel_centos:​no_driver_found.png|}}\\
-本篇主要分享我使用的方法,有以下幾個步驟:​+本篇主要分享我解決此問題的方法,有以下幾個步驟:​
   - 準備driver rpm。   - 準備driver rpm。
   - 製作driverdisk。   - 製作driverdisk。
行 116: 行 116:
 /​sbin/​modprobe ixgbe /​sbin/​modprobe ixgbe
 </​code>​ </​code>​
- +然而在使用第二個方法時,我又想到一些問題:​ 
 +  - 不同版本驅動可能會不同位置,我要去覆蓋掉原本的嗎?​ 
 +  - 假如新的驅動在原本的系統就不存在,使用modprobe不會有問題嗎?​ 
 +我認為應交由kernel本身自行去判別驅動狀態,包含驅動相依性;因此我透過了depmod指令,讓系統自行去判別目前kernel modules狀態。我在answer file中,加入一個post區塊,並讓它在chroot下去執行depmod:​ 
 +<code bash> 
 +%post 
 +DD=/​root/​DD 
 +if [ -e "​${DD}"​ ]; then 
 + logger "setup update drivers"​ 
 + cp -r ${DD}/lib/* /lib 
 + /​sbin/​depmod -r 
 +fi 
 +%end 
 +</​code>​ 
 +按照以上流程,就能夠更新驅動並安裝完成系統。這部分試驗過ko來源與原本相同與不同兩種案例,都可以正常使用到最新版本驅動。
 ===== 其它 ===== ===== 其它 =====
 我的測試環境是在CentOS6.6上。為了方便建置測試環境,撰寫了以下腳本。 我的測試環境是在CentOS6.6上。為了方便建置測試環境,撰寫了以下腳本。
行 141: 行 154:
 yum -y install rpm-build gcc createrepo mkisofs yum -y install rpm-build gcc createrepo mkisofs
 </​code>​ </​code>​
 +
 ===== Reference ===== ===== Reference =====
   * [[http://​www.emeneker.com/​modx/​index.php?​id=26|Creating a RHEL6 driverdisk for kickstarts]]   * [[http://​www.emeneker.com/​modx/​index.php?​id=26|Creating a RHEL6 driverdisk for kickstarts]]