Проверьте, находится ли жесткий диск в спящем режиме для Windows

12

Есть ли способ узнать, действительно ли мой жесткий диск вращается или находится в спящем режиме в Windows 7?
Я ищу ответы как для внутренних, так и для внешних жестких дисков; у них не всегда есть свет, чтобы указать их статус.

Pablo
источник
Внешний накопитель: обратите внимание на индикатор состояния. Все внутренние диски будут спать вместе, поэтому никакая утилита не может быть запущена. Для более осмысленного ответа необходимы дополнительные детали.
Harrymc
У меня есть как внутренние, так и внешние диски. У корпусов, которые я получил, нет света, показывающего спящий режим. Я думал, что вопрос очень прост, и я знаю, как это сделать в Linux, но не смог найти программное обеспечение для Win.
Пабло
Этот вопрос имеет некоторые логические проблемы, в общем, вам нужно загрузить приложение, чтобы проверить жесткий диск, который вращает ваш жесткий диск. В результате вы получаете вращение жесткого диска, когда выполняете проверку. Что вам действительно нужно, так это некоторые инструменты, которые остаются в памяти, оконный гаджет или, возможно, иконка в трее, которые продолжают следить за работой ваших дисков.
Вот ссылка: после того, как Microsoft удалила платформу боковой панели ... они хотят, чтобы вы купили окно 8 ... :)

Ответы:

5

smartctlУтилита командной строки из Smartmontools предлагает именно эту функциональность с -nпереключателем. Со страницы руководства :

-n POWERMODE, --nocheck = POWERMODE
[только ATA] Указывает, должен ли smartctl завершиться до выполнения каких-либо проверок, когда устройство находится в режиме пониженного энергопотребления. Это может быть использовано для предотвращения вращения диска smartctl.

Он работает с терминала без прав доступа даже в качестве единственного аргумента option, что делает его использование довольно простым для внутренних накопителей:

> smartctl.exe -n standby d:
smartctl 6.5 2016-05-07 r4318 [x86_64-w64-mingw32-win10] (sf-6.5-1)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

d:: Device is in STANDBY (OS) mode, exit(2)

тогда как вращающийся двигатель сообщает Device is in ACTIVE or IDLE mode

Внешние накопители и / или экзотические контроллеры могут быть более хитрыми и требуют чтения на -dкоммутаторе.

Круш
источник
4

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

Ограниченное тестирование подтверждает, что это так или иначе. При попытке получить доступ к диску, который не указан в текущих транзакциях, перед отображением диска в окне DiskMon возникает задержка, указывающая на то, что он был отключен.

Это немного грубо, я признаю!

Lunatik
источник
3

Это не элегантное решение, но попробуйте установить версию hdparm для Windows . Затем запустите hdparm.exe -C [drivename]из каталога, в котором он установлен (обычно Program Files (x86)или тому подобное). Используя этот метод, я смог определить, были ли мои диски активны / свободны или находятся в режиме ожидания (в спящем режиме, а не в режиме вращения).

Имя диска - это адрес устройства в стиле UNIX, который каким-то образом сопоставляется с буквой диска Windows / физическим устройством ( /dev/hdaобычно это основной диск, а затем /dev/hdbи т. Д.), Но я не уверен, как определить, какие псевдонимы устройств UNIX доступны. под окнами. Вы можете убедиться, что данный /dev/hd_псевдоним соответствует правильному диску, запустив hdparm.exe -i [drivename]псевдоним и проверив выходные данные, чтобы убедиться, что параметры диска соответствуют ожидаемым.

Было бы неплохо, если бы существовала графическая и / или встроенная утилита Windows, чтобы получить эту функциональность, но я не знаю ни одной.

Это все еще UNIX-версия, но вы также можете попробовать поиграть с версией smartmontools для Windows и посмотреть, предлагает ли она аналогичную функциональность в более удобном пакете. У меня нет опыта работы с этим программным обеспечением.

Зак Б
источник
4
smartmontools использует SMART - но любое использование SMART на спящем диске разбудит его. Дело улова-22.
Harrymc
1

Вы можете использовать сценарий PowerShell, чтобы получить состояние дисков, для которых эта информация доступна (не все диски возвращают этот статус).

Попробуйте это в консоли Windows PowerShell (возможно, от имени администратора):

Get-WMIObject -class Win32_DiskDrive | Select-Object caption,availability

Интересные значения для доступности можно найти здесь :

3 (0x3) : Running or Full Power
7 (0x7) : Power Off
8 (0x8) : Off Line
13 (0xD) : Power Save - Unknown
14 (0xE) : Power Save - Low Power Mode
15 (0xF) : Power Save - Standby
16 (0x10) : Power Cycle
17 (0x11) : Power Save - Warning

Если Win32_DiskDrive не работает для вас, другие возможности - Win32_LogicalDisk и Win32_Volume.

Если какой-либо из них работает, вы также можете создать скрипт, например:

$strComputer = "."
$colItems = get-wmiobject -class "Win32_Volume" -namespace "root\cimv2" -computername strComputer
foreach ($objItem in $colItems) {
      write-host "Name: " $objItem.Name " Availability: " $objItem.Availability
}
harrymc
источник
6
Вы должны были прокомментировать, что атрибут доступности всегда отображается как пустой - я думаю, что он, вероятно, не реализован Microsoft. Проблема со всеми утилитами для определения состояния диска, которые мне удалось обнаружить, заключается в том, что они используют SMART, который разбудит спящий диск, так что это настоящая головоломка. Я думаю, вам следует обратиться в Microsoft, чтобы пожаловаться на неработающий атрибут доступности.
Harrymc
Я только что попробовал это на WS2008 R2 с Powershell 2, и я также получаю пустое значение для доступности
AFract
0

Метод сохранения при сбое: положив ухо на диск или место на ноутбуке, где находится диск, активируйте доступ к диску. На любом механическом диске вы должны четко слышать раскручивающийся звук, если привод находился в режиме ожидания.

Тимар
источник
Цель, вероятно , больше , чтобы знать , если / когда жесткий диск находится в спящем режиме , а не разбудить его ...
AFract
0

Вы можете использовать бесплатное бесплатное ПО Uwe Siebers FFB - Flush File Buffers .

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

...

Спящие диски пропускаются, если не указан ключ -f.

Необработанное исключение
источник