Inumerables de veces he tenido tenido que conectar un dispositivo de almacenamiento a mi PC y a la vez era impensado apagar mi equipo para hacerlo, entonces la alternativa era hacerlo en caliente.
Inventigando un poco me he topado con el siguiente comando para hacer un scan de nuevos discos SCSI que es válido para los discos SATA:
echo "- - -" > /sys/class/scsi_host/host#/scandonde se reemplaza # con el número de controlador adecuado de su controlador SCSI.
Ejemplo:
Listamos todos los scsi_host disponibles:
[root@danispiri ~]# ll /sys/class/scsi_host lrwxrwxrwx. 1 root root 0 oct 4 02:55 host0 -> ../../devices/pci0000:00/0000:00:11.0/ata1/host0/scsi_host/host0 lrwxrwxrwx. 1 root root 0 oct 4 02:55 host1 -> ../../devices/pci0000:00/0000:00:11.0/ata2/host1/scsi_host/host1 lrwxrwxrwx. 1 root root 0 oct 4 02:55 host2 -> ../../devices/pci0000:00/0000:00:11.0/ata3/host2/scsi_host/host2 lrwxrwxrwx. 1 root root 0 oct 4 02:55 host3 -> ../../devices/pci0000:00/0000:00:11.0/ata4/host3/scsi_host/host3 lrwxrwxrwx. 1 root root 0 oct 4 02:55 host4 -> ../../devices/pci0000:00/0000:00:14.1/ata5/host4/scsi_host/host4 lrwxrwxrwx. 1 root root 0 oct 4 02:55 host5 -> ../../devices/pci0000:00/0000:00:14.1/ata6/host5/scsi_host/host5Observamos cuales están siendo utilizadas:
[root@danispiri ~]# ll /sys/block ... lrwxrwxrwx. 1 root root 0 oct 4 02:55 sda -> ../devices/pci0000:00/0000:00:11.0/ata1/host0/target0:0:0/0:0:0:0/block/sda lrwxrwxrwx. 1 root root 0 oct 4 09:41 sr0 -> ../devices/pci0000:00/0000:00:11.0/ata3/host2/target2:0:0/2:0:0:0/block/sr0 lrwxrwxrwx. 1 root root 0 oct 4 09:41 sr1 -> ../devices/pci0000:00/0000:00:14.1/ata6/host5/target5:0:0/5:0:0:0/block/sr1/dev/sda es el Disco Duro del sistema actual de 1 TB, /dev/sr0 es un lector/grabador DVD y /dev/sr1 un lector/grabador Blu-ray
En mi caso conecté un Disco Duro Sata II de 250 GB con dos particiones NTFS en la controladora 5. Hacemos un scan de nuevos discos SCSI:
echo "- - -" > /sys/class/scsi_host/host5/scanVerificar si el nuevo disco SCSI es reconocido por el SO:
[root@danispiri ~]# ll /sys/block/ ... lrwxrwxrwx. 1 root root 0 oct 4 02:55 sda -> ../devices/pci0000:00/0000:00:11.0/ata1/host0/target0:0:0/0:0:0:0/block/sda lrwxrwxrwx. 1 root root 0 oct 4 10:07 sdb -> ../devices/pci0000:00/0000:00:14.1/ata6/host5/target5:0:1/5:0:1:0/block/sdb lrwxrwxrwx. 1 root root 0 oct 4 09:41 sr0 -> ../devices/pci0000:00/0000:00:11.0/ata3/host2/target2:0:0/2:0:0:0/block/sr0 lrwxrwxrwx. 1 root root 0 oct 4 09:41 sr1 -> ../devices/pci0000:00/0000:00:14.1/ata6/host5/target5:0:0/5:0:0:0/block/sr1/dev/sdb es el Disco Duro recientemente conectado
[root@danispiri ~]# fdisk -l Disk /dev/sda: 1000.2 GB, 1000204886016 bytes 255 heads, 63 sectors/track, 121601 cylinders, 1953525168 sectores en total Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x00043f52 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 1953523711 975712256 8e Linux LVM ... Disk /dev/sdb: 250.1 GB, 250059350016 bytes 224 heads, 19 sectors/track, 114754 cylinders, 488397168 sectores en total Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x6f35861f Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 * 19 41942879 20971430+ 7 HPFS/NTFS/exFAT /dev/sdb2 41942880 488393023 223225072 7 HPFS/NTFS/exFATYa podemos montarlo y utilizarlo.
Para desconectar el disco en caliente con Linux, se recomienda utilizar la herramienta sdparm que lo instalamos si aun no lo hicimos, en RedHat y derivados:
yum install sdparmDesmontamos el disco primero, luego ejecutamos las siguientes lineas:
sdparm --command=sync /dev/sdb sdparm --command=stop /dev/sdb echo 1 >/sys/block/sdb/device/deleteVerificamos que el SO ya no reconoce el disco SCSI:
[root@danispiri ~]# ll /sys/block ... lrwxrwxrwx. 1 root root 0 oct 4 02:55 sda -> ../devices/pci0000:00/0000:00:11.0/ata1/host0/target0:0:0/0:0:0:0/block/sda lrwxrwxrwx. 1 root root 0 oct 4 09:41 sr0 -> ../devices/pci0000:00/0000:00:11.0/ata3/host2/target2:0:0/2:0:0:0/block/sr0 lrwxrwxrwx. 1 root root 0 oct 4 09:41 sr1 -> ../devices/pci0000:00/0000:00:14.1/ata6/host5/target5:0:0/5:0:0:0/block/sr1Ahora podemos desconectarlo sin problemas.
Fuente: Managing SCSI disk connectivity on a Linux host, elotrolado.net HOLA