मैं बूट के बाद एक hdparm कमांड कैसे चला सकता हूं और फेडोरा 19 पर फिर से शुरू कर सकता हूं?


10

मैंने एक नया HD (WD5000BPVT) खरीदा जो दुर्भाग्य से हर 5-8 सेकंड में सोने की कोशिश करता है। न केवल क्लिकिंग शोर काफी श्रव्य है, 1 सेकंड का पालक समय दिन-प्रतिदिन के उपयोग में बहुत ध्यान देने योग्य विलंबता जोड़ता है।

मैंने पाया है hdparm -B 254 /dev/sdaकि बहुत कम नींद अक्षम होगी लेकिन मुझे नहीं पता कि हर बार ड्राइव चालू होने पर इस सेटिंग को कैसे लागू किया जाए। dconf-editorऔर 'पावर प्रबंधन प्राथमिकताएं' HD सेटिंग्स के संबंध में दोनों कुछ न करें ऐप्लिकेशन। मेरे पास कोई रास्ता /etc/hdparmया /etc/acpiरास्ता नहीं है । MATE विंडो मैनेजर है।

फेडोरा 19 पर, जब भी ड्राइव सक्रिय होता है, तो मैं इस कमांड को चलाने के लिए कैसे मजबूर कर सकता हूं?

जवाबों:


12

मुझे एक ही समस्या थी कि यहाँ कोई भी समाधान मेरी आवश्यकताओं के अनुकूल नहीं है। क्रोन का उपयोग करना वास्तव में एक समाधान है, समाधान नहीं, udv नियम चलाए जाते हैं जब बिजली जुड़ा हुआ / डिस्कनेक्ट किया जाता है, लेकिन निलंबित / फिर से शुरू करने के बाद नहीं और pm-utilsअब फेडोरा 19 में डिफ़ॉल्ट रूप से उपयोग नहीं किया जाता है जब आप उदाहरण के लिए अपने लैपटॉप के करीब ढक्कन के लिए।

चूंकि systemdअब निलंबित / हाइबरनेट करने के लिए जिम्मेदार है, मुझे लगता है कि इस स्थिति को संभालने का एकमात्र उचित तरीका एक systemdइकाई बनाना है जो बूट के बाद और सस्पेंड से फिर से शुरू होने पर दोनों चलेगा।

टिप्पणियाँ:

  • इसके /dev/disk/by-id/...बजाय का उपयोग करके /dev/sda, आप हमेशा सही डिस्क प्राप्त करना सुनिश्चित करेंगे (एसडीए, बी, सी कर्नेल द्वारा पता लगाए गए आदेश पर निर्भर करते हैं)
  • आपके पास कई ExecStartलाइनें हो सकती हैं ताकि आप कई डिस्क कॉन्फ़िगर कर सकें

यहाँ मैंने जो इकाई लिखी है:

[Unit]
Description=Silence HD
After=suspend.target

[Service]
Type=oneshot
# Disable automatic head parking for the main disk
ExecStart=/sbin/hdparm -B 254 /dev/disk/by-id/ata-ST3250824AS_4N127FD1
# Enable automatic spin down after 30 seconds for the second, infrequently used disk
ExecStart=/sbin/hdparm -S 6 /dev/disk/by-id/ata-ST31000528AS_BVP5H5X1

[Install]
WantedBy=suspend.target basic.target

इस फ़ाइल को इस रूप में सहेजें /etc/systemd/system/hdsilence.serviceऔर फिर इसे सक्षम करें:

systemctl enable hdsilence.service
systemctl daemon-reload

फेडोरा 20 पर भी बहुत अच्छा काम करता है। धन्यवाद!
जैकब

तो इससे /etc/hdparm.conf में परिवर्तन अप्रचलित हो जाता है?
डोमिह

@domih: जहाँ तक मैं बता सकता हूँ hdparm.conf एक डेबियन चीज़ है और यह फेडोरा पर समर्थित नहीं है।
Krzysztof Adamski

