Tôi có 2 ổ cứng trong PC. Ubuntu sẽ tắt ổ cứng thứ cấp rất nhanh sau khoảng 15 phút, đây là thời gian ngắn đối với tôi. Tôi cần kiểm soát thời gian này. Tôi làm nó như thế nào?
Tôi đã thử quản lý năng lượng Gnome nhưng không thấy hữu ích.
Tôi có 2 ổ cứng trong PC. Ubuntu sẽ tắt ổ cứng thứ cấp rất nhanh sau khoảng 15 phút, đây là thời gian ngắn đối với tôi. Tôi cần kiểm soát thời gian này. Tôi làm nó như thế nào?
Tôi đã thử quản lý năng lượng Gnome nhưng không thấy hữu ích.
Câu trả lời:
Có một cái nhìn tại hdparm
.
Từ hướng dẫn ( man hdparm
trên dòng lệnh):
-S Đặt thời gian chờ (spindown) cho ổ đĩa. Giá trị này được sử dụng bởi ổ đĩa để xác định thời gian chờ đợi (không có hoạt động của đĩa) trước khi tắt động cơ trục chính để tiết kiệm điện. Trong những trường hợp như vậy, ổ đĩa có thể mất tới 30 giây để phản hồi lại lần truy cập đĩa tiếp theo, mặc dù hầu hết các ổ đĩa đều nhanh hơn nhiều.
Mã hóa của giá trị thời gian chờ là hơi đặc biệt. Giá trị bằng 0 nghĩa là "hết thời gian chờ": thiết bị sẽ không tự động chuyển sang chế độ chờ. Giá trị từ 1 đến 240 chỉ định bội số của 5 giây, mang lại thời gian chờ từ 5 giây đến 20 phút. Giá trị từ 241 đến 251 chỉ định từ 1 đến 11 đơn vị trong 30 phút, cho thời gian chờ từ 30 phút đến 5,5 giờ. Giá trị là 252 biểu thị thời gian chờ là 21 phút. Giá trị là 253 đặt khoảng thời gian chờ do nhà cung cấp xác định trong khoảng từ 8 đến 12 giờ và giá trị 254 được bảo lưu. 255 được hiểu là 21 phút cộng với 15 giây. Lưu ý rằng một số ổ đĩa cũ có thể có những cách hiểu rất khác nhau về các giá trị này.
Vì vậy, sudo hdparm -I /dev/sdb | grep level
sẽ hiển thị giá trị spindown hiện tại, ví dụ:
Advanced power management level: 254
Từ hướng dẫn: 254 được bảo lưu nên tôi hy vọng nó là mặc định của Ubuntu (mọi người có thể xác nhận / mở rộng về điều này không?)
Thí dụ:
sudo hdparm -S 25 /dev/sdb
= spindown sau 25 * 5 giây.
sudo hdparm -S 245 /dev/sdb
= spindown sau (245-240) * 30 phút.
grep
dành cho APM ( -B
parm) nhưng nói về -S
spindown. Bạn có biết gì về APM không?
-B
Cài đặt hiện tại được hiển thị như được chỉ ra ở trên. Làm cách nào để xem -S
cài đặt hiện tại ?
sudo hdparm -y /dev/sdb
giết chết con thú ngay lập tức
Tiện ích ổ đĩa -> chọn ổ đĩa cứng -> nhấp vào biểu tượng "Thêm hành động ..." ở góc trên bên phải -> Cài đặt ổ đĩa ...
Của tôi trông như thế này:
gnome-disk-utility
.
Nếu bạn quan tâm đến việc cài đặt hdparm liên tục giữa các lần khởi động lại, thay vì thêm nó vào crontab, bạn có thể sử dụng /etc/hdparm.conf
. Tôi có những điều sau đây, lưu ý việc sử dụng vốn S, không phải chữ thường:
command_line {
hdparm -S 25 /dev/disk/by-uuid/f6c52265-d89f-43a4-b03b-302c3dadb215
}
Thêm dòng đó thay thế UUID của bạn hoặc bạn cũng có thể chỉ định thiết bị sử dụng /dev/sdX
định dạng. Bạn có thể tìm ra UUID của đĩa bằng lệnh sudo blkid
.
command_line
ngày nay? Tôi có ví dụ khác nhau trong tôi /etc/hdparm
?
sudo lsblk --output NAME,FSTYPE,LABEL,UUID,MODE
Biên tập /etc/hdparm.conf
sudo -H gedit /etc/hdparm.conf # Be careful from now on
Tìm kiếm spindown-time
hoặc phần cài đặt đĩa của bạn.
/dev/disk/by-label/4TB {
spindown_time = 1200
}
Tôi thích tham khảo đĩa bằng UUID vẫn giữ nguyên trên các cài đặt khác nhau (trừ khi bạn thay đổi nó trong chính CTNH).
/dev/disk/by-uuid/91e32677-0656-45b8-bcf5-14acce39d9c2 {
spindown_time = 1200
}
Nếu tập lệnh init gây ra sự cố khởi động, bạn có thể truyền nohdparm
dòng lệnh kernel và tập lệnh sẽ không được chạy.
man hdparm.conf
.
man hdparm.conf
gián tiếp đọc rằng giá trị được chuyển đến -S
do đó các giá trị <255 phải tương thích với quy tắc trong câu trả lời hàng đầu . Bất kỳ thông tin thêm được hoan nghênh.
Sau khi dành hàng giờ liền tôi phát hiện ra rằng ổ WDC của tôi không hỗ trợ lệnh hdparm -S, bất kể giá trị thuộc tính idle3 (google: idle3ctl). Và đó là vấn đề phổ biến với các ổ WD. Nhưng tôi vui mừng thông báo rằng hd-idle ( http://hd-idle.sourceforge.net/ ) hoạt động hoàn hảo. Nếu được cài đặt từ gói được xây dựng dpkg (xem Ghi chú cài đặt), nó sẽ tạo daemon trên cả ubfox và debian (config nằm trong / etc / default / hd-idle). Hoạt động tốt sau khi nối lại từ ngủ đông là tốt.
mc mặc định # ps phụ | grep hd-nhàn rỗi | grep -v grep | cắt -c 66-; cho f trong [quảng cáo]; làm hdparm -C / dev / sd $ f | grep -v "^ $"; làm xong / usr / sbin / hd-idle -i 1800 -a sdc -i 600 -a sdd -i 60 -l /var/log/hd-idle.log / dev / sda: trạng thái ổ đĩa là: active / idle / dev / sdb: trạng thái ổ đĩa là: chờ / dev / sdc: trạng thái ổ đĩa là: chờ / dev / sdd: trạng thái ổ đĩa là: chờ
Tôi phát hiện ra rằng hành vi spindown của Samsung HD204UI phụ thuộc vào cấp độ APM ( hdparm -B
). Nếu mức APM là 127, thời gian chờ của spindown là 10 s. Nếu mức APM là 150, thời gian chờ spindown được xác định bởi -S
tùy chọn.
-S
tùy chọn (xem Cách xác định thời gian quay đĩa ). Để có được nó, hãy sử dụng phần mềm GUI "Disk". Xem câu trả lời khác với ảnh chụp màn hình.
Tôi thêm một cái gì đó như:
@reboot sudo hdparm -S244 /dev/disk/by-uuid/71492809-e463-41fa-99e2-c09e9ca90c8e > /dev/null 2> /dev/null
để crontab gốc. Sử dụng uuid tốt hơn tôi nghĩ bởi vì sda
/ sdb
vv dường như thay đổi với mỗi lần khởi động lại
hdparm.conf
?
Trong Ubuntu 14.04
Đĩa> tô sáng ổ đĩa> nhấp vào thiết bị ở góc trên bên phải> Cài đặt ổ đĩa> bây giờ bạn có cài đặt Chế độ chờ, APM, AAM và Ghi bộ đệm trong GUI dễ sử dụng!
Trên Debian, với các ổ WD, tôi thấy rằng việc đặt bất kỳ mức nào với hdparm -S sẽ dẫn đến ổ đĩa trả về mức 254 cho hdparm -I tiếp theo . Vì vậy, tôi thực sự không chắc chắn nếu họ quay cuồng hay không. Tôi nghĩ rằng họ vẫn đang quay xuống.
Các ổ đĩa này nằm trên một mảng máy chủ và tôi thực sự không muốn chúng bị hỏng. Trước đây, tôi đã loại bỏ điều này bằng cách đặt một công việc định kỳ để cập nhật tệp cứ sau vài phút.
Tôi không gặp may với hdparm trên ổ cứng gắn ngoài gắn trong ổ USB, thứ mà tôi sử dụng để phục vụ phương tiện truyền thông với minidlna.
Tôi đã bắt gặp một ý tưởng từ đây: https://serverfault.com/questions/562738/keep-usb-backup-drive-from-s ngủing-while-mounted
Kết quả tốt nhất đến từ việc sử dụng uuid của đĩa, bạn có thể tìm thấy với:
sudo blkid
Phương pháp sau đây không yêu cầu quyền truy cập root, nhưng hdparm cũng vậy. Điều này sử dụng crontab để đọc một khối ngẫu nhiên từ ổ đĩa cứ sau 5 phút và bỏ qua tất cả các tin nhắn. Để đảm bảo bạn có UUID đúng, hãy kiểm tra nó trên dòng lệnh như thế này (đảm bảo bạn sử dụng UUID mong muốn của mình, không phải cái này):
sudo dd if=/dev/disk/by-uuid/f01df4b5-6865-476a-8d3b-597cbd886d41 of=/dev/null count=1 skip=$RANDOM
Bạn sẽ thấy đầu ra như thế này:
1+0 records in
1+0 records out
512 bytes copied, 0.000738308 s, 693 kB/s`
Để chặn thông báo này, cuối cùng có thể được viết ở đâu đó, có khả năng là / hệ thống tập tin (có trong ổ SSD trong trường hợp của tôi), dưới đây là những gì tôi đang sử dụng trong crontab gốc. Bạn đến đó với
sudo crontab -e
Sau đó, dưới các ý kiến:
*/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
Hy vọng điều này sẽ giúp người khác với các vấn đề tương tự. Thật không may, điều này vẫn được ghi vào syslog, nhưng có nhiều cách để ngăn chặn điều đó; xem bài đăng trên ServerFault này .
[sửa] 2017-01-07 09:02:
Tôi đã có thể chặn các tin nhắn này bằng cách chỉnh sửa /etc/rsyslog.d/50-default.conf để thay đổi dòng này:
*.*;auth,authpriv.none -/var/log/syslog
đến đây:
*.*;cron,auth,authpriv.none -/var/log/syslog
Thật không may, điều này ngăn chặn tất cả các tin nhắn cron; Tôi không thể nhận được cron để chuyển hướng đăng xuất khỏi hệ thống tập tin gốc (trong ổ SSD cũ, vì vậy tôi muốn hạn chế ghi), nhưng vì đây chỉ là một máy chủ gia đình, tôi có lẽ không bỏ lỡ nhiều. Chắc chắn sẽ không đề xuất chiến lược này cho một máy sản xuất.