Отключите режим энергосбережения на диске Seagate Expansion с помощью sdparm.

Вопрос или проблема

Я пытаюсь проверить, есть ли возможность отключить энергосбережение на моем внешнем диске Seagate Expansion, который подключен через USB к NUC, работающему на Ubuntu Server. У меня возникли проблемы с использованием hdparm, так как он выдал сообщение об ошибке, поэтому я нашел sdparm, который, согласно этому посту, должен работать с моим конкретным диском.

Я запустил sudo sdparm -l -a /dev/sda и получил следующий вывод:

    /dev/sda: Seagate   Expansion Desk    0915
    Параметры конкретного устройства с прямым доступом: WP=0  DPOFUA=0
Кэширование (SBC) [ca] режим страницы:
  IC            0  [cha: n, def:  0, sav:  0]  Контроль инициатора
  ABPF          0  [cha: n, def:  0, sav:  0]  Прекращение предварительной выборки
  CAP           0  [cha: n, def:  0, sav:  0]  Анализ кэширования разрешен
  DISC          1  [cha: n, def:  1, sav:  1]  Необходимость
  SIZE          0  [cha: n, def:  0, sav:  0]  Включение размера
  WCE           1  [cha: y, def:  1, sav:  1]  Включение записи кэша
  MF            0  [cha: n, def:  0, sav:  0]  Коэффициент умножения
  RCD           0  [cha: n, def:  0, sav:  0]  Отключение кэша чтения
  DRRP          0  [cha: n, def:  0, sav:  0]  Приоритет удержания чтения по запросу
  WRP           0  [cha: n, def:  0, sav:  0]  Приоритет удержания записи
  DPTL          -1  [cha: n, def: -1, sav: -1]  Отключение длины передачи предварительной выборки
  MIPF          0  [cha: n, def:  0, sav:  0]  Минимальная предварительная выборка
  MAPF          -1  [cha: n, def: -1, sav: -1]  Максимальная предварительная выборка
  MAPFC         -1  [cha: n, def: -1, sav: -1]  Максимальная граница предварительной выборки
  FSW           0  [cha: n, def:  0, sav:  0]  Принудительная последовательная запись
  LBCSS         0  [cha: n, def:  0, sav:  0]  Размер сегмента логического блока кэша
  DRA           0  [cha: n, def:  0, sav:  0]  Отключение чтения вперед
  SYNC_PROG     0  [cha: n, def:  0, sav:  0]  Индикатор прогресса синхронного кеша
  NV_DIS        0  [cha: n, def:  0, sav:  0]  Отключение неустойчивого кэша
  NCS           255  [cha: n, def:255, sav:255]  Количество сегментов кэша
  CSS           0  [cha: n, def:  0, sav:  0]  Размер сегмента кэша
Режим страницы управления [co]:
  TST           0  [cha: n, def:  0, sav:  0]  Тип задания
  TMF_ONLY      0  [cha: n, def:  0, sav:  0]  Только функции управления заданиями
  DPICZ         0  [cha: n, def:  0, sav:  0]  Отключение проверки информации о защите, если поле защиты ноль
  D_SENSE       0  [cha: n, def:  0, sav:  0]  Данные формата дескриптора
  GLTSD         0  [cha: n, def:  0, sav:  0]  Отключение сохранения целевого журнала глобальной регистрации
  RLEC          0  [cha: n, def:  0, sav:  0]  Сообщить об исключительной ситуации в журнале
  QAM           1  [cha: n, def:  1, sav:  1]  Модификатор алгоритма очереди
  NUAR          0  [cha: n, def:  0, sav:  0]  Нет внимания устройства при освобождении
  QERR          0  [cha: n, def:  0, sav:  0]  Управление ошибками очереди
  RAC           0  [cha: n, def:  0, sav:  0]  Сообщить о проверке
  UA_INTLCK     0  [cha: n, def:  0, sav:  0]  Управление блокировками внимания устройства
  SWP           0  [cha: n, def:  0, sav:  0]  Защита записи программного обеспечения
  ATO           0  [cha: n, def:  0, sav:  0]  Владелец тега приложения
  TAS           0  [cha: n, def:  0, sav:  0]  Статус прерванного задания
  ATMPE         0  [cha: n, def:  0, sav:  0]  Страница режима тега приложения включена
  RWWP          0  [cha: n, def:  0, sav:  0]  Отклонить запись без защиты
  SBLP          0  [cha: n, def:  0, sav:  0]  Поддерживаемые длины блоков и информация о защите
  AUTOLOAD      0  [cha: n, def:  0, sav:  0]  Режим автозагрузки
  BTP           0  [cha: n, def:  0, sav:  0]  Период времени ожидания занятости (100 мкс)
  ESTCT         0  [cha: n, def:  0, sav:  0]  Время завершения расширенного самотеста (сек)
