36.3.2. 將驅動程式納入黑名單

如〈節 36.1.2, “開機進入救援模式”〉所述,rdblacklist kernel 選項會在開機時將驅動程式「放入黑名單」裡。要在每次開機時繼續將其放入黑名單中,請在 /boot/grub/grub.conf 描述此 kernel 的一行裡,加入 rdblacklist 選項。要在 root 裝置掛載的情況下將驅動程式放入黑名單裡,請將黑名單的項目放入 /etc/modprobe.d/ 的檔案裡。
  1. 請以 linux rescue rdblacklist=name_of_driver 開機,進入救援模式,其中 name_of_driver 是您想要放入黑名單的驅動程式。請遵循〈節 36.1.2, “開機進入救援模式”〉的指示,同時「不要」以唯讀方式掛載已安裝的系統。
  2. vi 文字編輯器開啟 /mnt/sysimage/boot/grub/grub.conf 檔案:
    vi /mnt/sysimage/boot/grub/grub.conf
  3. 請指定用來開機的預設 kernel。每個 kernel 都會在 grub.conf 檔案中指定,每一節都以 title 開始。預設的 kernel 會在檔案開頭附近,以 default 參數來指定。「0」表示第一節的 kernel,「1」表示第二節的 kernel,餘此類推。
  4. 編輯 kernel,使其包括 rdblacklist=name_of_driver,其中 name_of_driver 是您要放入黑名單的驅動程式。例如要把名為 foobar 的驅動程式放入黑名單中:
    kernel /vmlinuz-2.6.32-71.18-2.el6.i686 ro root=/dev/sda1 rhgb quiet rdblacklist=foobar
  5. 儲存檔案並退出 vi
  6. 請在包含 blacklist name_of_driver/etc/modprobe.d/ 目錄中建立新檔案。請給予這個檔案具有描述意義的名稱,將來比較好找,並使用 .conf 延伸檔名。例如要在每次 root 裝置掛載時繼續將 foobar 放入黑名單裡,請執行:
    echo "blacklist foobar" >> /mnt/sysimage/etc/modprobe.d/blacklist-foobar.conf
  7. 重新開機。除非更新了預設的 kernel,否則您不需要在每次開機時手動輸入 rdblacklist 選項。如果您在驅動程式的問題解決之前更新了預設 kernel,就必須再次更新 grub.conf 以確保開機時不會載入有問題的驅動程式。