当server安装好RHEL3系统以后,如果又添加了HBA卡,准备连接光纤存储的时候,通常系统就无法启动了,去掉HBA卡恢复正常
原理分析:
linux系统启动的时候,除了加载内核文件之外,还要加载一个初始化映像,用来加载一些必要的驱动,比如scsi卡,raid卡,ext3文件系统等等
通常对于存储设备,谁先加到内存,谁就是第一个硬盘,如sda 后面的就是sdb,以此类推。
因为有的时候如果安装HBA卡连接了存储柜,而加载驱动的时候先加载了HBA的驱动,而后才加载主板scsi或者raid的驱动,这样就导致磁盘柜认到
的是sda了,影响的系统启动
解决方法:
重新生成初始化文件,更改驱动加载顺序,让本地硬盘或者raid卡上的硬盘成为sda,磁盘柜上的认成sdb
具体步骤如下
以x366 添加8i卡,和HBA卡,连接ds400为例子,系统安装在8i卡控制的本地硬盘
操作系统为redhat as2.1 update 6 ,8i卡的驱动和HBA卡的驱动系统都可以自己认到
如果直接启动系统,系统就会把HBA卡上的盘认成sda
因此,安装系统的时候不连接盘柜,可以正常安装系统,安装好之后
用root登陆系统
观察默认的 /etc/modules.conf 通常如下
alias scsi_hostadapter qla2300
alias scsi_hostadapter1 aacraid
alias scsi_hostadapter2 aacraid
更改成如下
alias scsi_hostadapter0 aacraid
alias scsi_hostadapter1 aacraid
alias scsi_hostadapter2 qla2300
alias scsi_hostadapter3 qla2300
options scsi_mod max_scsi_lunx=128
保存退出
运行如下命令重新生成初始化文件
#cd /boot
#mv initrd-2.4.9-e.57.img initrd-2.4.9-e.57bak.img
#mkinitrd initrd-2.4.9-e.57.img 2.4.9-e.57
#mv initrd-2.4.9-e.57smp.img initrd-2.4.9-e.57smpbak.img
#mkinitrd initrd-2.4.9-e.57smp.img 2.4.9-e.57smp
#mv initrd-2.4.9-e.57summit.img initrd-2.4.9-e.57summitbak.img
#mkinitrd initrd-2.4.9-e.57summit.img 2.4.9-e.57summit
#init 6
连接ds400,可以正常启动了