内置于内核的 SCSI 驱动程序会按照预定的顺序进行检查,以查看它们可以控制的 HBA 是否存在。用户无法控制此顺序,在大多数情况下,此顺序是任意的,但在某些较旧的 ISA 适配器的情况下,这是为了防止错误识别 [1] 。
scsi_logging=<n> where <n> is 0 to turn logging off where <n> is non-zero to turn logging on max_scsi_luns=<n> where <n> is a number between 1 and 8 (< lk 2.4.7), >= lk 2.4.7 the upper limit can be much larger scsi_allow_ghost_devices=<n> where (<n> - 1) is the maximum lu number to ghost if the the corresponding device is offline. When <n>==0 (default) then don't ghost any devices (in lk 2.4.26 and later) scsihosts=host0:hosts1::host3 |
最近引入的 devfs 定义了一个 "scsihosts" 启动时参数,以便用户对此进行一些控制。 有关说明,请参阅 devfs 文档 [参考:W5]。 "scsihosts" 引导选项列表中给出的主机名是底层驱动程序的名称(例如 "scsihosts=advansys:imm::ide-scsi")。 [2] [3] 使用 "scsihosts" 不需要 devfs。 如果给定 "scsihosts" 参数,则会在启动消息中回显该参数。 例如
scsi: host order: advansys:imm::ide-scsi |
包含一些解释的完整内核参数列表可以在以下文件中找到/usr/src/linux/Documentation/kernel-parameters.txt.
[1] | 对于初始化代码而言,PCI 适配器比旧的 ISA 适配器“安全”得多。 因此,PCI 适配器的初始化顺序不太可能导致死锁。 在这种情况下,可以通过更改 SCSI 子系统 Makefile 中的条目顺序来修改内置驱动程序的初始化顺序(以及 SCSI 适配器编号)(/usr/src/linux/drivers/scsi/Makefile)。 注意:某些适配器可能被多个底层驱动程序识别(例如,基于 NCR 芯片组的适配器)。 |
[2] | 逗号或冒号都可以用作 "scsihosts" 的分隔符。 这意味着 "scsihosts=advansys,imm,,ide-scsi" 也是有效的。 此外,如果机器的启动序列涉及 "initrd" 阶段(请查看/etc/grub.conf或/etc/lilo.conf以确定是否是这种情况),那么在更改 "scsihosts" 启动时参数后,应运行 mkinitrd 命令。 这将生成一个新的 initrd 映像,需要将其放在正确的位置(最有可能在/boot目录)。 |
[3] | 使用 "scsihosts" 可能会导致这样一种情况:计算机的 BIOS 在一个磁盘上找到引导轨道(以及在 lilo 或 grub 中设置的启动时间参数),而内核在另一个磁盘上找到根分区。 当这是计划外的情况时,可能会非常令人困惑。 因此,在 lilo 或 grub 的配置中更改(或添加)"scsihosts" 后,启动机器以查看访问了哪些磁盘可能是明智之举。 |