Kiểm tra thông minh không bao giờ kết thúc


17

Khi chạy SMART-Tests bằng smartmontools, chúng KHÔNG BAO GIỜ kết thúc. Tôi luôn nhận được "Ngắt (thiết lập lại máy chủ.") Trên nhiều hệ thống và đĩa khác nhau, bao gồm Debian trong x86 và ARM, OS X trên x64, với các ổ đĩa ngoài và trong. Ngay cả khi chạy ở chế độ giam cầm với tất cả các đĩa trống (zeroed với dd).

Tôi đang làm gì sai?


Bạn không làm gì sai bạn. Đó là phần cứng không hoạt động
Ramhound

Nó có nghĩa là để làm việc ở tất cả?
Max Ried

Có, nó nên hoạt động
Ramhound

@MaxRied, bạn có nói rằng bạn đã thử điều này trên nhiều máy tính khác nhau với nhật ký của các đĩa khác nhau và vẫn chưa bao giờ thấy sự hoàn thành, ngay cả đối với các đĩa mà bạn biết là khỏe mạnh từ một công cụ phân tích SMART khác biệt?
Frank Thomas

@FrankThomas Có.
Max Ried

Câu trả lời:


14

Khi ổ đĩa không xử lý bất kỳ hoạt động đầu vào / đầu ra nào trong quá trình kiểm tra, nó có thể chuyển sang chế độ chờ, điều này làm tăng Interrupted (host reset)điều kiện. Cố gắng đọc từ đĩa trong khoảng thời gian thích hợp:

while true; do dd if=/dev/disk1 of=/dev/null count=1; sleep 60; done

(thay thế /dev/disk1bằng thiết bị phù hợp; đọc một cung từ thiết bị đó cứ sau 60 giây cho đến khi bạn nhấn ctrl-c)

Điều này giúp ích trong môi trường của tôi: OS X 10.6.8, ổ đĩa kết nối USB WD Elements, trình điều khiển SAT-SMART 0.8.

Một thử nghiệm giam cầm về mặt lý thuyết nên giữ ổ đĩa trực tuyến. Tuy nhiên, lệnh phần cứng gửi smartctlcó thể hết thời gian trước khi thử nghiệm hoàn thành, khiến kernel đặt lại liên kết và kết thúc trong tình huống tương tự như trên ( lỗi # 303 ).

Xem chủ đề này trên danh sách gửi thư hỗ trợ smartmontools để biết thêm chi tiết. Tôi thừa nhận Christian Franke cho cái nhìn sâu sắc được đưa ra ở đây.


Các gián đoạn có thể khác ( serverfault.com/a/584055 ): một cáp xấu có thể gây ra thời gian chờ và hạt nhân sẽ kích hoạt thiết lập lại. Tôi ít chắc chắn rằng cần phải dừng smartd. Bất kỳ thời gian chờ và gián đoạn sẽ xuất hiện trong dmesg / kern.log / journalctl -fk.
Tobu

Wow, đó là các loại hạt! Xác nhận - sau khi thả HGST HDN726060ALE610 từ gương zpool, nó bị kẹt ở mức 10% trong 36 giờ (nó sẽ kết thúc nhanh hơn mà không cần hoạt động khác, ĐÚNG?). Năm phút của các dd nhỏ này đã khiến nó kết thúc. Chủ nghĩa hoài nghi gạt bỏ.
Bill McGonigle

Được /dev/disk1cho là thiết bị hoặc phân vùng, tức là thích /dev/sdahay /dev/sda1?
Merchako

@Merchako Đây là Mac os liên quan đến nơi nó thực sự là như thế.
Tối đa

5

Tôi đã thử giải pháp từ Tobu, trong trường hợp của tôi, tôi vẫn tìm thấy ổ USB ngoài ở chế độ ngủ bất kể sau khi bắt đầu kiểm tra và làm gián đoạn nó, có vẻ như dd đã kết thúc việc đọc từ bộ đệm kernel và bộ đệm đủ lớn cho đĩa để vào chế độ ngủ. Tôi nhận thấy rằng việc gọi smartctl để hỏi trạng thái luôn có thể "đánh thức" đĩa. Vì vậy: phiên bản này của cùng một ý tưởng đã lừa tôi:

sudo bash -c 'while true; do smartctl -a /dev/sdb > /dev/null; sleep 60; done'

Sau 5 giờ, đĩa USB ngoài vẫn quay. Lần đầu tiên tôi có thể thấy một kết thúc kiểm tra dài smartctl trong một đĩa bên ngoài.

Tôi tin rằng giải pháp này cũng có ưu điểm là các đầu đĩa không bị di chuyển một cách không cần thiết mỗi phút. Việc chạy dài đã hoàn thành gần như chính xác trong thời gian dự đoán (tập lệnh giữ tỉnh táo không thêm thời gian để chạy)


3

Một biến thể trong câu trả lời của Ari là sử dụng watch, vì smartctlthực tế đầu ra có thể rất thú vị để theo dõi trạng thái:

sudo watch -d -n 60 smartctl -a /dev/sdx

Điều này sẽ tự động cập nhật đầu ra smartctl -asau mỗi 60 giây, do đó bạn có thể thấy thời gian tự kiểm tra còn lại là bao nhiêu và làm nổi bật các thay đổi (để dễ dàng phát hiện ra rằng thử nghiệm đang thực sự tiến triển).


+1, chưa từng thấy watchtrước đây.
Hashim

1

Thử nghiệm giam cầm có thể không hoạt động nếu mất hơn 20 giây.

Nguồn: vé số 303 , có tiêu đề "Trong chế độ chụp thử nghiệm thông minh, kéo dài thời gian chờ như được mô tả bởi thiết bị ATA".

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.