From http://gurkulindia.com/main/2011/05/linux-dynamically-addremove-scsi-from-linux/
To remove a specific device:
# echo "scsi remove-single-device <H> <B> <T> <L>" > /proc/scsi/scsi
where <H> <B> <T> <L> refers to Host, Bus, Target and Lun
To add a specific device:
# echo "scsi add-single-device <H> <B> <T> <L>" > /proc/scsi/scsi
where <H> <B> <T> <L> refers to Host, Bus, Target and Lun
# lsscsi
[0:0:0:0] disk ATA IC35L040AVVA07-0 VA2O /dev/sda
[0:0:1:0] disk ATA WDC WD400BB-32CL 05.0 /dev/sdb
[1:0:0:0] disk ATA QUANTUM FIREBALL A1Y. /dev/sdc
[1:0:1:0] cd/dvd JLMS DVD-ROM XJ-HD166 DD05 /dev/sr0
# echo "scsi remove-single-device 1 0 0 0" > /proc/scsi/scsi
# lsscsi
[0:0:0:0] disk ATA IC35L040AVVA07-0 VA2O /dev/sda
[0:0:1:0] disk ATA WDC WD400BB-32CL 05.0 /dev/sdb
[1:0:1:0] cd/dvd JLMS DVD-ROM XJ-HD166 DD05 /dev/sr0
# echo "scsi add-single-device 1 0 0 0" > /proc/scsi/scsi
To rescan a hostadapter:
# echo '- - -' > /sys/class/scsi_host/host<H>/scan
where <H> refers to the hostadapter or the instance of hostadapter where multiple (of the same type) exist on the system
To remove a specific device:
# echo 1 > /sys/class/scsi_host/host<H>/device/target<H>:<B>:<T>/<H>:<B>:<T>:<L>/delete
where <H> <B> <T> <L> refers to Host, Bus, Target and Lun
To add a specific device:
# echo "<B> <T> <L>" > /sys/class/scsi_host/host<H>/scan
where <H> <B> <T> <L> refers to Host, Bus, Target and Lun