Không thể ghi số không vào các phần tử xấu / Đĩa cứng Không tính các phần được phân bổ lại


10

Tôi có một ổ đĩa báo cáo rằng các lĩnh vực đang chờ xử lý là "45". Tôi đã sử dụng badblocks để xác định các lĩnh vực và tôi đã cố gắng viết số không cho chúng bằng dd .

Theo những gì tôi hiểu, khi tôi cố gắng ghi dữ liệu trực tiếp vào các khu vực xấu, nó sẽ kích hoạt việc tái phân bổ, giảm một khu vực đang chờ xử lý hiện tại và tăng số lượng khu vực được phân bổ lại.

Tuy nhiên, trên đĩa này, cả hai giá trị thô Reallocated_Sector_Ct và Reallocated_Event_Count đều bằng 0 và dd không thành công với lỗi I / O khi tôi cố ghi số không vào các thành phần xấu. dd hoạt động tốt, tuy nhiên, khi tôi viết cho một lĩnh vực tốt.

# dd if=/dev/zero of=/dev/sdb bs=512 count=1 seek=217152
dd: error writing ‘/dev/sdb’: Input/output error

Điều này có nghĩa là ổ đĩa của tôi, theo một cách nào đó, không có khu vực dự phòng nào được sử dụng để tái phân bổ? Là ổ đĩa của tôi nói chung là một người khủng khiếp? (Ổ đĩa không thực sự là của tôi, tôi đang giúp một người bạn. Họ có thể vừa nhận được một ổ đĩa rẻ tiền hoặc thứ gì đó.)

Trong trường hợp có liên quan, đây là đầu ra của smartctl -i :