Режим страницы условий питания [po]:
  PM_BG         0  [cha: n, def:  0, sav:  0]  Управление питанием, фоновые функции, приоритет
  STANDBY_Y     0  [cha: n, def:  0, sav:  0]  Включение таймера STANDBY_Y
  IDLE_C        0  [cha: n, def:  0, sav:  0]  Включение таймера IDLE_C
  IDLE_B        0  [cha: n, def:  0, sav:  0]  Включение таймера IDLE_B
  IDLE          0  [cha: n, def:  0, sav:  0]  Включение таймера IDLE_A
  STANDBY       0  [cha: y, def:  1, sav:  0]  Включение таймера STANDBY_Z
  ICT           0  [cha: n, def:  0, sav:  0]  Таймер состояния IDLE_A (100 мс)
  SCT           4294967286  [cha: y, def:9000, sav:4294967286]  Таймер состояния STANDBY_Z (100 мс)
  IBCT          0  [cha: n, def:  0, sav:  0]  Таймер состояния IDLE_B (100 мс)
  ICCT          0  [cha: n, def:  0, sav:  0]  Таймер состояния IDLE_C (100 мс)
  SYCT          0  [cha: n, def:  0, sav:  0]  Таймер состояния STANDBY_Y (100 мс)
  CCF_IDLE      0  [cha: n, def:  0, sav:  0]  Проверка состояния при переходе из состояния ожидания
  CCF_STAND     0  [cha: n, def:  0, sav:  0]  Проверка состояния при переходе из режима ожидания
  CCF_STOPP     0  [cha: n, def:  0, sav:  0]  Проверка состояния при переходе из остановленного состояния

Я совершенно новичок в терминологии, связанной с HDD, но, по моему мнению, STANDBY будет булевым значением для того, чтобы контролировать, должен ли диск работать в режиме ожидания? Доставка этого значения на 1 вместо 0 скажет диску не “засыпать” или это будет наоборот?

Есть ли какие-либо другие настройки в списке, на которые мне следует обратить внимание или я совершенно не прав?

Недавно я наткнулся на тот же вопрос, который хотел решить. У меня есть несколько WD My Book 25ED, которые входят в спящий режим даже во время операций записи. В любом случае, после некоторых исследований я написал скрипт, sdparm-disable_sleep.sh, который, когда его выполняют, решает мою проблему:

#!/bin/bash
# Использование: sdparm-disable_sleep.sh <устройство>
[[ -n "${1}" && -b "${1}" ]] \
  && sdparm --flexible --page=po -l -a "${1}" \
  && { sdparm --flexible --set=STANDBY_Z=0 -S "${1}" \
       && sdparm --flexible --page=po -l -a "${1}"; }

По сути, это команда sdparm --set=STANDBY_Z=0 -S <устройство>, которая устанавливает STANDBY_Z в 0, тем самым отключая таймер и сохраняя эту настройку.

В вашем случае параметр, похоже, называется просто STANDBY, и исходя из вашего размещенного вывода, он уже отключен (поскольку сохраненное значение 0). Возможно, прошивка сбойная, и я бы попытался выполнить команду в любом случае – возможно, без -S – и посмотреть, останется ли это в силе хотя бы до перезагрузки/реинициализации диска.

Ответ или решение

Для отключения режима энергосбережения на внешнем жестком диске Seagate Expansion Drive, подключенном через USB к вашему NUC с установленным Ubuntu Server, можно использовать утилиту sdparm. В вашем случае вывод команды sudo sdparm -l -a /dev/sda указывает на то, что функции энергосбережения уже отключены, так как параметр STANDBY имеет значение 0.

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

Шаги по отключению режима энергосбережения

  1. Проверьте текущие настройки. Вы уже выполнили sdparm -l -a /dev/sda, что позволило вам увидеть текущее состояние параметров. Для вашего диска важны следующие параметры:

    • STANDBY: отвечает за отключение компьютера при простое.
    • SCT: это таймер для STANDBY, который определяет период бездействия, после которого диск переходит в спящий режим.
  2. Используйте команду sdparm для изменения настроек. Хотя у вас уже стоит STANDBY = 0, попробуйте установить STANDBY и SCT явно, чтобы убедиться в их значении, выполнив следующие команды:

    sudo sdparm --set=STANDBY=0 -S /dev/sda
    sudo sdparm --set=SCT=0 -S /dev/sda

    Первый параметр отключит STANDBY, а второй, установив SCT в 0, предотвратит переход в спящий режим по таймеру.

  3. Проверьте настройки еще раз. После выполнения команд, вы можете снова проверить параметры с помощью:

    sudo sdparm -l -a /dev/sda

    Убедитесь, что настройки обновились и STANDBY и SCT имеют правильные значения.

  4. Автоматизация процесса. Чтобы не выполнять эти команды вручную каждый раз после перезагрузки, вы можете создать скрипт, подобный предложенному вами:

    #!/bin/bash
    # Usage: sdparm-disable_sleep.sh <device>
    [[ -n "${1}" && -b "${1}" ]] \
     && sdparm --flexible --page=po -l -a "${1}" \
     && { sdparm --flexible --set=STANDBY=0 -S "${1}" \
          && sdparm --flexible --set=SCT=0 -S "${1}"; }

    Сохраните его, сделайте исполняемым (chmod +x sdparm-disable_sleep.sh) и добавьте в автозапуск системы.

Заключение

Если после выполнения всех шагов диск все равно переходит в спящий режим, возможно, дело в специфике прошивки или драйверов вашего диска. В таких случаях может быть полезно обратиться к сообществу пользователей Seagate или к службе поддержки для получения дополнительной информации и решения проблемы.

Четкое понимание как работает ваш жесткий диск позволит вам минимизировать сопутствующие проблемы и повысить производительность системы.

Оцените материал
Добавить комментарий

Капча загружается...