36.3.2. 将驱动程序列入黑名单
如 第 36.1.2 节 “引导至救援模式” 所述,
rdblacklist
内核选项可以在引导时将驱动程序列入黑名单。要在随后的引导中继续将驱动程序列入黑名单,需要在描述系统内核的 /boot/grub/grub.conf
中添加 rdblacklist
选项。要在挂载 root 设备时将驱动程序列入黑名单,请在 /etc/modprobe.d/
里的文件中添加一个黑名单条目。
- 用
linux rescue rdblacklist=name_of_driver
命令引导至救援模式,其中 name_of_driver 是需要列入黑名单的驱动程序。按照 第 36.1.2 节 “引导至救援模式” 中的说明,同时不要选择以只读方式挂载系统。 - 使用 vi 文本编辑器打开
/mnt/sysimage/boot/grub/grub.conf
文件:vi /mnt/sysimage/boot/grub/grub.conf
- 确认用于引导系统的默认内核。每个内核都在
grub.conf
文件中以title
开头的内容指定。默认的内核在文件起始处以default
参数指定。0
表示第一组内容里描述的内核,而1
表示第二组,更大的值表示后面的内核。 - 编辑以
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
- 保存文件并退出 vi。
- 在
/etc/modprobe.d/
中创建新文件,使其包含命令blacklist name_of_driver
。给这个文件取一个描述性的名字,以便以后查找,其后缀应为.conf
。例如,挂载 root 设备时要继续将驱动程序 foobar 列入黑名单,请运行:echo "blacklist foobar" >> /mnt/sysimage/etc/modprobe.d/blacklist-foobar.conf
- 重启系统。在下一次更新默认内核前,不再需要手动提供作为内核选项的
rdblacklist
。如果在修复驱动问题之前更新了默认内核,必须再次编辑grub.conf
,以确保不会再引导时载入有故障的驱动程序。