HDD'nin kapanma süresini nasıl kontrol edebilirim?


71

Bilgisayarımda 2 HDD var. Ubuntu ikincil HDD'yi yaklaşık 15 dakika sonra çok hızlı bir şekilde kapatıyor, bu benim için kısa. Bu sefer kontrol etmem gerekiyor. Nasıl yapabilirim?

GNOME güç yönetimini denedim ama faydalı olmadı.

Yanıtlar:


67

Bir göz atın hdparm.

Gönderen kılavuzun ( man hdparmkomut satırında):

-S Bekleme (iş mili) zaman aşımını sürücü için ayarlayın. Bu değer, güç tasarrufu için iş mili motorunu kapatmadan önce ne kadar süre bekleyeceğinizi (disk etkinliği olmadan) belirlemek için sürücü tarafından kullanılır. Bu şartlar altında, çoğu sürücü çok daha hızlı olmasına rağmen, bir sonraki disk erişimine cevap vermek için sürücünün 30 saniye kadar sürebilir.

Zaman aşımı değerinin kodlanması biraz tuhaf. Sıfır değeri "zaman aşımları devre dışı" anlamına gelir: cihaz otomatik olarak bekleme moduna girmez. 1 ila 240 arasındaki değerler 5 saniyenin katlarını belirtir ve 5 saniyeden 20 dakikaya kadar zaman aşımına uğrar. 241 - 251 arasındaki değerler 1 - 11 birim 30 dakika belirtir, bu süre 30 - 5,5 saat arasında zaman aşımına uğrar. 252 değeri, 21 dakikalık bir zaman aşımını gösterir. 253 değeri, satıcı tarafından tanımlanmış bir zaman aşımı süresini 8 ile 12 saat arasında ayarlar ve 254 değeri saklanır. 255, 21 dakika artı 15 saniye olarak yorumlanır. Bazı eski sürücüler bu değerlerin çok farklı yorumlara sahip olabileceğini unutmayın.

Dolayısıyla sudo hdparm -I /dev/sdb | grep level, mevcut iş mili değerini gösterecektir, örneğin:

Advanced power management level: 254

El kitabından: 254 saklıdır, bu yüzden Ubuntu'nun varsayılan olmasını bekliyorum.

Örnek:

sudo hdparm -S 25 /dev/sdb = 25 * 5 saniye sonra işmili.

sudo hdparm -S 245 /dev/sdb = sonradan iş parçacığı (245-240) * 30 dakika.


Teşekkürler bana çok yardımcı olan ipuçları için Rinzwind ancak ubuntu'nun bir sonraki sürümünde bunun için GUI görmeyi diliyorum veya gnome güç yöneticisine entegre edilebilsem
user16295

4
Lzap'ın cevabına gelince grep, APM ( -Bparm) için görünüyorsun ama iş hakkında konuş -S. APM hakkında da bir şey biliyor musunuz?
turbo,

3
Mevcut -Bayar yukarıda belirtildiği gibi gösterilir. Geçerli -Sayarı nasıl görebilirim ?
SabreWolfy

5
sudo hdparm -y /dev/sdbhemen canavarı öldürür
siamii

1
@SabreWolfy Bunu ayrı bir soru olarak sordum: Mevcut sürüş geri dönüş süresini nasıl öğrenebilirim?
ændrük

46

Disk Yardımcı Programı -> HDD sürücüsünü seçin -> sağ üst köşedeki "Diğer işlemler ..." simgesine tıklayın -> Sürücü ayarları ...

Benimki şuna benziyor: ekran görüntüsü


