LINUX.ORG.RU

Жесткая парковка головок HDD после добавления SSD

 , ,


2

5

Всем, доброго времени суток. Пользуюсь openSUSE уже шесть лет. Система стояла на HDD. Недавно докупил второй диск SSD и поставил систему туда. Теперь в ноутбуке 2 диска. После этого апгрейда возникла проблема жесткой парковки головок HDD при выключении системы и перезагрузке. Причем, если перегрузиться в openSUSE со старого HDD - проблемы нет. Перекопал уже кучу инфы, не пойму, где проблема и какие нужны настройки. hdparm-ом проверял значения hdparm -B /dev/sda = 127 в обоих системах. Сделал поиском по всему каталогу настроек с командой hdparm - ничего не нашел. Вообще не смог найти, где дергается hdparm. Посмотрел в сторону systemd, тоже сделал поиск по юнитам hdparm - не нашел. Может вообще не то ищу и проблема в параметрах ядра? Нужна помощь...

Выкинь одно из них

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

Возможно вы не так поняли :) Пользуюсь системой 6 лет - имелось ввиду, что в принципе openSUSE. А так всё стоит самой свежее. И систему на SSD поставил вчера, слитую с официального сайта. С задачей, похоже, почти разобрался. При выключении питания после размонтирования дисков с помощью systemd комп сразу вырубается. Видимо потому, что ssd уж очень на 6Gb/s моментально выгружает всё. После этого, т.к. питание уже отсутствует, HDD экстренно убирает паркует головки. Попробовал перед тем как выполнить poweroff диск HDD увести в сон с помощью hdparm -y /dev/sdb. Щелчков не оказалось. В общем, решил попробовать набросать unit для systemd, чтобы после размонтирования дергал эту команду.

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

Головки диски ещё с начала 90-х сами паркуют. Суть проблемы остаётся непонятной.

Вам нужен характерный щелчок, как в 80-тых? Запишите себе mp3 и проигрываете себе при shutdown.

beastie ★★★★★ ()
Последнее исправление: beastie (всего исправлений: 2)

Как насчёт 255/254? Почему 127-то? 127 не запрещает парковать головы.

/etc/udev/rules.d/50-hdparm.rules
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sdb", RUN+="/usr/bin/hdparm -B 254 -S 0 /dev/sdb"

sdb замени на то, что hdd.

Лучше наоборот усыплять после загрузки, например так

/etc/systemd/system/hdparm.service
[Unit]
Description=hdparm sleep

[Service]
Type=oneshot
ExecStart=/usr/bin/hdparm -q -S 120 -y /dev/sdb

[Install]
WantedBy=multi-user.target

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

Те, которые мрут как мухи? ;) WD Green — это уже давно ругательство.

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

Специально для вас поясняю. Именно характерный щелчок я и называю жесткой парковкой. В нормальном режиме работы, про который писал, при выключении, головки сами паркуются. И щелчка не слышно, т.к. они командой уводятся заранее. После установки SSD ощущение, что питание резко вырубилось и HDD резко увел головки в экстренном режиме. Хочу вернуть нормальное мягкое отключение, как было до этого.

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

Именно характерный щелчок я и называю жесткой парковкой.

Это вам только кажется. Ещё раз — проблема эта была решена ещё в начале 90-х. Спите спокойно. Щелчок говорит только о том, что с диском что-то не в порядке.

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

В первом посте писал, что на этом же компе тут же загружаюсь с HDD в такую же систему, никаких щелчков. Так что не кажется. Прошу, если помочь не чем, то смысла дискутировать не вижу.

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

Вероятно можно добавить в условия юнита зависимость, чтобы он отрабатывал перед каждым выключением, и останавливать диск в нём вручную.

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

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

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

Ладно, мне лень бодаться. Устраивайте дальше «заход солнца в ручную». HDD уже давно умеют сами проследить выключение питания.

beastie ★★★★★ ()

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

Ах да, в настройках BIOS какой выбран режим работы контроллера? Надеюсь, AHCI, а не IDE («Compatible»)?

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

Да, режим стоит AHCI. Параметры завтра покажу, сейчас уже ухожу...

makutyanin ()

Чушь какая...

Вам надо, чтоб «электрик медленно вытаскивал вилку из розетки», как в кино? Щелчок при парковке — это нормально. А проблема высосана из пальца.

olegkrutov ★★ ()
Ответ на: Чушь какая... от olegkrutov

ТС говорит, что раньше не щёлкало. И это, современные ноутбучные диски вроде как тихо паркуются, разве нет?

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

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

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

Понятие "тихо" субъективно

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

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

Покажи параметры ядра

BOOT_IMAGE=/boot/vmlinuz-4.1.31-30-default root=UUID=510e4bf3-2492-458e-ab44-2928233a91d3 ro splash=silent quiet showopts

