Частая парковка головок ноутбучных шпиндельных накопителей на жёстких дисках приводит к износу механизма и преждевременной смерти диска. Чем больше значение SMART параметра Load_Cycle_Count тем ближе время вероятной кончины диска.
smartctl -A /dev/sda | grep 'Load_Cycle_Count' 193 Load_Cycle_Count 0x0012 098 098 000 Old_age Always - 21418
В старых версиях Fedora я это решал строчкой в init скрипте.
В новых использовал модуль. И итолько недавно мне подсказали решение для нормальной поддержки Hybernate и Suspend.
Создайте файл /etc/systemd/system/hddapmoff@.service
# cat /etc/systemd/system/hddapmoff@.service [Unit] Description=Disable automatic head parking for the main disk after suspend/restore After=dev-%i.device suspend.target hibernate.target sysinit.target hybrid-sleep.target #Requires=dev-%i.device [Service] Type=oneshot # адресация диска по имени например sda #ExecStart=/sbin/hdparm -B 255 /dev/%i #использую поиск диска по его ID. Научен тем с некоторыми биосами диски могут "двигаться" ExecStart=/sbin/hdparm -B 255 /dev/disk/by-id/ata-HGST_HTS725050A7E630_MA1469DA0BUK7D [Install] WantedBy=suspend.target WantedBy=hibernate.target WantedBy=hybrid-sleep.target WantedBy=sysinit.target
Для Fedora 20 у меня не получилось использовать адресацию диска по параметру
ExecStart=/sbin/hdparm -B 255 /dev/<strong>%i</strong>
Это не отрабатывало. Fedora не создавала symlink, а упорно искала файл с таким именем. (На Fedora 21 отрабатывает нормально)
strace systemctl enable hddapmoff@sda.service .... access("/etc/systemd/system/hddapmoff@sda.service", F_OK) = -1 ENOENT (No such file or directory) access("/run/systemd/system/hddapmoff@sda.service", F_OK) = -1 ENOENT (No such file or directory) access("/usr/local/lib/systemd/system/hddapmoff@sda.service", F_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/systemd/system/hddapmoff@sda.service", F_OK) = -1 ENOENT (No such file or directory) access("/etc/rc.d/init.d/hddapmoff@sda", F_OK) = -1 ENOENT (No such file or directory)
Поэтому я прописал фиксировано по ID диска
[root@younghacker system]# systemctl enable hddapmoff@.service ln -s '/etc/systemd/system/hddapmoff@.service' '/etc/systemd/system/suspend.target.wants/hddapmoff@.service' ln -s '/etc/systemd/system/hddapmoff@.service' '/etc/systemd/system/hibernate.target.wants/hddapmoff@.service' ln -s '/etc/systemd/system/hddapmoff@.service' '/etc/systemd/system/hybrid-sleep.target.wants/hddapmoff@.service' ln -s '/etc/systemd/system/hddapmoff@.service' '/etc/systemd/system/sysinit.target.wants/hddapmoff@.service'
Теперь можно быть спокойным, APM отключится даже после hibernate.
Про отключение парковки серверных дисков в RAID контроллере можно прочесть здесь.