for i in `find /sys -iname scan`;do echo “- – -" >$i;done

==================
for i in $(echo `find /sys/class/scsi_host -name “host*"`); do echo “- – -" > ${i}/scan; done

and for FC
for i in $(echo `find /sys/class/fc_host -name “host*"`); do echo “1″ > ${i}/issue_lip/; done

Sending “- – -" to /sys/class/scsi_host/host[012]/scan is telling the SCSI host adapter to look for new disks on every channel “(-)", every target “(-)", and every lun “(-)". – this is the right thing to do if you add a new disk to the system while it’s powered on.

Sending a “1″ to /sys/class/block/sdb/device/rescan is telling the SCSI block device to refresh it’s information about where it’s ending boundary is (among other things) to give the kernel information about it’s updated size. – this is the right thing to do if you change the size of an existing disk while it’s powered on.

# 仅对扩展空间有效,新添加SCSI硬盘无效。
for i in $(echo `ls /sys/class/scsi_device`); do echo “1″ > ${i}/device/rescan; done

===================
不重启linux同步磁盘分区信息到内核
partx -va /dev/sda
partx -va /dev/sda3 /dev/sda
# 查看新分区的信息是否同步到内核
cat /proc/partitions