ฉันมี HDD 2 ตัวในพีซีของฉัน Ubuntu ปิด HDD ตัวที่สองอย่างรวดเร็วหลังจากนั้นประมาณ 15 นาทีซึ่งสั้นสำหรับฉัน ฉันต้องการควบคุมเวลานี้ ฉันจะทำมันได้อย่างไร
ฉันลองใช้การจัดการพลังงานของ GNOME แต่ไม่พบว่ามีประโยชน์
ฉันมี HDD 2 ตัวในพีซีของฉัน Ubuntu ปิด HDD ตัวที่สองอย่างรวดเร็วหลังจากนั้นประมาณ 15 นาทีซึ่งสั้นสำหรับฉัน ฉันต้องการควบคุมเวลานี้ ฉันจะทำมันได้อย่างไร
ฉันลองใช้การจัดการพลังงานของ GNOME แต่ไม่พบว่ามีประโยชน์
คำตอบ:
hdparm
มีลักษณะที่
จากคู่มือ ( man hdparm
บนบรรทัดคำสั่ง):
-S ตั้งค่าการหมดเวลาสแตนด์บาย (สปินดาวน์) สำหรับไดรฟ์ ค่านี้ถูกใช้โดยไดรฟ์เพื่อกำหนดระยะเวลารอ (โดยไม่มีกิจกรรมบนดิสก์) ก่อนที่จะปิดมอเตอร์แกนหมุนเพื่อประหยัดพลังงาน ภายใต้สถานการณ์เช่นนี้ไดรฟ์อาจใช้เวลานานถึง 30 วินาทีในการตอบสนองต่อการเข้าถึงดิสก์ที่ตามมาแม้ว่าไดรฟ์ส่วนใหญ่จะเร็วกว่ามาก
การเข้ารหัสค่าการหมดเวลาค่อนข้างแปลกประหลาด ค่าศูนย์หมายถึง "การหมดเวลาถูกปิดใช้งาน": อุปกรณ์จะไม่เข้าสู่โหมดสแตนด์บายโดยอัตโนมัติ ค่าตั้งแต่ 1 ถึง 240 ระบุทวีคูณเป็น 5 วินาทีโดยให้ระยะหมดเวลาจาก 5 วินาทีถึง 20 นาที ค่าจาก 241 ถึง 251 ระบุจาก 1 ถึง 11 หน่วย 30 นาทีให้เวลาหมดจาก 30 นาทีถึง 5.5 ชั่วโมง ค่า 252 หมายถึงหมดเวลา 21 นาที ค่า 253 กำหนดช่วงเวลาการหมดเวลาที่ผู้ขายกำหนดระหว่าง 8 ถึง 12 ชั่วโมงและสงวนค่า 254 ไว้ 255 ถูกตีความว่าเป็น 21 นาทีและ 15 วินาที โปรดทราบว่าไดรฟ์รุ่นเก่าบางรุ่นอาจมีการตีความค่าเหล่านี้แตกต่างกันมาก
ดังนั้นsudo hdparm -I /dev/sdb | grep level
จะแสดงค่าสปินดาวน์ปัจจุบันตัวอย่างเช่น:
Advanced power management level: 254
จากคู่มือ: 254 ถูกสงวนไว้ดังนั้นฉันคาดว่ามันจะเป็นค่าเริ่มต้นของ Ubuntu (ทุกคนสามารถยืนยัน / ขยายในเรื่องนี้ได้โปรด?)
ตัวอย่าง:
sudo hdparm -S 25 /dev/sdb
= spindown หลังจาก 25 * 5 วินาที
sudo hdparm -S 245 /dev/sdb
= spindown หลังจาก (245-240) * 30 นาที
grep
APM ( -B
parm) แต่พูดคุยเกี่ยวกับ-S
spindown คุณรู้จัก APM บ้างไหม?
-B
ตั้งค่าปัจจุบันจะแสดงตามที่ระบุไว้ข้างต้น ฉันจะดูการ-S
ตั้งค่าปัจจุบันได้อย่างไร
sudo hdparm -y /dev/sdb
ฆ่าสัตว์ร้ายทันที
Disk Utility -> เลือก HDD drive -> คลิกที่ไอคอน "More actions ... " ที่มุมบนขวา -> Drive settings ...
ของฉันมีลักษณะเช่นนี้:
gnome-disk-utility
.
หากคุณสนใจในการทำการตั้งค่าของ hdparm ถาวรระหว่างเรียบแทนที่จะเพิ่มไปยัง crontab /etc/hdparm.conf
คุณสามารถใช้ ฉันมีสิ่งต่อไปนี้โปรดสังเกตการใช้ตัวพิมพ์ใหญ่ S ไม่ใช่ตัวพิมพ์เล็ก:
command_line {
hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215
}
เพิ่มบรรทัดนั้นแทน UUID โดยคุณหรือคุณอาจระบุอุปกรณ์โดยใช้/dev/sdX
รูปแบบ คุณสามารถหา UUID sudo blkid
ดิสก์ของคุณด้วยคำสั่ง
command_line
ในปัจจุบัน? ผมมีตัวอย่างที่แตกต่างกันในของฉัน/etc/hdparm
?
ค้นหา UUID
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
}
ฉันชอบอ้างถึงดิสก์โดย UUID ซึ่งยังคงเหมือนเดิมในการติดตั้งที่แตกต่างกัน (เว้นแต่คุณจะเปลี่ยนใน HW เอง)
/dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
spindown_time = 1200
}
หากสคริปต์เริ่มต้นทำให้เกิดปัญหาการบู๊ตคุณสามารถส่งผ่านnohdparm
บรรทัดคำสั่งเคอร์เนลและสคริปต์จะไม่ถูกเรียกใช้
man hdparm.conf
ไชโยด้วยเหตุผลบางอย่างผมไม่สามารถหาได้ใน
man hdparm.conf
อ้อมอ่านว่าค่าที่ถูกส่งผ่านไป-S
ด้วยเหตุนี้ค่า <255 ควรจะเข้ากันได้กับกฎในคำตอบด้านบน ยินดีต้อนรับข้อมูลเพิ่มเติมใด ๆ
หลังจากใช้เวลาหลายชั่วโมงฉันพบว่าไดรฟ์ WDC ของฉันไม่รองรับคำสั่ง hdparm -S ไม่ว่าจะเป็นค่าแอตทริบิวต์ idle3 (google: idle3ctl) ก็ตาม และนั่นเป็นปัญหาที่พบได้ทั่วไปกับไดรฟ์ WD แต่ฉันยินดีที่จะประกาศว่า hd-idle ( http://hd-idle.sourceforge.net/ ) ทำงานได้อย่างไม่มีที่ติ หากติดตั้งจากแพ็กเกจ dpkg-builded (ดูหมายเหตุการติดตั้ง) จะสร้าง daemon บนทั้ง ubuntu และ debian (config อยู่ใน / etc / default / hd-idle) ทำงานได้ดีหลังจากกลับมาทำงานจากโหมดไฮเบอร์เนตเช่นกัน
mc ค่าเริ่มต้น # ps aux | grep hd-idle | grep -v grep | ตัด -c 66-; สำหรับ f ใน [ad]; ทำ 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: สถานะไดรฟ์คือ: active / idle dev / sdb /: สถานะไดรฟ์คือ: สแตนด์บาย / dev / SDC: สถานะไดรฟ์คือ: สแตนด์บาย / dev / SDD: สถานะไดรฟ์คือ: สแตนด์บาย
ฉันค้นพบว่าพฤติกรรมของแกนหมุนของ Samsung HD204UI ขึ้นอยู่กับระดับ APM ( hdparm -B
) หากระดับ APM คือ 127 การหมดเวลาของสปินด์ดาวน์คือ 10 วินาที หากระดับ APM คือ 150 การหมดเวลาของสปินดาวน์จะถูกกำหนดโดย-S
ตัวเลือก
-S
ตัวเลือก (ดูวิธีการกำหนดเวลาของดิสก์ ) เพื่อให้ได้ใช้ซอฟต์แวร์ GUI "Disk" ดูคำตอบอื่น ๆ ที่มีภาพหน้าจอ
ฉันเพิ่มสิ่งที่ชอบ:
@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e > /dev/null 2> /dev/null
เพื่อรากของ crontab การใช้ uuid นั้นดีกว่าฉันคิดว่าเพราะsda
/ sdb
ฯลฯ ดูเหมือนว่าจะมีการเปลี่ยนแปลงในการรีบูตทุกครั้ง
hdparm.conf
?
ใน Ubuntu 14.04
ดิสก์> ไฮไลต์ไดรฟ์> คลิกเกียร์ที่มุมขวาบน> การตั้งค่าไดรฟ์> ตอนนี้คุณมีการตั้งค่าสแตนด์บาย, APM, AAM และเขียนแคชใน GUI ที่ใช้งานง่าย!
บน Debian ด้วยไดรฟ์ WD ฉันพบว่าการตั้งค่าระดับใด ๆ กับhdparm -S จะส่งผลให้ไดรฟ์กลับสู่ระดับ 254 ในhdparm -Iถัดไป ดังนั้นฉันไม่แน่ใจว่าพวกเขาจะปั่นป่วนหรือไม่ ฉันคิดว่าพวกเขายังคงปั่นป่วน
ไดรฟ์เหล่านี้อยู่ในอาร์เรย์ของเซิร์ฟเวอร์และฉันไม่ต้องการให้พวกเขาปั่นป่วน ก่อนหน้านี้ฉันเคยทำสิ่งนี้โดยการตั้งค่างาน cron เพื่ออัปเดตไฟล์ทุกสองสามนาที
ฉันไม่มีโชคกับ hdparm บน HDD ภายนอกที่ติดตั้งในตู้ USB ซึ่งฉันใช้เพื่อให้บริการสื่อด้วย minidlna
ฉันเจอความคิดจากที่นี่: https://serverfault.com/questions/562738/keeping-usb-backup-drive-from-sleeping-while-mounted
ผลลัพธ์ที่ดีที่สุดมาจากการใช้ดิสก์ uuid ซึ่งคุณสามารถค้นหาได้ด้วย:
sudo blkid
วิธีการต่อไปนี้ต้องการการเข้าถึงรูท แต่ทำเช่นนั้น hdparm สิ่งนี้ใช้ crontab เพื่ออ่านบล็อกแบบสุ่มจากไดรฟ์ทุก 5 นาทีและไม่สนใจข้อความทั้งหมด เพื่อให้แน่ใจว่าคุณมี 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 ในกรณีของฉัน) ด้านล่างเป็นสิ่งที่ฉันใช้ใน root 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 แต่อาจมีวิธีที่จะระงับได้ ดูโพสต์ ServerFaultนี้
[แก้ไข] 2017-01-07 09:02:
ฉันสามารถระงับข้อความเหล่านี้ได้โดยแก้ไข /etc/rsyslog.d/50-default.conf เพื่อเปลี่ยนบรรทัดนี้:
*.*;auth,authpriv.none -/var/log/syslog
สำหรับสิ่งนี้:
*.*;cron,auth,authpriv.none -/var/log/syslog
น่าเสียดายที่สิ่งนี้จะระงับข้อความ cron ทั้งหมด ฉันไม่สามารถรับ cron เพื่อเปลี่ยนเส้นทางการล็อกออกจากระบบไฟล์รูท (ซึ่งอยู่ใน SSD แบบเก่าในกรณีของฉันดังนั้นฉันต้องการ จำกัด การเขียน) แต่เนื่องจากนี่เป็นเพียงเซิร์ฟเวอร์ภายในบ้านฉันอาจไม่พลาดอะไรมากมาย จะไม่แนะนำกลยุทธ์นี้สำหรับเครื่องจักรที่ผลิต