У меня есть внешний жесткий диск, подключенный через 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 Translation) hdparm обычно предпочитает использовать 16-байтовый формат команд, когда это возможно. Но некоторые корпуса USB-накопителей некорректно работают с 16-байтовыми командами. Эту опцию можно использовать для принудительного использования меньшего 12-байтового формата команд с такими накопителями. hdparm по-прежнему будет возвращаться к 16-байтовым командам для вещей, которые нельзя сделать с 12-байтовым форматом (например, доступ к секторам за пределами 28 бит).