जवाबों:
एक नजर है hdparm
।
से मैनुअल ( man hdparm
कमांड लाइन पर):
-S ड्राइव के लिए स्टैंडबाय (स्पिंडाउन) टाइमआउट सेट करें। इस मान का उपयोग ड्राइव द्वारा किया जाता है ताकि यह निर्धारित किया जा सके कि बिजली बचाने के लिए धुरी मोटर को बंद करने से पहले कितनी देर तक प्रतीक्षा करनी चाहिए (डिस्क गतिविधि के साथ नहीं)। ऐसी परिस्थितियों में, ड्राइव को बाद में डिस्क एक्सेस का जवाब देने में 30 सेकंड तक का समय लग सकता है, हालांकि अधिकांश ड्राइव बहुत तेज हैं।
टाइमआउट मान की एन्कोडिंग कुछ अजीब है। शून्य के मान का अर्थ है "टाइमआउट अक्षम हैं": डिवाइस स्वचालित रूप से स्टैंडबाय मोड में प्रवेश नहीं करेगा। 1 से 240 तक के मान 5 सेकंड के गुणक को निर्दिष्ट करते हैं, 5 सेकंड से 20 मिनट तक के समय की उपज। 241 से 251 तक के मान 30 मिनट की 1 से 11 इकाइयों तक निर्दिष्ट हैं, 30 मिनट से 5.5 घंटे तक के समय की उपज। 252 का मान 21 मिनट का टाइमआउट दर्शाता है। 253 का मान 8 और 12 घंटों के बीच एक विक्रेता-निर्धारित टाइमआउट अवधि निर्धारित करता है, और मूल्य 254 आरक्षित है। 255 को 21 मिनट और 15 सेकंड के रूप में व्याख्या की गई है। ध्यान दें कि कुछ पुराने ड्राइव में इन मूल्यों की बहुत अलग व्याख्या हो सकती है।
तो sudo hdparm -I /dev/sdb | grep level
उदाहरण के लिए वर्तमान spindown मूल्य, दिखाएगा:
Advanced power management level: 254
मैनुअल से: 254 आरक्षित है इसलिए मुझे उम्मीद है कि यह उबंटू का डिफ़ॉल्ट हो सकता है (क्या कोई इस पर पुष्टि / विस्तार कर सकता है?)
उदाहरण:
sudo hdparm -S 25 /dev/sdb
= 25 * 5 सेकंड के बाद स्पिंडाउन।
sudo hdparm -S 245 /dev/sdb
= बाद में (245-240) * 30 मिनट तक फैला।
grep
APM ( -B
parm) के लिए प्रतीत होते हैं , लेकिन -S
स्पिन्डाउन के बारे में बात करते हैं । क्या आप भी एपीएम के बारे में कुछ जानते हैं?
-B
सेटिंग ऊपर बताए अनुसार दिखाई गई है। मैं वर्तमान -S
सेटिंग कैसे देख सकता हूं ?
sudo hdparm -y /dev/sdb
जानवर को तुरंत मार देता है
डिस्क उपयोगिता -> एचडीडी ड्राइव का चयन करें -> ऊपरी दाएं कोने पर "अधिक कार्य ..." आइकन पर क्लिक करें -> ड्राइव सेटिंग ...
मेरा ऐसा दिखता है:
gnome-disk-utility
।
यदि आप hdparm की सेटिंग को रिबूट के बीच लगातार करना चाहते हैं, तो इसे crontab में जोड़ने के बजाय, आप उपयोग कर सकते हैं /etc/hdparm.conf
। मेरे पास निम्नलिखित हैं, पूंजी एस के उपयोग पर ध्यान दें, न कि नीचे की ओर:
command_line {
hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215
}
अपने द्वारा UUID की जगह उस पंक्ति को जोड़ें, या आप /dev/sdX
प्रारूप का उपयोग करके डिवाइस को निर्दिष्ट कर सकते हैं । आप कमांड के साथ अपनी डिस्क का यूयूआईडी पता कर सकते हैं sudo blkid
।
command_line
आजकल इसका इस्तेमाल करना सही है? मेरे पास अलग-अलग उदाहरण हैं /etc/hdparm
?
sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
संपादित करें /etc/hdparm.conf
sudo -H gedit /etc/hdparm.conf # Be careful from now on
के लिए देखो spindown-time
या अपने डिस्क सेटिंग्स अनुभाग।
/dev/disk/by-label/4TB {
spindown_time = 1200
}
मैं यूयूआईडी द्वारा डिस्क को संदर्भित करना पसंद करता हूं जो विभिन्न प्रतिष्ठानों में एक ही रहता है (जब तक कि आप इसे एचडब्ल्यू में खुद नहीं बदलते)।
/dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
spindown_time = 1200
}
यदि init स्क्रिप्ट बूट समस्याओं का कारण बनती है, तो आप nohdparm
कर्नेल कमांड लाइन पर पास कर सकते हैं , और स्क्रिप्ट को चलाया नहीं जाएगा।
man hdparm.conf
।
man hdparm.conf
अप्रत्यक्ष रूप से पढ़ता है कि -S
मानों को मानों के लिए पारित किया जाता है <255 शीर्ष उत्तर में नियम के साथ संगत होना चाहिए । किसी भी आगे की जानकारी का स्वागत किया है।
घंटों और घंटे बिताने के बाद मुझे पता चला कि मेरी WDC ड्राइव hdparm -S कमांड का समर्थन नहीं करती है, कोई बात नहीं idle3 विशेषता मान (google: idle3ctl)। और यह WD ड्राइव के साथ आम समस्या है। लेकिन मुझे यह घोषणा करते हुए खुशी हो रही है कि एचडी-आइडल ( http://hd-idle.sourceforge.net/ ) त्रुटिपूर्ण रूप से काम करता है। अगर dpkg-builded पैकेज (इंस्टालेशन नोट्स देखें) से स्थापित किया गया है, तो यह ubuntu और debian दोनों पर डीमन बनाता है (config / etc / default / hd-idle में है)। हाइबरनेशन से फिर से शुरू होने के बाद भी अच्छी तरह से काम करता है।
mc default # ps aux | grep hd-idle | grep -v grep | कट-सी 66-; f में [विज्ञापन]; do hdparm -C / dev / sd $ f | grep -v "^ $"; किया हुआ / usr / sbin / hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log / Dev / sda: ड्राइव स्थिति है: सक्रिय / निष्क्रिय / Dev / SDB: ड्राइव स्थिति है: स्टैंडबाय / Dev / एसडीसी: ड्राइव स्थिति है: स्टैंडबाय / Dev / SDD: ड्राइव स्थिति है: स्टैंडबाय
मुझे पता चला कि सैमसंग HD204UI का स्पिंडाउन व्यवहार APM स्तर ( hdparm -B
) पर निर्भर करता है । यदि एपीएम स्तर 127 है, तो स्पिंडाउन टाइमआउट 10 एस है। यदि एपीएम स्तर 150 है, तो स्पिंडाउन टाइमआउट -S
विकल्प द्वारा परिभाषित किया गया है।
-S
विकल्प नहीं मिल सकता है ( डिस्क स्पिंडाउन समय निर्धारित करने का तरीका देखें )। इसे पाने के लिए, "डिस्क" जीयूआई सॉफ्टवेयर का उपयोग करें। स्क्रीनशॉट के साथ अन्य उत्तर देखें ।
मैं कुछ जोड़ता हूं:
@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e > /dev/null 2> /dev/null
जड़ के साथ करने के लिए। Uuid का उपयोग करना बेहतर है, मुझे लगता है कि क्योंकि sda
/ sdb
आदि हर रिबूट के साथ बदलने लगता है
hdparm.conf
?
उबंटू में 14.04
डिस्क> हाइलाइट ड्राइव> ऊपरी दाहिने हाथ के कोने में गियर पर क्लिक करें> ड्राइव सेटिंग्स> अब आपके पास स्टैंडबाय, एपीएम, एएएम और जीयूआई का उपयोग करने के लिए एक आसान में कैश सेटिंग्स लिखें!
WD ड्राइव पर, WD ड्राइव के साथ, मुझे लगता है कि किसी भी स्तर को hdparm के साथ सेट करने से-ड्राइव में परिणाम 254 के बाद के hdparm -I के स्तर पर वापस आ जाता है । इसलिए मुझे यकीन नहीं है कि वे नीचे घूम रहे हैं या नहीं। मुझे लगता है कि वे अभी भी नीचे घूम रहे हैं।
ये ड्राइव एक सर्वर सरणी पर हैं, और मैं वास्तव में उन्हें कभी भी स्पिन नहीं करना चाहता। अतीत में मैंने हर कुछ मिनटों में एक फ़ाइल को अपडेट करने के लिए क्रॉन जॉब सेट करके इसे समाप्त कर दिया है।
मुझे एचडीपीएम के साथ कोई सौभाग्य नहीं था जो एक यूएसबी परिक्षेत्र में लगे बाहरी एचडीडी पर था, जिसका उपयोग मैं मिनीडलना के साथ मीडिया की सेवा के लिए करता हूं।
मुझे यहाँ से एक विचार आया: https://serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-ORE-mounted
डिस्क के यूआईडी का उपयोग करने से सर्वोत्तम परिणाम मिलते हैं, जिन्हें आप पा सकते हैं:
sudo blkid
निम्न विधि को रूट एक्सेस की आवश्यकता होती है, लेकिन इतना एचडीपीआर करता है। यह ड्राइव से हर 5 मिनट में एक यादृच्छिक ब्लॉक पढ़ने के लिए crontab का उपयोग करता है और सभी संदेशों को अनदेखा करता है। यह सुनिश्चित करने के लिए कि आपके पास सही UUID है, कमांड लाइन पर इस तरह से परीक्षण करें (सुनिश्चित करें कि आप अपने वांछित UUID का उपयोग करते हैं, यह नहीं):
sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM
आपको इस तरह आउटपुट देखना चाहिए:
1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`
इस संदेश को दबाने के लिए, जो अंत में कहीं लिखा जा सकता है, संभवतः / filesystem (जो मेरे मामले में SSD पर है), नीचे मैं रूट crontab का उपयोग कर रहा हूं। तुम वहाँ साथ हो
sudo crontab -e
फिर, टिप्पणियों के तहत:
*/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
आशा है कि यह इसी तरह के मुद्दों के साथ किसी और की मदद करता है। दुर्भाग्य से, यह अभी भी syslog को लिखा जाता है, लेकिन इसे दबाने के संभावित तरीके हैं; इस सर्वरफॉल्ट पोस्ट को देखें ।
[संपादित करें] 2017-01-07 09:02:
मैं इन संदेशों को /etc/rsyslog.d/50-default.conf संपादित करके इस संदेश को दबाने में सक्षम था:
*.*;auth,authpriv.none -/var/log/syslog
इसके लिए:
*.*;cron,auth,authpriv.none -/var/log/syslog
दुर्भाग्य से, यह सभी क्रोन संदेशों को दबा देता है; मुझे रूट फाइलसिस्टम (जो मेरे मामले में एक बूढ़े एसएसडी पर है, इसलिए मैं राइट टू लिमिडेट करना चाहता हूं) से लॉग इन करने के लिए क्रोन नहीं मिल सका, लेकिन जैसा कि यह सिर्फ एक होम सर्वर है, मैं शायद बहुत याद नहीं कर रहा हूं। उत्पादन मशीन के लिए निश्चित रूप से इस रणनीति की सिफारिश नहीं करेंगे ।