LINUX.ORG.RU

[HDD][Samsung][SpinPoint M7E] Растёт <Load_Cycle_Count>, hdparm не помогает

 ,


0

1

Здравствуйте.

Есть ноутбук Samsung RV520, в котором установлен HDD SAMSUNG SpinPoint M7E [SAMSUNG HM321HI] (взято из smart'а). На нём непрерывно растёт показатель Load_Cycle_Count (я постоянно слышу щелчки [парковки головок HDD] во время работы ноута).

Только что было:

225 Load_Cycle_Count        0x0032   094   094   000    Old_age   Always       -       70206
Буквально через минуту уже так:
225 Load_Cycle_Count        0x0032   094   094   000    Old_age   Always       -       70217
Я прописал в rc.local вот это:
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
hdparm -B255 /dev/sda
hdparm -S0 /dev/sda
После перезагрузки проверяю: энергосбережение для HDD отключено:
$ sudo hdparm -B /dev/sda
/dev/sda:
 APM_level      = off
Но Load_Cycle_Count всё равно продолжает расти. Пока писАл этот пост, уже стало вот так:
225 Load_Cycle_Count        0x0032   094   094   000    Old_age   Always       -       70250
Как победить сей ужас (на других-то ноутах hdparm в автозагрузке помогал)? Просто хочется сохранить этот HDD, т.к. в остальном он устраивает (тихий [за исключением щелчков], практически не греется ― 34℃).

// Кстати, странно, что параметр Load_Cycle_Count в выхлопе smartctl находится под номером 225, а не как обычно 193.

★★★★★

Вот выхлоп smartctl полностью:

smartctl 5.42 2011-10-20 r3458 [i686-linux-3.2.7-1.fc16.i686.PAE] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     SAMSUNG SpinPoint M7E (AFT)
Device Model:     SAMSUNG HM321HI
Serial Number:    S26VJ9CBA23840
LU WWN Device Id: 5 0024e9 20652335a
Firmware Version: 2AJ10002
User Capacity:    320 072 933 376 bytes [320 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 6
Local Time is:    Sun Feb 26 11:04:32 2012 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00)	Offline data collection activity
					was never started.
					Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0)	The previous self-test routine completed
					without error or no self-test has ever 
					been run.
Total time to complete Offline 
data collection: 		( 4920) seconds.
Offline data collection
capabilities: 			 (0x5b) SMART execute Offline immediate.
					Auto Offline data collection on/off support.
					Suspend Offline collection upon new
					command.
					Offline surface scan supported.
					Self-test supported.
					No Conveyance Self-test supported.
					Selective Self-test supported.
SMART capabilities:            (0x0003)	Saves SMART data before entering
					power-saving mode.
					Supports SMART auto save timer.
Error logging capability:        (0x01)	Error logging supported.
					General Purpose Logging supported.
Short self-test routine 
recommended polling time: 	 (   2) minutes.
Extended self-test routine
recommended polling time: 	 (  82) minutes.
SCT capabilities: 	       (0x003f)	SCT Status supported.
					SCT Error Recovery Control supported.
					SCT Feature Control supported.
					SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   051    Pre-fail  Always       -       0
  2 Throughput_Performance  0x0026   252   252   000    Old_age   Always       -       0
  3 Spin_Up_Time            0x0023   089   089   025    Pre-fail  Always       -       3413
  4 Start_Stop_Count        0x0032   100   100   000    Old_age   Always       -       168
  5 Reallocated_Sector_Ct   0x0033   252   252   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x002e   252   252   051    Old_age   Always       -       0
  8 Seek_Time_Performance   0x0024   252   252   015    Old_age   Offline      -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       1105
 10 Spin_Retry_Count        0x0032   252   252   051    Old_age   Always       -       0
 11 Calibration_Retry_Count 0x0032   100   100   000    Old_age   Always       -       10
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       174
191 G-Sense_Error_Rate      0x0022   100   100   000    Old_age   Always       -       127
192 Power-Off_Retract_Count 0x0022   252   252   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0002   064   056   000    Old_age   Always       -       35 (Min/Max 14/44)
195 Hardware_ECC_Recovered  0x003a   100   100   000    Old_age   Always       -       0
196 Reallocated_Event_Count 0x0032   252   252   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   252   252   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   252   252   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0036   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x002a   100   100   000    Old_age   Always       -       0
223 Load_Retry_Count        0x0032   100   100   000    Old_age   Always       -       10
225 Load_Cycle_Count        0x0032   094   094   000    Old_age   Always       -       70268

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
No self-tests have been logged.  [To run self-tests, use: smartctl -t]