Model Family:     Western Digital Caviar Green (AF)
Device Model:     WDC WD15EARS-00Z5B1
Serial Number:    WD-WMAVU3027748
LU WWN Device Id: 5 0014ee 25998d213
Firmware Version: 80.00A80
User Capacity:    1,500,301,910,016 bytes [1.50 TB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   ATA8-ACS (minor revision not indicated)
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Fri Oct 18 17:47:29 2013 CDT
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

CẬP NHẬT:
Tôi đã chạy shredtrên đĩa, điều này đã khiến cho Current_Pending_Sector trở về không. Tuy nhiên, Reallocated_Sector_Ct và Reallocated_Event_Count vẫn bằng không và dd hiện có thể ghi dữ liệu vào các lĩnh vực mà trước đây không thể. Điều này dẫn tôi đến một số câu hỏi khác:

  • Tại sao các phân bổ lại không được đĩa thu hồi? Tôi giả định việc tái phân bổ đã diễn ra vì bây giờ tôi có thể ghi dữ liệu trực tiếp vào khu vực và trước đây không thể.

  • Tại sao shred gây ra sự phân bổ lại và không dd? Có phải thực tế là shred ghi dữ liệu ngẫu nhiên thay vì chỉ số không tạo ra sự khác biệt?


Các giá trị SMART khác như thế nào? Là Uncorrectable Sector Countnhiều hơn không?
Synetech

Ngoại tuyến_ Không chính xác, mà tôi giả sử là điều tương tự, có giá trị thô là 25.
MetaNova

Đúng vậy, và có vẻ như ổ đĩa thực sự có hình dạng xấu. Bạn có thể kiểm tra các giá trị trong bảng này , đặc biệt chú ý đến các hàng màu đỏ (giá trị quan trọng đối với sức khỏe). Đặt cược tốt nhất là sao chép (không di chuyển) mọi thứ có giá trị / không thể thay thế sang một nơi khác, khởi động lại để cung cấp cho nó một chu kỳ năng lượng và nếu nó vẫn hoạt động, hãy xóa sạch nó (tốt nhất là với các công cụ chuyên dụng của riêng nó và đặt nó sang một bên như bộ nhớ dự phòng cho dữ liệu không quan trọng như video đã tải xuống.
Synetech

Cám ơn phản hồi của bạn. Câu hỏi chính của tôi có lẽ phải là tại sao nó không thể tái phân bổ các lĩnh vực đó. Không phải nó chỉ nên phát hiện các lĩnh vực là xấu, trốn chúng vào khoảng trống, phân bổ lại và di chuyển? Tôi không lo lắng về bất kỳ dữ liệu nào trên đĩa vì nó đã bị xóa từ lâu. Bạn tôi không muốn có một chặn giấy 1,5TB nếu họ có thể tránh được.
MetaNova

Điều đó có vẻ như là điều mong đợi, nhưng nó có thể là một cái đầu xấu. Nếu vậy, sau đó cố gắng đọc ổ đĩa sẽ hoạt động cho đến khi bạn cố truy cập vào đĩa có đầu xấu, thì bạn sẽ gặp phải một loạt lỗi đọc vì không có đầu để đọc, toàn bộ đĩa không thể truy cập được. Tất nhiên, nó nói rằng khu vực 45 là xấu, có thể là do nó đã được phân bổ lại nhưng SMART không được cập nhật. Bảo hành đã hết hạn một vài tháng trước, nhưng bạn có thể thử gửi email cho họ và có thể họ sẽ thay thế lịch sự.
Synetech

Câu trả lời:


9

Ổ đĩa WD15EARS (và hầu hết các ổ đĩa được sản xuất gần đây khác) sử dụng Định dạng Nâng cao , có nghĩa là kích thước cung cấp vật lý thực của ổ đĩa này là 4 KiB và kích thước cung cấp 512 byte truyền thống chỉ được mô phỏng. Bởi vì điều này, nếu một khu vực vật lý 4 KiB bị hỏng, tất cả 8 khu vực 512 byte được mô phỏng tương ứng sẽ không thể đọc được cùng một lúc.

(Đầu Sector Size: 512 bytes logical/physicalra từ smartctlkhông chính xác, vì một số ổ WD15EARS báo cáo kích thước khu vực vật lý sai  - rõ ràng ổ đĩa của bạn có phiên bản phần sụn bị hỏng về mặt đó.)

Ngoài ra, khi một khu vực 512 byte được mô phỏng duy nhất được viết, ổ đĩa Định dạng Nâng cao thực sự cần phải đọc toàn bộ khu vực vật lý 4 KiB, thay đổi phần 512 byte tương ứng của nó, sau đó ghi toàn bộ khu vực vật lý vào phương tiện truyền thông. Nếu phương tiện tốt, thao tác đọc-sửa-ghi này chỉ gây ra sự chậm chạp đáng kể so với ổ đĩa có các thành phần vật lý 512 byte thực. Tuy nhiên, nếu khu vực vật lý 4 KiB xấu và không thể đọc được, thì bất kỳ thao tác ghi nào không viết lại khu vực đó hoàn toàn sẽ thất bại. Bởi vì điều này, bạn không thể ép buộc ngành phân bổ lại trên ổ đĩa như vậy sử dụng ddvới bs=512 count=1 - bạn phải sử dụng ít nhất bs=512 count=8và chắc chắn rằng số ngành trongseek= tùy chọn là bội số của 8. (Điều này giả định rằng bộ nhảy Tương thích của Windows Windows XP chưa được cài đặt, nếu không thì phần bù căn chỉnh được thêm bởi bộ nhảy này cũng phải được tính đến.)

Một lý do khác khiến việc phân bổ lại có ddthể thất bại là do mặc định Linux sử dụng bộ đệm trong lớp khối để truy cập các thiết bị khối và điều này có thể gây ra các hoạt động đọc-sửa-ghi trong phần mềm, điều này cũng sẽ thất bại khi gặp phải một khu vực không thể đọc được. Bạn có thể thêm oflag=directtùy chọn bỏ qua bộ đệm này cho thiết bị được chỉ định bởi of=...(cũng có iflag=directtùy chọn, áp dụng cho thiết bị đầu vào).


Cảm ơn bạn, cảm ơn bạn, cảm ơn bạn, điều này rất hữu ích. Tôi đọc nhãn trên ổ đĩa và nó nói "định dạng trước". Tôi biết điều đó có nghĩa là gì bây giờ ... Tuy nhiên, bạn có biết gì về ổ đĩa không báo cáo bất kỳ lĩnh vực được phân bổ lại nào không?
MetaNova

1
"các khu vực đang chờ xử lý" không nhất thiết là các khu vực xấu, đĩa chỉ gặp một chút khó khăn khi đọc nó trước khi kiểm tra nhàn rỗi, có thể do không được ghi ở đó trong một thời gian dài và dữ liệu bắt đầu mờ dần (tức là suy yếu từ trường ). Viết dữ liệu mới cho khu vực đó làm mới dữ liệu trong khu vực đó với dữ liệu mới được hình thành mạnh mẽ trên đĩa. Do đó, nếu bạn ghi vào một khu vực đang chờ xử lý, đĩa sẽ cho rằng nó ổn ngay bây giờ. Bạn nên thử đọc lại dữ liệu từ các khu vực đó để xác nhận chúng ổn định.
BeowulfNode42

đối với những người không quan tâm đến bất kỳ dữ liệu nào trên đĩa và không muốn tìm danh sách chính xác các lĩnh vực hoặc thực hiện phép tính đếm ngành, chỉ cần dd toàn bộ đĩa với kích thước khối của bội số 4KiB, như 16MiB. Sau đó sử dụng kích thước khối 4KiB cho phần cuối của đĩa nhỏ hơn kích thước khối đã chọn trước đó.
BeowulfNode42

0

Tôi đã phải làm điều này gần đây và thấy rằng chạy shred trên toàn bộ đĩa hoạt động rất tốt. Mặc dù shred là vô dụng cho mục đích dự định của nó ngoại trừ trên đĩa, nhưng nó chỉ là những gì được yêu cầu để tự phục hồi trên các khối xấu.

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.