6

आप सिस्टम को बूट के दौरान कमांड को चलाने के लिए अपनी खुद की सिस्टमड सर्विस बना सकते हैं या कमांड को /etc/rc.d/rc.local पर जोड़ सकते हैं।

आप कमांड हर बार जब आप चलाना चाहते हैं तो जाग के बाद नींद / हाइबरनेट प्रणाली, आप एक स्क्रिप्ट जोड़ सकते हैं कि /etc/pm/sleep.d/ को 2 अंक, में / usr / lib64 / अन्य लिपियों में देखो के साथ शुरू होता है अधिक विवरण के लिए pm-utils / sleep.d (x86_64 मानकर)। मूल रूप से, यह एक पैरामीटर लेता है जिसके आधार पर यह किस राज्य में प्रवेश कर रहा है। यदि आप प्लग-इन की तुलना में बैटरी पावर पर अलग तरीके से काम करना चाहते हैं, तो आपको पावर लॉग / एक ही मूल निर्देशिका में कुछ लॉगिन जोड़ने की आवश्यकता हो सकती है।


1
creating your own systemd serviceक्या आप अधिक विशिष्ट हो सकते हैं? मेरे पास /etc/rc.d/rc.local फ़ाइल नहीं है।
पीट

1
Systemd प्रलेखन एक systemd सेवा इकाई की वाक्य रचना बताते हैं। /etc/rc.d/rc.localफ़ाइल सिर्फ एक खोल स्क्रिप्ट, इसे बनाने और यह सुनिश्चित करें इसके निष्पादन योग्य बनाते हैं।
jsbillings

3

एसी / बैटरी पर चलते समय अलग-अलग सेटिंग्स के लिए, मैं इसे एक साधारण udevनियम के माध्यम से करूँगा , जैसे
/etc/udev/rules.d/98-apmsettings.rules:

SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", RUN+="/usr/bin/hdparm -B 128 /dev/sda"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="1", RUN+="/usr/bin/hdparm -B 254 /dev/sda"

यह तय करेगा apmकरने के लिए 254जब लैपटॉप में क्रमश: खामियों को दूर किया जाता है और 128जब अनप्लग। इसके अलावा, यह हमेशा सस्पेंड से शुरू होने के बाद भी काम करना चाहिए।


1
उन लोगों के लिए जो वर्बेटिम की नकल करना पसंद करते हैं, नए रिलीज़ होते hdparmहैं /usr/sbin, इसलिए रास्तों को समायोजित करें।
रोमन

2

मेरे पास एक ही डिस्क (और एक ही समस्या) है। मेरा बेवकूफ लेकिन काम कर समाधान: मैंने उस में डाल दिया है /etc/crontab:

-*/5  * * * *   root  hdparm -B 254 /dev/sda

क्या यह हर 12 सेकंड में ड्राइव तक नहीं पहुंचता? मैंने उस रेखा के साथ कुछ सोचा था, लेकिन मैं थोड़े समय के लिए नींद लेना चाहूंगा।
पीट

हर पाँच मिनट में। आप एक रैपर स्क्रिप्ट लिख सकते हैं जो सिस्टम की पावर स्थिति की जांच करता है।
हौके लागिंग

1

Udv नियम प्लग ईवेंट पर अच्छी तरह से काम करता है, लेकिन सस्पेंड से फिर से शुरू होने के बाद सही व्यवहार प्राप्त करने के लिए मुझे कुछ इस तरह की आवश्यकता है /etc/pm/sleep.d:

#!/bin/sh

case "${1}" in
    resume|thaw)
    if grep -q 1 /sys/class/power_supply/ADP1/online; then
      /usr/sbin/hdparm -B 254 /dev/sda
    else
      /usr/sbin/hdparm -B 128 /dev/sda
    fi
;;
esac
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.