Buộc quay xuống ổ cứng ngoài trên linux (raspberry pi)


16

Tôi hiện đang thiết lập máy chủ gia đình bằng Raspberry Pi với ổ cứng ngoài được kết nối qua usb. Tuy nhiên, ổ cứng của tôi sẽ không bao giờ quay xuống khi không hoạt động.

Tôi đã thử các gợi ý được cung cấp tại raspberrypi.org ... nhưng không thành công.

1.)

sudo hdparm -S5 /dev/sda

trả lại

/dev/sda:
 setting standby to 5 (25 seconds)
SG_IO: bad/missing sense data, sb[]:  70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

2.)

sudo hdparm -y /dev/sda

trả lại

/dev/sda:
 issuing standby command
SG_IO: bad/missing sense data, sb[]:  70 00 04 00 00 00 00 0a 00 00 00 00 44 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

... và 3.)

sudo sdparm --flexible --command=stop /dev/sda

trả lại

/dev/sda: HDD         1234

... mà không cần quay xuống ổ đĩa.

Tôi sử dụng phần cứng sau:

  • Inateck FDU3C-2 cổng kết nối USB 3.0 HDD
  • Tây kỹ thuật số WD10EZRX xanh 1TB

Có thể, các tín hiệu spin-down được gửi ở đâu đó bị ghi đè / bị mất / bị bỏ qua?


1
Cập nhật: Trạm nối Inateck được gắn có chức năng sao chép ổ đĩa cứng, cung cấp cổng chính / nguồn và cổng phụ / chìm cho ổ cứng. Khi cắm ổ cứng vào cổng phụ, các lệnh, được đề cập ở trên, tập luyện. Điều này giới hạn vấn đề thiếu spin-down vào cổng chính.
dùng258346

1
Nếu bạn nghĩ rằng đây là giải pháp, bạn nên chấp nhận giải pháp của riêng bạn. Mặc dù có vẻ như nó có vẻ hữu ích cho những độc giả tương lai có cùng vấn đề.
MariusMatutiae

1
Tất nhiên, bạn nhận ra rằng lệnh bạn sử dụng trong tập lệnh của mình giống như lệnh bạn đã nêu không hoạt động, phải không? hdparm -y / dev / sda ...
MariusMatutiae

Câu trả lời:


4

Tôi đã không gặp may mắn với hd-idle; Nó chạy nhưng không hoạt động. Tôi đã kết thúc việc viết kịch bản dưới đây:

#!/bin/bash
# This script looks for recent disk access, and if nothing has changed, puts /dev/"drive" into spindown mode.
# This should be used only is the hdparm power management function is not working.
# Call this script with cron or manually as desired
#
#
#
# Change which drive this script looks at by changing the drive variable below:
drive="sda"
#
#
current=`date`
caller=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
filename="/tmp/diskaccess.txt"
if [ -f "$filename" ]; then
    stat_old=`cat "$filename" | tr -dc "[:digit:]"`
    stat_new=`cat /sys/block/"$drive"/stat | tr -dc "[:digit:]"`
    if [ "$stat_old" == "$stat_new" ]; then
        stat="0"
        echo "The disk hasn't been used; spinning down /dev/$drive"
        echo $stat_old
        hdparm -y /dev/$drive > /dev/null
    else
        stat="1"
        echo $stat_old
        echo $stat_new
        echo "The drive has been used..."
        echo $stat_new > $filename
    fi
else
    echo "/tmp/diskaccess.txt file does not exist; creating it now."
    echo $stat_new > $filename
fi
echo $stat " - " $drive " - " $current " - by: " $caller >> /tmp/diskaccesslog.txt

4
Tôi nghĩ rằng hdparm -yđã không làm việc.
Cristian Ciupitu

Cảm ơn, hoạt động hoàn hảo. Ổ cứng màu xanh WD của tôi quay xuống ngay bây giờ, khi không được sử dụng. Theo bạn, một intervall hợp lý để gọi kịch bản là gì? Tôi gọi nó cứ sau 15 phút.
Bói toán

5

Có, có thể nhưng sẽ yêu cầu một số công việc phát triển tùy chỉnh và không tầm thường và mã sẽ được dành riêng cho USB-> chip cầu nối SATA bên trong bao vây của bạn.

Thỏa thuận là cầu USB phục vụ nhiều hơn một bộ chuyển đổi điện. Ổ cứng gắn USB mô phỏng ổ đĩa SCSI có bộ lệnh khác. Trong khi các lệnh đọc / ghi / tìm kiếm tiêu chuẩn dịch tất cả các lần quay lên / xuống kỳ lạ hơn thì không. Hầu hết các chip sẽ không làm điều đó. Hơn nữa, KHÔNG có API cấp chip phổ quát. Vì vậy, nếu tôi viết mã, tôi sẽ phải có một hướng dẫn lập trình cho chip cầu USB.

Tóm lại, trừ khi bạn có các chi tiết cụ thể về lập trình trên chip và quen thuộc với tập lệnh ATA và SCSI và đóng gói các lệnh chuyển qua, thì bạn sẽ phải làm mà không cần. Quá nhiều công việc và không có tiêu chuẩn.


5

Hoàn toàn có thể là các tín hiệu bạn đang gửi bị bỏ qua. Bạn đã không cung cấp đầu ra của

sudo hdparm -I /dev/sdX

điều này sẽ cho chúng ta biết khả năng của đĩa, nhưng nhiều đĩa đơn giản là không đáp ứng với các lệnh này.

May mắn thay, có một tiện ích rất tiện lợi, hd-idle, bạn có thể tải xuống từ đây , cho phép bạn buộc một đĩa quay xuống sau một khoảng thời gian nhất định. Chương trình đã được phát triển đặc biệt cho Debian, nhưng nói chung nó hoạt động trên Linux), do đó việc cài đặt nó sẽ rất dễ dàng với bạn. Tôi chỉ hy vọng nó cũng hoạt động trên kiến ​​trúc ARM, thứ mà tôi không thể kiểm tra.

Chỉnh sửa: nó biên dịch và cài đặt chính xác trên raspbian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.