makutyanin ()
Ответ на: Понятие "тихо" субъективно от olegkrutov

щелкать будет по-любому, тише или громче

Щелкать стало ровно так, как если я нажму кнопку питания и буду удерживать для аварийного останова.

Поставил на ssd параллельно для проверки Windows 10 - тоже не щелкает.

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

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

так что да, крути параметры hdparm,

SMART: ***retract count***

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

Это системд, видимо, определяет остальные винты как первый и работает с ними так же. Кривое поделие Поцтеринга словно шкатулка удивительных багов. Кто знает сколько их еще обнаружится в нем.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

а так перенеси /home на жесткий диск и все может стать пучком.
вернее вернуться к нормальной работе

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

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

Да, ощущение, что система на ssd моментально выгружается и не отправляет команду на нормальную парковку. Кручу параметры hdparm.

SMART: ***retract count***

Power-Off_Retract_Count = 85

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

а так перенеси /home

В принципе так и есть. HDD зашифрован cryptsetup. При загрузке монтируется на ssd-шный /home/Documents

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

Такой редкий юзкейс: система на ссд, хлам на хдд.

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

Системд вроде был создан с целью общей унификации, а не для того, чтобы мейнтейнеры дистрибутива добавляли специфичные костыли-конфиги в него. Разрабы системд хотели как лучше, а получилось как всегда.

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

Разрабы системд хотели вебсервер и генератор QR-кодов в ините, они их получили. Не приписывай людям желаемое поведение.

anonymous ()

Решено

Сегодня руки дошли решить задачу.

В каталог /usr/lib/systemd/system-shutdown помещаем любой скрипт, который будет выполнен непосредственно перед halt/poweroff/reboot

В моём случае:

#!/bin/sh

/sbin/hdparm -Y /dev/disk/by-id/scsi-SATA_Hitachi_HTS54757_J2140059F5LV3A
После этого диск комфортно паркуется так, как раньше перед выключением питания.

Дополнительно добавил в /etc/systemd/system service, чтобы при загрузке системы настроить диск на минимальное сбережение энергии (минимизирую количество парковок):

[Unit]
Description=hdparm configuration

[Service]
Type=oneshot
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/scsi-SATA_Hitachi_HTS54757_J2140059F5LV3A

[Install]
WantedBy=multi-user.target graphical.target

Также, после выхода из спящего режима или из режима ожидания, происходило восстановления параметров по-умолчанию APM настроек.

Устранил добавлением скрипта в /usr/lib/systemd/system-sleep (все скрипты в этом каталоге вызываются до и после выхода из спящего и режима ожидания):

#!/bin/sh

case $1/$2 in
  post/*)
    /sbin/hdparm -B 254 /dev/disk/by-id/scsi-SATA_Hitachi_HTS54757_J2140059F5LV3A
    ;;
esac

Спасибо всем, кто проявил подлинное участие.

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

А ничего, что systemd вообще не имеет никакого отношения к power-off дисков при выключении? Этим занимается ядро внутри системного вызова reboot().

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от Deleted

Как конкретно и на какое поведение? Мне такие случаи не известны. Ты пытаешься кого-то обвинять, не особо представляя, как вообще работает система.

И я повторяю ещё раз: AFAIK, ядро должно гасить диски внутри reboot() вне зависимости от того, что наворотил юзерспейс.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 5)
Ответ на: комментарий от intelfx

Оно и гасит, но на полпути головки паркуются. У меня такое с WD Green (не системный) на Windows 7 бывает, перезагружаешь/выключаешь ее и тут жесткий скрежет головок. В линуксе такого нет, естественно.

Ты пытаешься кого-то обвинять, не особо представляя, как вообще работает система.

То, что я неправ, не значит, что баг не может быть в системд. Перечитай пост топикстартера.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: Решено от makutyanin

молодец :-)
с полки пирожки сам нахватаешь, они еще горячие.


ну как и предполагалось - ядро и системд - разные вселенные со своей атмосферой.

хотя, справедливости ради, последний год починили ноутбучные WD 500/640/750BPVT, они перестали парковаться каждые 4сек.

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

нет, это просто говорит о том, что даже все такие производители могут иметь упрямство баранов.

опять же серия WD ***BPVT. idle3 ничегошеньки не меняло и не шило...
исправили где-то в ведре.

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

ну вот в ведре драйвера и скурвили.
приходится лечить через системд.

вроде и разные системы, а ты глянь какая гадость.

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

Баг может быть даже в виде опечатки или неправильного значения в банальном конфиге самого системд или в юните hdparm, если тот поставляется в пакете системд.

Еще свежа история с багом при проверке дисков, которая занимала более 15 мин. при определенной ситуации. А тут юзкейс видимо особенный, Лёня и Ко это не учли :)

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