6
Çok kolay, teşekkürler! (Eğer buna sahip değilseniz yüklemeniz gereken paket BTW gnome-disk-utility.
Gerhard Burger

Linux gitmenin yolu! +1
neu-rah

Evet, son derece kolay - bu burada.
Zzzach ...

@ Ray, efendim, harikasınız! Temelde harici bir HDD için işe yarayacağına dair hiçbir ümidim yoktu, fakat oldu!
UTF-8

1
Püf noktalarının çoğu neden hataya açık dosya düzenleme veya konsol işlemlerini içerir, buna karşın kullanıcı dostu araçlar şimdiden çıkar!
WooYek,

29

Eğer hdparm 'ın yeniden başlatmalar arasında kalıcı bir ayar yapmasını istiyorsanız, crontab' a eklemek yerine, kullanabilirsiniz /etc/hdparm.conf. Küçük harf değil, S harfinin kullanımına dikkat edin:

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

UUID'i değiştirerek bu satırı kendinizinkine ekleyin, ya da /dev/sdXformatı kullanarak cihazı belirleyebilirsiniz . Diskin UUID'sini komut ile öğrenebilirsiniz sudo blkid.


3
command_lineBugünlerde kullanmak doğru mu? Bende farklı örnekler var /etc/hdparmmı?
Dims

1
Ondra Žižka'nın cevabı daha güncel görünüyor.
Raphael,

9
  1. Diskinizin UUID'sini bulun .

    sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
    
  2. Düzenle /etc/hdparm.conf

    sudo -H gedit /etc/hdparm.conf  # Be careful from now on
    
  3. Arayın spindown-timeveya disk ayarları bölümü.

    /dev/disk/by-label/4TB {
        spindown_time = 1200
    }
    
  4. Diske farklı kurulumlarda aynı kalan UUID ile başvurmayı tercih ederim (HW'nin içinde değiştirilmedikçe).

    /dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
        spindown_time = 1200
    }
    
  5. Init betiği önyükleme sorunlarına neden olursa, nohdparm çekirdek komut satırından geçebilirsiniz ve script çalışmaz.


Bu parametrenin birimleri nelerdir?
16’da

IIRC, saniye. Veya belki de bu, "10 yaşın altındaysa, on saniye, 100 yaşın altındaysa dakika" gibi vahşi kurallara sahip olan parametredir. Bulmam gerek.
Ondra Žižka

2
Bu birimler değil, şunu kontrol edin: wiki.archlinux.org/index.php/Hdparm
Ondra Žižka

Şerefe, nedense onu bulamadım man hdparm.conf.
saat

man hdparm.confdolaylı olarak, değerin -Sbu yüzden geçtiğini okur <255 için değerler üst cevapta kural ile uyumlu olmalıdır . Daha fazla bilgi bekliyoruz.
dma_k

8

Saatlerce ve saatlerce harcadıktan sonra, WDC sürücümün boşta3 öznitelik değeri ne olursa olsun (google: idle3ctl) hdparm -S komutunu desteklemediğini öğrendim. Ve bu WD sürücülerinde yaygın bir sorundur. Ancak hd-boşta ( http://hd-idle.sourceforge.net/ ) kusursuz çalıştığını bildirmekten memnuniyet duyuyorum . Dpkg tarafından oluşturulmuş bir paketten kurulursa (Yükleme notlarına bakın), hem ubuntu hem de debian'da daemon oluşturur (config / etc / default / hd-idle konumunda). Ayrıca hazırda bekletme modundan çıktıktan sonra da iyi çalışır.

mc varsayılan # ps aux | grep hd boşta | grep -v grep | cut -c 66-; [reklam] 'daki f için; hdparm yapmak -C / dev / sd $ f | grep -v "^ $"; tamam
/ usr / sbin / hd-rölantide -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log
/ Dev / sda:
 sürücü durumu: aktif / boşta
/ Dev / SDB:
 sürücü durumu: bekleme
/ Dev / SDC:
 sürücü durumu: bekleme
/ Dev / SDD:
 sürücü durumu: bekleme



5

Samsung HD204UI'nin iş mili davranışının APM seviyesine bağlı olduğunu keşfettim ( hdparm -B). APM seviyesi 127 ise, iş mili zaman aşımı 10 sn'dir. APM seviyesi 150 ise, iş mili zaman aşımı -Sseçeneği ile tanımlanır .


hdparm -Sseçeneği ayarlayabilir ancak alamaz (bkz . Disk işlenme süresi nasıl belirlenir ). Bunu elde etmek için, "Disk" GUI yazılımını kullanın. Ekran görüntüsündeki diğer cevaba bakınız .
KrisWebDev

5

Gibi bir şey eklerim:

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

root'un crontab'ına. Uuid kullanmak daha iyi çünkü bence sda/ sdbvs. her yeniden başlatmada değişiyor gibi görünüyor.


10
Neden kullanmaz hdparm.conf?
ændrük

3

Ubuntu'da 14.04

Diskler> sürücüyü vurgula> sağ üst köşedeki dişliye tıkla> Drive Settings> artık GUI'yi kullanmak için Bekleme, APM, AAM ve Yazma Önbelleği ayarlarına sahipsin!


Bu işi nasıl yapıyorsun? Bunu ayarladım ve yeniden başlattıktan sonra tekrar içeri girersem sürücünün kapanması gerektiğini hatırladı, ama asla yapmaz. hdparm -C daima aktif olduğunu gösterir ve sadece komut satırından hdparm -S xxx çalıştırarak çalışmasını sağlar.
dan Carter

1
"Diskleri" nerede buluyorsun?
nealmcb

1

Debian'da, WD sürücülerle, hdparm -S ile herhangi bir seviyenin ayarlanmasının , sürücünün sonraki hdparm -I'de 254 seviyesine dönmesine neden olduğunu buldum . Yani dönüp dönmediklerinden emin değilim. Bence hala dönüyorlar.

Bu sürücüler bir sunucu dizisinde ve gerçekten dönmelerini istemiyorum. Geçmişte, bir dosyayı birkaç dakikada bir güncellemek için bir cron işi ayarlayarak bunu zorladım.


1

Minidlna ile medyada kullandığım bir USB kasasına monte edilmiş harici bir HDD'de hdparm ile hiç şansım olmadı.

Buradan bir fikir gördüm: https://serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-while-mounted

En iyi sonuçlar, bulabileceğiniz disk kullanıcı adlarını kullanmaktan kaynaklanır:

sudo blkid

Aşağıdaki yöntem kök erişimi gerektirir, ancak hdparm da öyle. Bu, her 5 dakikada bir sürücüden rastgele bir blok okumak için crontab kullanır ve tüm mesajları yok sayar. Doğru UUID'ye sahip olduğunuzdan emin olmak için, bunu komut satırında sınayın (istediğiniz UUID'yi kullandığınızdan emin olun).

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

Çıktıyı böyle görmelisin:

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

Potansiyel olarak / dosya sistemi (benim durumumda bir SSD olan) yazılı bir yerde sonlanabilecek bu mesajı bastırmak için aşağıda kök crontab'da kullanıyorum. İle oraya

sudo crontab -e

Ardından, yorumlar altında:

*/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

Umarım bu benzer sorunları olan birine yardımcı olur. Ne yazık ki, bu hala sistem günlüğüne yazılır, ancak bunu bastırmanın potansiyel yolları vardır; bkz bu ServerFault yazı .

[değiştir] 2017-01-07 09:02:

Bu satırı değiştirmek için /etc/rsyslog.d/50-default.conf dosyasını düzenleyerek bu mesajları bastırabildim:

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

buna:

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

Ne yazık ki, bu tüm cron mesajlarını baskılar; Kök dosya sistemini (benim durumumda yaşlanmakta olan bir SSD'de bulunan oturum açma oturumunu kapatmak için yeniden yönlendirmek için cron alamadım, bu yüzden yazma sınırlamak istiyorum), ancak bu sadece bir ev sunucusu olduğu için, muhtemelen çok fazla şey kaçırmıyorum. Kesinlikle misiniz değil bir üretim makinesi için bu stratejiyi önerilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.