¿Cómo puedo saber a qué número de puerto SATA de la placa base está conectado un HDD?
Queremos construir un software de copia de disco duro basado en la identificación física de SATA.
fuente
¿Cómo puedo saber a qué número de puerto SATA de la placa base está conectado un HDD?
Queremos construir un software de copia de disco duro basado en la identificación física de SATA.
lsscsi --verbose proporcionará una salida similar a esta:
[0:0:0:0] disk ATA TOSHIBA THNSNH12 HTRA /dev/sda
dir: /sys/bus/scsi/devices/0:0:0:0 [/sys/devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0]
[1:0:0:0] disk ATA WDC WD2003FZEX-0 01.0 /dev/sdb
dir: /sys/bus/scsi/devices/1:0:0:0 [/sys/devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0]
[2:0:0:0] disk ATA WDC WD3001FAEX-0 01.0 /dev/sdc
dir: /sys/bus/scsi/devices/2:0:0:0 [/sys/devices/pci0000:00/0000:00:1f.2/ata3/host2/target2:0:0/2:0:0:0]
[3:0:0:0] cd/dvd Optiarc DVD RW AD-7280S 1.01 /dev/sr0
dir: /sys/bus/scsi/devices/3:0:0:0 [/sys/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0]
que proporciona el ataN
puerto que puede coincidir con la información que se encuentra en el syslog. Útil si está tratando de determinar de dónde proviene un error.
Editar: si which lsscsi
no proporciona ningún resultado, debe instalarlo:
sudo apt-get install lsscsi
Edición adicional:
Esto probablemente no sea necesario, pero, por supuesto, puede filtrar la salida grep
para localizar lo que le interesa, por ejemplo, si encuentra un error como ata4: status: { DRDY ERR }
si pudiera simplemente emitir el comando
lsscsi --verbose | grep -P1 -A1 ata4 Lo que produciría resultados como este:
[3:0:0:0] cd/dvd Optiarc DVD RW AD-7280S 1.01 /dev/sr0
dir: /sys/bus/scsi/devices/3:0:0:0 [/sys/devices/pci0000:00/0000:00:1f.2/ata4/host3/target3:0:0/3:0:0:0]
Lo que indicaría que el dispositivo (Optiarc DVD RW AD-7280S en ata4) no estaba listo cuando se le solicitó.
Esto debería ser suficiente información para permitirle localizar el dispositivo con problemas.
sudo lshw -c storage -c disk
le brinda mucha información sobre sus discos duros. P.ej:
*-scsi:1
physical id: 2
logical name: scsi2
capabilities: emulated
*-disk
description: ATA Disk
product: ST31000524AS
vendor: Seagate
physical id: 0.0.0
bus info: scsi@2:0.0.0
logical name: /dev/sdb
version: JC4B
serial: 5VPDESM5
size: 931GiB (1TB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=d6e747d2-3e9c-47c2-865b-44f8d7cc5808 sectorsize=512
*-volume
description: EXT4 volume
vendor: Linux
physical id: 1
bus info: scsi@2:0.0.0,1
logical name: /dev/sdb1
logical name: /mnt/hdd0
version: 1.0
serial: 2de34713-f0ee-4a12-9214-21a5431a7b7b
size: 931GiB
capabilities: journaled extended_attributes large_files huge_files dir_nlink recover extents ext4 ext2 initialized
configuration: created=2013-07-20 14:14:09 filesystem=ext4 lastmountpoint=/mnt/hdd0 modified=2013-08-29 21:29:24 mount.fstype=ext4 mount.options=rw,relatime,errors=remount-ro,data=ordered mounted=2013-08-29 21:29:24 state=mounted
Sospecho que physical id
le da el puerto físico al que está conectado el HDD (2 en este caso).
lsscsi --verbose
bus info
. Dado que se desaconseja la edición extensiva , he dividido eso en una respuesta separada con un ejemplo más profundo.sudo apt-get install lsscsi
Esta utilidad le dará el puerto ATA 0 a 3.
fuente
sudo lshw -c storage -c disk
le brinda mucha información sobre sus discos duros.Los
bus info
campos le dan el puerto físico al que está conectado cada HDD / SSD (puertos 0 y 2 en este caso).Tenga en cuenta que el número puede diferir si su sistema tiene múltiples controladores SATA (integrados o mediante tarjetas de extensión).
Por ejemplo:
fuente