在红帽企业Linux 2.4内核版本上无法识别我的SCSI设备,该如何操作?
解决方法:

因为一些设计不好的SCSI设备不能正常的处理来自initiator的非0 LUN探询,Linux在默认策略中设定了驱动程序不去查询LUN>0的设备。这个策略可以通过文件/etc/modules.conf中的max_scsi_luns选项修正,

           options scsi_mod max_scsi_luns=n

n是所需要的最大LUN的值。 (比如. options scsi_mod max_scsi_luns=255).在修改了moddules.conf之后, RAM cdisk必须通过mkinitrd的命令重新生成。 注意这个设置是一个全局设置,所以你的每个SCSI设备必须都支持大于0的LUN的查询。

例外:

  • 大LUN查询(BLIST_LARGELUN): 一些SCSI-3设备的固件不会汇报设备信息,在这种情况下, kernel不会去查询LUN大于8的设备, 不管在"max_scsi_luns"怎么设置。 要解决这个问题,可以发送你的设备信息到红帽技术支持,把设备加入到白名单中,从而可以使kernel去查询LUN大于8的设备。在一些案例中,设备固件可以被设置使用SCSI-2或者SCSI-3来工作。
  • 稀松多UNITS(BLIST_SPARELUN): 如果已知设备支持 sparse multiple units, 也需要把你的需求告诉红帽技术支持,添加一条记录到列表, 这样kernel可以去检查所有的设备。否则, 如果kernel在LUN为4上没有检测到设备, 他就会停止检测,不且不会把LUN 5上的设备报告给kernel.

当前支持的列表可以通过内核源代码查到。

           /usr/src/linux-(kernel-version)/drivers/scsi/scsi_scan.c