Вопрос или проблема
Я пытаюсь проверить, есть ли возможность отключить энергосбережение на моем внешнем диске 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
для более четкой настройки.
Шаги по отключению режима энергосбережения
-
Проверьте текущие настройки. Вы уже выполнили
sdparm -l -a /dev/sda
, что позволило вам увидеть текущее состояние параметров. Для вашего диска важны следующие параметры:STANDBY
: отвечает за отключение компьютера при простое.SCT
: это таймер дляSTANDBY
, который определяет период бездействия, после которого диск переходит в спящий режим.
-
Используйте команду sdparm для изменения настроек. Хотя у вас уже стоит
STANDBY = 0
, попробуйте установитьSTANDBY
иSCT
явно, чтобы убедиться в их значении, выполнив следующие команды:sudo sdparm --set=STANDBY=0 -S /dev/sda sudo sdparm --set=SCT=0 -S /dev/sda
Первый параметр отключит
STANDBY
, а второй, установивSCT
в0
, предотвратит переход в спящий режим по таймеру. -
Проверьте настройки еще раз. После выполнения команд, вы можете снова проверить параметры с помощью:
sudo sdparm -l -a /dev/sda
Убедитесь, что настройки обновились и
STANDBY
иSCT
имеют правильные значения. -
Автоматизация процесса. Чтобы не выполнять эти команды вручную каждый раз после перезагрузки, вы можете создать скрипт, подобный предложенному вами:
#!/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 или к службе поддержки для получения дополнительной информации и решения проблемы.
Четкое понимание как работает ваш жесткий диск позволит вам минимизировать сопутствующие проблемы и повысить производительность системы.