У меня есть внешний жесткий диск, подключенный через 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-битных).