it-swarm-eu.dev

Jak mohu ovládat dobu odstávky HDD?

Ve svém PC mám 2 HDD. Ubuntu vypíná sekundární HDD velmi rychle po asi 15 minutách, což je pro mě krátké. Tentokrát musím ovládat. Jak to mohu udělat?

Vyzkoušel jsem správu napájení GNOME, ale nepovažoval jsem to za užitečné.

79
user16295

Podívejte se na hdparm.

Od manuál (man hdparm na příkazovém řádku):

-S Nastavte časový limit pohotovostního (spindown) pro pohon. Tato hodnota je používána měničem k určení, jak dlouho čekat (bez aktivity disku) před vypnutím motoru vřetena pro úsporu energie. Za takových okolností může trvat až 30 sekund, než bude jednotka reagovat na následující přístup na disk, i když většina jednotek je mnohem rychlejší.

Kódování hodnoty časového limitu je poněkud zvláštní. Hodnota nula znamená „vypršení časového limitu“: zařízení automaticky nepřepne do pohotovostního režimu. Hodnoty od 1 do 240 určují násobky po 5 sekundách, což vede k vypršení časového limitu od 5 sekund do 20 minut. Hodnoty od 241 do 251 specifikují od 1 do 11 jednotek po 30 minutách, poskytující časové limity od 30 minut do 5,5 hodin. Hodnota 252 znamená časový limit 21 minut. Hodnota 253 nastavuje prodlevu definovanou dobu mezi 8 a 12 hodinami a hodnota 254 je vyhrazena. 255 se interpretuje jako 21 minut plus 15 sekund. Uvědomte si, že některé starší jednotky mohou mít velmi odlišné interpretace těchto hodnot.

Tak Sudo hdparm -I /dev/sdb | grep level zobrazí aktuální hodnotu spindown, například:

Advanced power management level: 254

Z manuálu: 254 je vyhrazeno, takže očekávám, že to bude výchozí Ubuntu (může to někdo potvrdit/rozšířit, prosím?)

Příklad:

Sudo hdparm -S 25 /dev/sdb = spindown po 25 * 5 sekundách.

Sudo hdparm -S 245 /dev/sdb = spindown po (245-240) * 30 minutách.

71
Rinzwind

Disk Utility -> vyberte jednotku HDD -> klikněte na ikonu „Další akce ...“ v pravém horním rohu -> Nastavení jednotky ...

Důl vypadá takto: screenshot

52
Ray

Pokud máte zájem o to, aby nastavení hdparm trvalo mezi restartováním, místo přidání do crontabu můžete použít /etc/hdparm.conf . Mám následující, všimněte si použití kapitálu S, nikoli malými písmeny:

command_line {
    hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215 
}

Přidejte řádek nahrazující UUID vaším, nebo můžete také určit zařízení pomocí /dev/sdX formát. UUID disku můžete zjistit pomocí příkazu Sudo blkid.

32
sergio.hs84
  1. Najděte UUID disk .

    Sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
    
  2. Upravit /etc/hdparm.conf

    Sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
  3. Hledat spindown-time nebo část nastavení disku.

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
  4. Dávám přednost odkazu na disk pomocí UUID, který zůstává stejný v různých instalacích (pokud jej nezměníte v samotném HW).

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. Pokud init skript způsobuje problémy se zaváděním, můžete předat nohdparm na příkazovém řádku jádra a skript se nespustí.

10
Ondra Žižka