Note: selective self-test log revision number (0) not 1 implies that no selective self-test has ever been run
SMART Selective self-test log data structure revision number 0
Note: revision number not 1 implies that no selective self-test has ever been run
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Completed [00% left] (0-65535)
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

carasin ★★★★★
() автор топика

Так... Попробовал выставить так:

$ sudo hdparm -B254 /dev/sda
За ~10 минут значение Load_Cycle_Count не выросло. Надеюсь, это будет работать и в дальнейшем. Видимо, мой HDD не поддерживает работу совсем без PM'а. Посмотрим, что будет дальше.

// Даже если проблема решена, то пусть этот трэд просто будет тут ― для тех, кто столкнётся с такой же проблемой.
// Если что-то пойдёт не так, прошу считать меня коммунистом буду отписываться в трэде дальше.

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

1. Установил порт sysutils/ataidle.

2. В /etc/rc.conf.local прописал:

# sysutils/ataidle
ataidle_enable="YES"
ataidle_devices="ada0 ada1 ada2 ada3"
ataidle_ada0="-P 254"
ataidle_ada1="-P 254"
ataidle_ada2="-P 254"
ataidle_ada3="-P 254"

3. Перезагрузился.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Это, по сути, то же самое.

Просто загвоздка была в том, что значение «255» не помогало, а «254» сработало.

carasin ★★★★★
() автор топика
Ответ на: комментарий от iZEN

Но всё равно спасибо за ответ =D

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

Так...

Выяснилось, что при засыпании / просыпании ноут сбрасывает параметры энергосбережения HDD в режим -B255, то есть не поддерживаемый винтом. Сделал так:

$ cat /etc/acpi/events/lidconf 
# The rule for lid open/close events
event=button/lid.*
action=/etc/acpi/actions/lid.sh

$ cat /etc/acpi/actions/lid.sh 
#!/bin/sh
#
# This script will be executed when lid open/close event
hdparm -B254 /dev/sda
Работает только при отправлении в спячку / возвращении из неё посредством закрытия / открытия крышки ноута. Если отправлять в спячку через горячие клавиши Fn + Esc, то это, естественно, не работает (скорее всего, при автозасыпании при работе от батареи ― также).

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

Так-с...

Выяснилось, что есть более общий способ:

$ cat /usr/lib/pm-utils/sleep.d/99hdparm 
#!/bin/bash
# This script will be executed when resume working after sleeping

case "$1" in
        resume|thaw)
                hdparm -B254 /dev/sda
                hdparm -S0 /dev/sda
                ;;
        *)
                ;;
esac

exit $?
Работает во всех случаях погружения в спячку / выхода из неё.

//При использовании этого способа файлы /etc/acpi/events/lidconf и /etc/acpi/actions/lid.sh не требуются.

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

Дополнение: все скрипты должны быть исполняемыми и обязательно должны принадлежать пользователю root.

carasin ★★★★★
() автор топика
10 мая 2012 г.
Ответ на: комментарий от carasin

У меня не сработало. Скрипт отрабатывает, но сразу значения менялись обратно. Оказывается, виноват был pm-utils. Заменил в /usr/lib/pm-utils/power.d/harddrive значения на DRIVE_SPINDOWN_VALUE_BAT=«${DRIVE_SPINDOWN_VALUE_BAT:-0}» DRIVE_POWER_MGMT_AC=«${DRIVE_POWER_MGMT_AC:-254}» Теперь работает.

anonymous
()
Ответ на: комментарий от anonymous

А у меня в /usr/lib/pm-utils/power.d/ пусто.

carasin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.