Как узнать, к какому номеру порта SATA материнской платы подключен жесткий диск?
Мы хотим создать программное обеспечение для жесткого диска, основанное на физической идентификации SATA.
источник
Как узнать, к какому номеру порта SATA материнской платы подключен жесткий диск?
Мы хотим создать программное обеспечение для жесткого диска, основанное на физической идентификации SATA.
lsscsi --verbose предоставит вывод, подобный следующему:
[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]
который предоставляет ataN
порт, который может соответствовать информации, найденной в системном журнале. Полезно, если вы пытаетесь определить, откуда исходит ошибка.
Редактировать: Если which lsscsi
не выводится, вам нужно установить его:
sudo apt-get install lsscsi
Дальнейшее редактирование:
Это, вероятно, само собой разумеется, но, конечно, вы можете отфильтровать вывод, grep
чтобы найти то, что вас интересует, например, если вы обнаружите ошибку, как ata4: status: { DRDY ERR }
вы могли бы просто выполнить команду
lsscsi --verbose | grep -P1 -A1 ata4 Который будет производить вывод, как это:
[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]
Что означало бы, что устройство (Optiarc DVD RW AD-7280S на ata4) не было готово при вызове.
Этой информации должно быть достаточно, чтобы вы могли найти проблемное устройство.
sudo lshw -c storage -c disk
дает вам много информации о ваших жестких дисках. Например:
*-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
Я подозреваю, что physical id
дает вам физический порт, к которому подключен жесткий диск (в данном случае 2).
lsscsi --verbose
bus info
. Поскольку обширные ответы на редактирование не приветствуются , я разделил это на отдельный ответ с более подробным примером.sudo apt-get установить lsscsi
эта утилита выдаст порт ATA от 0 до 3.
источник
sudo lshw -c storage -c disk
дает вам много информации о ваших жестких дисках.В
bus info
полях указан физический порт, к которому подключен каждый жесткий диск / твердотельный накопитель (в данном случае порты 0 и 2).Обратите внимание, что число может отличаться, если в вашей системе установлено несколько контроллеров SATA (встроенных или через карты расширения).
Например:
источник