Đánh dấu các thành phần xấu trên ổ cứng mà không cần hình thành


22

Tôi đã nhận thấy rằng trên máy chủ Ubuntu của tôi, một ổ đĩa chỉ được đọc vì một số lý do. Đào lên tôi thấy rằng điều này có thể xảy ra khi ổ cứng có lỗi. Tôi đã sử dụng badblocks để kiểm tra lỗi và thực sự tôi có một số cung bị hỏng.

Trong hầu hết các trường hợp, quá trình hành động hợp lý duy nhất là cố gắng sao lưu dữ liệu, loại bỏ ổ cứng và mua một cái mới. Tuy nhiên, máy chủ này không có bất cứ thứ gì tôi đã không sao lưu ở nhiều nơi và tôi muốn sử dụng nó cho đến khi nó chết. Tôi sử dụng nó để truyền phát nhạc và chạy một số tập lệnh đơn giản. Trong mọi trường hợp, nó sẽ là một sự phiền phức lớn khi cài đặt lại mọi thứ.

Có cách nào để đánh dấu các khối xấu này mà không định dạng một hdd không?

Câu trả lời:


29

Tôi giả sử bạn đang nói về các khối xấu vật lý trên đĩa chứ không phải về các hệ thống tệp bị hỏng.

Để kiểm tra tình trạng vật lý của đĩa, tốt nhất bạn nên cài đặt smartmontools

sudo apt-get install smartmontools

Điều này hoạt động vì tất cả các đĩa hiện đại ghi lại trạng thái sức khỏe của chúng bằng hệ thống có tên SMART

Sử dụng smartctrllệnh để đọc trạng thái này. Ví dụ để đọc tất cả các thuộc tính từ cuộc gọi đĩa đầu tiên

sudo smartctl --all /dev/sda

Xem ra cho một dòng nói về tình trạng sức khỏe tổng thể. Một khi điều này chỉ ra lỗi, rất có khả năng đĩa sẽ sớm bị lỗi.

SMART overall-health self-assessment test result: PASSED

Các dòng khác mà bạn muốn kiểm tra là Đếm ngành đang chờ xử lý và Các ngành được phân bổ lại.

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       48
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       2

Danh sách phân bổ lại thường trong trường thô số lượng các thành phần xấu mà đĩa trao đổi cho các phụ tùng làm việc. Đang chờ xử lý là các lĩnh vực có thể được phân bổ lại trong trường hợp lần viết tiếp theo không thành công.

Bạn thậm chí có thể kích hoạt tự kiểm tra đĩa khi được mô hình của bạn hỗ trợ

sudo smartctl -t long /dev/sda

Để buộc kiểm tra tất cả các lĩnh vực, sử dụng badblockstrong chế độ ghi dữ liệu. Xin lưu ý rằng mặc dù nhìn chung nó an toàn để chạy, nó sẽ đặt thêm tải vào đĩa của bạn, điều này có thể khiến chúng bị lỗi. Luôn có một bản sao lưu dữ liệu của bạn.

sudo badblocks -svvn -c 262144 /dev/sda

Nếu bạn đã xử lý hoàn toàn đĩa của mình theo cách này, bộ điều khiển đĩa sẽ thay thế tất cả các khối xấu bằng các khối đang hoạt động và số lượng được phân bổ lại sẽ được tăng lên trong nhật ký SMART.


2
ảnh hưởng của -choặc số khối được kiểm tra tại một thời điểm hay nói cách khác tại sao bạn có giá trị lớn như vậy so với mặc định là 64?
greole

4
kích thước khối mặc định là 1024 byte nhân với 64 khối mặc định tại một thời điểm dẫn đến chỉ 64k được xử lý cho mỗi yêu cầu. Với các đĩa hiện đại có thông lượng lên tới 150 MiB / s, điều này mang lại nhiều chi phí hơn tôi cảm thấy thoải mái. Tôi muốn cho ổ đĩa cơ hội xử lý dữ liệu theo cách hiệu quả nhất mà không phải chờ dữ liệu trên xe buýt.
dùng228505

Nói: / dev / sda rõ ràng là được sử dụng bởi hệ thống; Không an toàn để chạy badblocks!
Ngày

1
@Dims Nó bảo bạn không chạy cái này trên đĩa được gắn tích cực. Tháo đĩa trước. Trong trường hợp của bạn, nó có thể là ổ đĩa hệ thống của bạn. Vì vậy, khởi động một hệ thống cứu hộ đầu tiên.
dùng228505

2
@Dims Có tùy chọn-Force nếu bạn muốn chạy nó bằng mọi cách. tức là sudo badblocks -svvn -c 262144 / dev / sda -force
ADR
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.