Paco

Personal Content Organiser

Home / Linux

Navigation

Menu

Search

Spining-Down the HD czyli usypianie dysku

By uspic dysk po 20min nieczynnosci nalezny uzyc hdparm. najlepiej wpisac wartosci na twardo do hdparm.conf:

/dev/disk/by-path/pci-0000:00:0f.0-scsi-0:0:0:0{ spindown_time = 240 }


Uzywam disk/by-path poniewaz kolejnosc dyskow /dev/sd[abcd] moze sie zmienic podczas startu, a path pozostaje ten sam.

Nalezy dobrze przemyslec usypianie dysku, gdyz jesli bedziemy usypiac dysk systemowy a sa na nim procesy ktore czesto zapisuja dane na dysk, to bedzie on czesto budzony co skroci jego zywotnosc.

Czasami lepszym wyjsciem jest uzycie laptop-mode.


Note

wartosci dla spindown wziete z hdparm dokumentacji:

0 : spindown jest wylaczony,urzadzenie nie przejdzie w stan uspienia!
1 - 240 : wielokrotnosci 5 sekund umozliwia ustawienie czasu uspienia od 5 sekund do 20min (240*5/60)
241 - 251 : okreslaja przedzial pomiedzy 1 a 11 ,gdzie jednostka to wielokrotnosc 30 minut umozliwiajac ustawienie czasu uspienia od 30 minut do 5.5 godziny (11*30/60)
252 : 21 minut
253 : czas uspienia okreslony przez producenta dysku. Przedzial pomiedzy 8 a 12 godzinami.
255: 21 minut i 15 sekund.
254 : zarezerwowane

Warning

Starsze dyski moga inaczej interpretowac powyzsze wartosci!



Warte przeczytania:
http://www.gentoo-wiki.info/Hdparm#Spindown_-S
http://www.gentoo.org/doc/en/power-management-guide.xml#doc_chap5

Caution

W Ubutnu wersjach wyzszych niz 7.04 powyzsza metoda nie dziala poniewaz Ubuntu zamiast init skryptu hdparm dostarcza skrypt udev (/etc/udev/rules.d/85-hdparm.rules), lecz owy nie bierze pod uwage zmian w hdparm.conf.

Obszedlem problem tworzac wlasny skrypt spindown:
#!/bin/sh hdparm -S 240 /dev/disk/by-path/pci-0000:00:0f.0-scsi-0:0:0:0 hdparm -S 240 /dev/disk/by-path/pci-0000:00:0f.0-scsi-1:0:0:0 hdparm -S 240 /dev/disk/by-path/pci-0000:00:0f.0-scsi-2:0:0:0 hdparm -S 240 /dev/disk/by-path/pci-0000:00:0f.0-scsi-3:0:0:0

wklejajac go do /etc/init.d/spindown oraz zlinkowalem do odpowiedniego runlevela przy pomocy sysv-rc-conf
for i in `find /etc/rc* -name *spindown*`; do ls -l $i; done;
lrwxrwxrwx 1 root root 18 2008-10-29 20:56 /etc/rc2.d/S20spindown -> ../init.d/spindown lrwxrwxrwx 1 root root 18 2008-10-29 20:56 /etc/rc3.d/S20spindown -> ../init.d/spindown lrwxrwxrwx 1 root root 18 2008-10-29 20:56 /etc/rc4.d/S20spindown -> ../init.d/spindown lrwxrwxrwx 1 root root 18 2008-10-29 20:56 /etc/rc5.d/S20spindown -> ../init.d/spindown