Как я могу получить конкретное местоположение твердотельных накопителей, подключенных через мост USB-SATA?

Я надеюсь, что кто-то может ответить на мой вопрос, потому что я в затруднении прямо сейчас.

У меня уже есть программа на Python, которая проверяет информацию о прошивке твердотельных накопителей и информацию о базе данных. Таким образом, если все в порядке, программа вставляет информацию в другую базу данных, где находятся все проверенные твердотельные накопители.

Однако это не проблема здесь.

Метод, который я использовал, чтобы заставить эту программу работать визуально, состоит в том, чтобы получить строку из команд, чтобы изображения соответствовали физическому местоположению диска, чтобы оператор мог знать, какой диск хорош или плох.

Скажем, команда:

readlink /sys/block/sd?

это дает мне такой вывод:

../devices/pci0000:00/0000:00:1f.2/ata6/host5/target5:0:0/5:0:0:0/block/sda

Из вывода я беру в качестве эталона положение порта ATA. В этом случае это будет: ata6

Этот метод жестко запрограммирован, поэтому при неправильной настройке кабеля изображения не будут отображаться должным образом.

Теперь для моих целей у меня есть тестовая плата SSD, которая представляет собой печатную плату с 8 портами SATA, которая подает питание на накопители, чтобы их можно было прочитать с помощью компьютера.

Первоначально, и даже сейчас настройка ограничена 5 дисками на проверку, 6-й порт зарезервирован для SSD ОС.

Теперь мне нужно настроить упомянутую панель на работу с 8 мостами USB-SATA, чтобы ее можно было использовать на всех ПК, но предыдущая команда не помогает мне, как раньше.

Я запускаю его, и он дает мне следующий вывод:

../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.1/2-1.3.1:1.0/host94/target94:0:0/94:0:0:0/block/sdb
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.3/2-1.3.3:1.0/host100/target100:0:0/100:0:0:0/block/sdc

Я не могу взять usb2 в качестве ссылки, потому что он одинаков для всех и хост (m), где m это число, увеличивается каждый раз, когда SSD подключен или отключен.

Я хотел бы спросить:

  1. Как можно размонтировать и смонтировать мосты USB-SATA, чтобы они могли сбросить номер хоста на 0 или 1?
  2. Есть ли лучший способ динамически получить соответствие физической позиции виртуальной позиции, скажем, sd(n) совпадает с host(m)?
  3. Какие команды мне нужно запустить в терминале, чтобы получить более точный подход к физико-логическому соответствию?

РЕДАКТИРОВАТЬ: Для справки, когда я впервые подключаю мосты SATA-USB, они запускаются как смонтированные (даже если нет подключенных SSD), поэтому предыдущая команда дает мне следующий вывод:

../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.1/2-1.3.1:1.0/host103/target103:0:0/103:0:0:0/block/sdb
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.2/2-1.3.2:1.0/host104/target104:0:0/104:0:0:0/block/sdc
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.3/2-1.3.3:1.0/host105/target105:0:0/105:0:0:0/block/sdd
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3.4/2-1.3.4:1.0/host106/target106:0:0/106:0:0:0/block/sde
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.1/2-1.4.1:1.0/host107/target107:0:0/107:0:0:0/block/sdf
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.2/2-1.4.2:1.0/host108/target108:0:0/108:0:0:0/block/sdg
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.3/2-1.4.3:1.0/host109/target109:0:0/109:0:0:0/block/sdh
../devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.4/2-1.4.4/2-1.4.4:1.0/host110/target110:0:0/110:0:0:0/block/sdi

Они на самом деле выглядят так, как будто им приказано, но если я отключу и подключу их снова, это иногда может привести к неправильному порядку.

0 ответов

Другие вопросы по тегам