Identification of HDD by SATA port number
Solution 1:
lsscsi --verbose will provide output similar to this:
[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]
which provides the ataN
port which can matchup with information found in the syslog. Useful if you are trying to determine where an error is coming from .
Edit: If which lsscsi
provides no output you need to install it:
sudo apt-get install lsscsi
Further Edit:
This probably goes without saying, but of course you can filter the output with grep
to locate what you are interested in for instance if you find an error like ata4: status: { DRDY ERR }
you could simple issue the command
lsscsi --verbose | grep -P1 -A1 ata4 Which would produce output like this:
[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]
Which would indicate that the device (Optiarc DVD RW AD-7280S on ata4) wasn't ready when called upon.
This should be enough information to allow you to locate the troubled device.
Solution 2:
sudo lshw -c storage -c disk
gives you a lot of info regarding your hard-drives. Eg:
*-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
I suspect physical id
gives you the physical port the HDD is connected to (2 in this case).
Solution 3:
sudo apt-get install lsscsi
tech@tech:~$ lsscsi
[2:0:0:0] disk ATA SAMSUNG HD040GJ/ ZG10 /dev/sda
[3:0:1:0] disk ATA WDC WD3200AAJS-0 03.0 /dev/sdb
[4:0:0:0] disk Generic- Compact Flash 1.00 /dev/sdc
[4:0:0:1] disk Generic- SM/xD-Picture 1.00 /dev/sdd
[4:0:0:2] disk Generic- SD/MMC 1.00 /dev/sde
[4:0:0:3] disk Generic- MS/MS-Pro/HG 1.00 /dev/sdf
this utility will give you ATA port 0 to 3.