我在磁盘阵列的一个通道上 映射了二个分区
结果在Redhat 9的系统里
通过 fdisk /dev/sda 可以编辑
但是fdisk /dev/sdb 第二个就没有了
为什么?
cnccie 回复于:2006-07-14 12:56:27
cat /proc/scsi/scsi 贴出来给大家看看
cnccie 回复于:2006-07-14 13:02:30
另外一个,确定你的内核是否支持多LUN?
编辑/etc/module.conf 加入options scsi_mod max_scsi_luns=255 然后重启试下?
4nai 回复于:2006-07-14 13:36:12
应该是系统多lun支持没打开了。
technovo 回复于:2006-07-14 14:10:35
我按照下面的方法做了 但是 fdisk /dev/sdb 还是没有 郁闷 我哪里做的不对呢
1) 使用 uname –a 来获取您linux的内核版本, 例如:2.4.18-3
2) 制作一个Linux恢复软盘在做任何的更新前都是一个很好主意,您可以用这个命令来制作恢复盘:
/sbin/mkbootdisk <your kernel version here>'
例如, /sbin/mkbootdisk 2.4.18-3
3) 在/etc/modules.conf里的最后一行加入options scsi_mod max_scsi_luns=255
4) 要使这个变化生效,您必须重新制作您的initrid启动镜像。首先把您原来的保存为另一个名字,
'cp /boot/initrd-<kernel version>.img /boot/initrd-<kernel version>.old'.
5) 现在,制作新的initrd镜像,您可以输入:
'mkinitrd –f /boot/initrd-<kernel version>.img <kernel version>'.
例:mkinitrd -f /boot/initrd-2.4.21-15.EL.img 2.4.21-15.EL
6) 如果您GRUB做为您的boot loader,您只有重启就可以了。然后就可以在SCSI卡的驱动程序装载时看到多个LUN了。
7) 如果您使用LILO,您要运行lilo然后重启系统。
8) 如果系统不可以正常启动,使用恢复盘重起然后装载原来的initrd镜像initrd-<kernel version>.old。这时如果您使用GRUB,重启您的系
统;如果您使用LILO,运行lilo然后再重启。
4nai 回复于:2006-07-14 14:30:07
从下面命令判断是否和多lun有关系。
#cat /proc/scsi/scsi
从上面的结果能看到你识别到的sda的x,y,z,执行下面命令:
#echo "scsi add-single-device X Y Z 1" > /proc/scsi/scsi(我想你认到的sda应该是lun0的话,sdb就应该是lun1了)
technovo 回复于:2006-07-14 14:44:36
cat /proc/scsi/scsi 后显示
attached devices:
host: scsi0 channel: 00 ID: 00 lun: 00
XXX XXX
XXX XXX
host: scsi1 channel: 00 ID: 00 lun: 00
我输入的是#echo "scsi add-single-device 00 00 01">/proc/scsi/scsi 是这样吗? 我还是没有发现
4nai 回复于:2006-07-14 15:02:10
echo "scsi add-single-device 0 0 0 1">/proc/scsi/scsi
david5337 回复于:2006-07-14 15:14:32
是什么盘柜???
使用的是什么HBA卡??
technovo 回复于:2006-07-14 15:16:56
引用:原帖由 4nai 于 2006-7-14 15:02 发表
echo "scsi add-single-device 0 0 0 1">/proc/scsi/scsi
非常感谢 4nai
可以了 但是我现在有两个问题
1、我的LUN很多 比方说有30个 那需要我一个一个去运行命令吗?
2、这个命令重启后就不行了 怎样做可以一直有
共同讨论
[email]maguozhong@hotmail.com[/email]
technovo 回复于:2006-07-14 15:21:24
引用:原帖由 david5337 于 2006-7-14 15:14 发表
是什么盘柜???
使用的是什么HBA卡??
盘柜是OEM的 和这个没有关系
HBA: qla2340
system: Redhat 9.03
technovo 回复于:2006-07-14 15:55:26
我在 /etc/rc.d/rc.local 里把
echo "scsi add-single-device 0 0 0 1">/proc/scsi/scsi
echo "scsi add-single-device 0 0 0 2">/proc/scsi/scsi
echo "scsi add-single-device 0 0 0 3">/proc/scsi/scsi
echo "scsi add-single-device 0 0 0 4">/proc/scsi/scsi
。。。
加进去了 这样就OK了 呵呵
哪位有更好的办法请指教
kiven 回复于:2006-07-14 16:12:02
REDHAT 9以前的版本在,initrd *** 时有时会不能更新一些文件,
很庆幸initrd.img可以进行拆解,或许这正是设计者高明所在。initrd.img不像通常的以.img为扩展名的ramdisk cramfs文件。它是经过用gzip -9进行压缩过的ramdisk文件。所以,如果直接用#mount initrd.img /temppath -o loop不能mount上,会报告你指定一个文件类型。 所以我拆解它的过程要先将其进行解压缩,然后再mount。
cd /lib/modules/kernel_version
mkinitrd /tmp/initrd-kernel_version.img kernel_version
cd /tmp
mv initrd-kernel_version.img initrd-kernel_version.img.gz
gunzip initrd-kernel_version.img.gz
mkdir /mnt/tmp
mount -o loop initrd-kernel_version.img /mnt/tmp
之后你可以按照你的需求修改文件了,
修改完成后 umount /mnt/tmp
gzip iniitr-kernel_version.img
cp /boot/
修改lilo或grub
4nai 回复于:2006-07-14 17:09:17
引用:原帖由 technovo 于 2006-7-14 15:16 发表
非常感谢 4nai
可以了 但是我现在有两个问题
1、我的LUN很多 比方说有30个 那需要我一个一个去运行命令吗?
2、这个命令重启后就不行了 怎样做可以一直有
共同讨论
[email]maguozhong@hotmail.com[/em ...
让kernel支持多lun,按你上面的方法,具体在google上搜一下,看你是否改的稍微哪有点不对。
4nai 回复于:2006-07-14 17:11:00
引用:原帖由 technovo 于 2006-7-14 15:55 发表
我在 /etc/rc.d/rc.local 里把
echo "scsi add-single-device 0 0 0 1">/proc/scsi/scsi
echo "scsi add-single-device 0 0 0 2">/proc/scsi/scsi
echo "scsi add-single-de ...
呵呵,n年以前我不知道是咋回事的时候也是这样做的。
technovo 回复于:2006-07-14 18:15:44
echo scsi-qlascan >/proc/scsi/qla2xxx/<host number>
这个会不会不用输入那么多呢 echo呢
lion_wzq 回复于:2006-07-18 20:23:49
你也可以rmmod 驱动模块,然后再次重新加载即可,如:rmmod qla2300
modprobe qla2300
|