Я думаю, что решил его сам. Кажется, что я принадлежал факту, что Ubuntu использует dash
как значение по умолчанию, и я запускал скрипт с помощью sh
управляйте... "вздыхают"
После циклического повторения вокруг/sys некоторое время, я нашел это решение:
# echo /sys/class/enclosure/*/*/device/block/sdaa
/sys/class/enclosure/2:0:35:0/Slot 15/device/block/sdaa
# echo 1 > '/sys/class/enclosure/2:0:35:0/Slot 15/locate'
Или:
# echo 1 > /sys/class/enclosure/*/*/device/block/sdaa/../../enclosure*/locate
Мигать всеми обнаруженными устройствами:
parallel echo 1 \> ::: /sys/class/enclosure/*/*/device/block/sd*/../../enclosure*/locate
Это полезно, если у Вас есть диск, который так повреждается, который даже не обнаруживается Linux (например, он не вращается).
Править:
Я сделал мелкий инструмент (названным миганием) для мигания слотами. https://gitlab.com/ole.tange/tangetools/tree/master/blink
Проверьте что /sys/class/block/sdh
ссылки на. Вы видите хост, цель и LUN этот путь. Обычно этого достаточно для точного определения аппаратного адреса устройства.
Существует хороший инструмент (доступно в https://github.com/amarao/sdled ) для управления светодиодами вложения.
Вы должны быть в состоянии использовать его так, как это (не тестировано, хотя):
encled /dev/sgh fault
из README:
Установите светодиодный индикатор для «неисправности». Это не сделает устройство неисправно, просто установлено Корпус привел к «неисправному» статусу.
Этот уродливый скрипт добавляет информацию о корпусе и слоте в lsblk
вывод:
lsblk -d -o VENDOR,MODEL,SERIAL,HCTL,NAME | sed -e "`ls -1d /sys/class/enclosure/*/*/device/block/*|sed "s+.*enclosure/\(.*\)/device/block/\(.*\)+s-\2\\$-\2 \1-+"`"
(вы можете изменить список столбцов, но последний столбец должен бытьNAME
)