1

У меня есть внешний жесткий диск, подключенный через USB. Кажется, что обычный метод установки времени ожидания / ожидания жестких дисков использует hdparm.

Поэтому я запускаю sudo hdparm -S 200 /dev/sdb и получаю

/dev/sdb:  setting standby to 200 (16 minutes + 40 seconds)

SG_IO: bad/missing sense data, sb[]:  f0 00 01 00 50 40 c8 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

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

Я не нашел способа проверить, действительно ли значение установлено, но я могу сделать это для уровня APM (Advanced Power Management):

sudo hdparm -B 196 /dev/sdb    
/dev/sdb:
 setting Advanced Power Management level to 0xc4 (196)
SG_IO: bad/missing sense data, sb[]:  f0 00 01 00 50 40 c4 0a 00 00 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 APM_level  = 196

$ sudo hdparm -B /dev/sdb    
/dev/sdb:
 APM_level  = 196

Система - Arch Linux с ядром 3.17.6.

Почему диск все равно крутится? Что можно сделать, чтобы этого избежать?

Обновить

hdparm есть следующая опция, но результат команд тот же:

--prefer-ata12 При использовании протокола SAT (трансляция SCSI ATA) hdparm обычно предпочитает использовать 16-байтовый формат команд, когда это возможно. Но некоторые USB-накопители некорректно работают с 16-байтовыми командами. Эта опция может использоваться для принудительного использования меньшего 12-байтового формата команд с такими дисками. hdparm будет по-прежнему возвращаться к 16-байтовым командам для действий, которые невозможно выполнить с 12-байтовым форматом (например, доступ к секторам за пределами 28-битных).

0