Po strávení hodin a hodin jsem zjistil, že můj disk WDC nepodporuje příkaz hdparm -S, bez ohledu na hodnotu atributu idle3 (google: idle3ctl). A to je běžný problém s jednotkami WD. Ale s potěšením oznamuji, že hd-idle ( http://hd-idle.sourceforge.net/ ) funguje bezchybně. Pokud je nainstalován z balíčku vytvořeného dpkg (viz Poznámky k instalaci), vytvoří démona na Ubuntu i Debianu (config je v/etc/default/hd-idle). Funguje dobře i po obnovení z režimu spánku.

 mc výchozí # ps aux | grep hd-nečinnosti | grep -v grep | cut -c 66-; pro f v [a-d]; do hdparm -C/dev/sd $ f | grep -v "^ $"; hotovo 
/usr/sbin/hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/dev/sda : 
 stav pohonu je: aktivní/nečinný 
/dev/sdb: 
 stav pohonu je: pohotovostní 
/dev/sdc: 
 stav pohonu je: pohotovostní 
/dev/sdd: 
 stav pohonu je: pohotovostní 
 
8
user306935

Zjistil jsem, že spindown chování Samsung HD204UI závisí na úrovni APM (hdparm -B). Je-li úroveň APM 127, časový limit vybočení je 10 s. Je-li úroveň APM 150, časový limit vypršení je definován pomocí -S možnost.

5
beroal

Přidám něco jako:

@reboot Sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e  > /dev/null 2> /dev/null

na kořenový crontab. Používání uuid je lepší, protože si myslím, že sda/sdb atd. Se při každém restartu mění

5
vidar uslingsen

V Ubuntu 14.04

Disky> zvýrazněte jednotku> klikněte na ozubené kolo v pravém horním rohu> Nastavení disku> nyní máte v snadno použitelném grafickém rozhraní nastavení pohotovostního režimu, APM, AAM a zápisu do mezipaměti!

3
user245219

Neměl jsem štěstí s hdparmem na externím HDD namontovaném v USB Enclosure, který používám k podávání médií s minidlnou.

Odtud jsem narazil na nápad: https://serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-while-mounted

Nejlepší výsledky pocházejí z použití disku uuid, které najdete u:

Sudo blkid

Následující metoda vyžaduje přístup root, ale také hdparm. To používá crontab ke čtení náhodného bloku z disku každých 5 minut a ignoruje všechny zprávy. Abyste se ujistili, že máte správné UUID, otestujte jej na příkazovém řádku, jako je tento (ujistěte se, že používáte požadované UUID, ne toto):

Sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM

Měli byste vidět výstup takto:

1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`

Abych potlačil tuto zprávu, která by se mohla někde napsat, případně/filesystem (který je v mém případě na SSD), níže používám kořenový crontab. Dostanete se tam

Sudo crontab -e

Poté pod komentářem:

*/5 * * * * bash -c 'dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM' >/dev/null 2>&1

Doufám, že to pomůže někomu jinému s podobnými problémy. Bohužel se to stále zapisuje do syslogu, ale existují potenciální způsoby, jak to potlačit; viz tento příspěvek ServerFault .

[upravit překlad] 2017-01-07 09:02:

Tyto zprávy jsem mohl potlačit úpravou /etc/rsyslog.d/50-default.conf a změňte tento řádek:

*.*;auth,authpriv.none -/var/log/syslog

k tomuto:

*.*;cron,auth,authpriv.none -/var/log/syslog

Bohužel to potlačí všechny zprávy cron; Nemohl jsem dostat cron k přesměrování odhlášení z kořenového souborového systému (který je v mém případě na stárnoucím SSD, takže chci omezit zápisy), ale protože je to jen domácí server, pravděpodobně se mi moc nestýská. Určitě by doporučil tuto strategii pro výrobní stroj.

2
LawyerOnLinux

Na Debianu s disky WD zjistím, že nastavení jakékoli úrovně s hdparm -S má za následek, že měnič vrátí úroveň 254 na následující hdparm -I. Takže si opravdu nejsem jistý, jestli se točí dolů nebo ne. Myslím, že se stále točí dolů.

Tyto jednotky jsou na serverovém poli a já opravdu nechci, aby se někdy rozpadly. V minulosti jsem to kludged tím, že nastavím cron úlohu aktualizovat soubor každých pár minut.

1
dwasifar