Portál AbcLinuxu, 30. dubna 2025 20:12
Mám takový domácí servřík ("na koleně postavený") s procesorem Intel Atom. Servřík je poháněný Arch Linuxem a vše funguje, jak má. Jenom jedna věc mi vadila: všimnul jsem si sluchem, že interní SATA pevný disk WD se nějak moc často uspává a pak znovu rozjíždí. To se projevilo negativně pochopitelně i na výkonu celého servříku. Našel jsem na toto "uspávání" recept a chci se o tento recept s vámi podělit.
Pokud na počítači (servříku) nemáte nainstalovaný program hdparm
, tak ho musíte doinstalovat. Dále je třeba pevný disk /dev/sdX
(WD, "X" je třeba nahradit za "a" v případě jednoho (prvního) disku) nastavit podle vašich potřeb. S varováním, co pomohlo mně, zveřejňuju následující příkazy:
# VAROVÁNÍ: NÁSLEDUJÍCÍ PŘÍKAZY MOHOU ZNIČIT VÁŠ PEVNÝ DISK. NEBERU ZA TOTO ŽÁDNOU ODPOVĚDNOST. BYLI JSTE VAROVÁNI. PLATÍ JENOM PRO NĚKTERÉ PEVNÉ DISKY FIRMY WD (Western Digital)! /sbin/hdparm --please-destroy-my-drive -J30 /dev/sdX /sbin/hdparm -B254 /dev/sdX # Pokud nebude fungovat hodnota 254, tak zkuste 255 (vypnutí power managementu disku). # Také můžete zkusit: /sbin/hdparm -S 0 /dev/sdX # Více informací: man hdparm
V Arch Linuxu se v současné době používá systemd
. Následujcí postup na tom staví. Jako první je třeba vytvořit skript /etc/rc.local
(a nastavit ho spustitelným -- chmod +x /etc/rc.local
) s následujícím obsahem:
#!/bin/bash # Aby se muj WD pevny disk neuparkoval. /sbin/hdparm --please-destroy-my-drive -J30 /dev/sdX /sbin/hdparm -B254 /dev/sdX
Dále je třeba vytvořit soubor /etc/systemd/system/rc-local.service
(a následně ho povolit: systemctl enable rc-local.service
):
[Unit] Description=/etc/rc.local Compatibility After=network.target [Service] Type=oneshot ExecStart=/etc/rc.local RemainAfterExit=no [Install] WantedBy=multi-user.target
Mně tento postup pomohl a snad pomůže i vám. Přesný typ disku: WDC WD5000LPVT-00G33T0
Tiskni
Sdílej:
Jojo Bez toho by to neběželo.
Ne. laptop-mode-tools
nejsou nainstalované. laptop-mode.service
nemám.
Zajímavý postřeh. Díky. systemd: Nejsem z něj moc nadšený, spíš jsem byl "donucen" ho používat.
Vypadá to, že opravdu neexistuje, tedy myslím triviální samozřejmě. Arch Linux je už se systemd tak spjatý (i Arch wiki nepočítá většinou s něčím jiným).
Jinak já jsem si celou dobu myslel, že je ten pevný disk "špatně" nastavený od výrobce.
Díky.
Jasně. Proto jsem uvedl pro jistotu přesný typ disku. Vím také, že oficiálně se to dělá pomocí nějakého programu od WD pro DOS.
A co teprve Seagate - http://www.youtube.com/watch?v=kt6asKkMJq0
Co jsem googlil, tak si některý modely nepamatují nastavení APM (očividně i můj) a nebo radši hlásí, že APM nepodporují (můj podle nálady). Nakocec to vyřešilo:
hdparm -B 255 /dev/sda
hdparm -S 0 /dev/sda
v /etc/rc.local. Občas sice vydá ten zvuk, ale jen naprosto vyjímečně - bez toho tak každou minutu.
Díky za doplnění. Pokud to chápu dobře, tak pomohlo až úplné vypnutí power managementu, že jo? Co je to za disk? Nějaký "green"?
Mělo by to tak být, vypnutí všeho. Ale i tak to dělá, i když jen výjimečně.
Je to úplně nová konstrukce, nemělo by se tam nacházet nic, co se kdy v discích Seagate objevilo. Jako první mě ale zaujala spotřeba - mám USB rámeček se zdrojem (1.5A na obě větve) a ten se za pár minut rozpálí tak, že ho sotva udržím v ruce. S diskem WD Green to nedělalo. Na druhou stranu mi všechny Green disky nehezky dosloužily
Tak mi to nedalo a zkusil jsem také vypnout power management (hdparm -B 255 /dev/sda
) a na poslech je disk ještě lepší (není slyšet ten specifický zvuk, když se disk rozjíždí). Díky.
Tak to beru zpět. Je to asi na stejné úrovni jako "254". Nepomohlo ani hdparm -S 0 /dev/sda
Ten disk je taky dost náladový.
Souhlasím, chvíli je ticho, chvíli ty zvuky vydává. Tady http://www.overclock.net/t/1293732/seagate-barracude-1tb-platter-series-chirping-noise je něco o tom problému. Co jsem různě googlil, tak pomáhá výměna FW, ale pro můj model novější FW zatím neexistuje
U mě to snad byla jenom chyba v rc-local.service
. Přišel jsem totiž na poznatek, že pokud jsem sám ručně spustil /etc/rc.local
, tak disk běhal, jak měl, jinak ne. Upravil jsem tedy rc-local.service
a zatím to funguje, jak má (pro jistotu jsem servřík 3x vypnul a zapnul a testoval -- funguje to perfektně). Příslušně jsem tedy upravil tento můj blogový zápisek (část věnovanou rc-local.service
).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.