Câu trả lời ngắn: Viết một cái gì đó mới cho khu vực (thậm chí số không - mà một định dạng dài làm).
Câu trả lời dài
Các ổ đĩa cứng ngày nay cố gắng che giấu các thành phần xấu từ máy tính chủ. Máy tính chủ chỉ cần yêu cầu ổ đĩa trả về nội dung của một số khu vực cụ thể. Thông thường ổ đĩa đọc sector, trả nó về máy chủ và mọi thứ đều ổn.
Ổ cứng biết giá trị mà nó đọc có hợp lệ hay không, bởi vì ổ đĩa sử dụng mã sửa lỗi (ECC) để xác thực rằng nội dung mà nó đọc là chính xác. Nếu ổ đĩa phát hiện ra rằng nội dung của khu vực không hợp lệ, nó sẽ thử lại đọc. Hy vọng là nếu chỉ cần đọc lại, nó có thể có được nội dung ngành chính xác. Nó sẽ tiếp tục thử lại cho đến khi nhận được giá trị tốt hoặc đạt đến giới hạn thời gian (chính thức được gọi là giới hạn thời gian hoàn thành Lệnh hoặc CCTL ).
Trong những lần thử lại, ổ đĩa sẽ xuất hiện xác chết; vì nó không còn đáp ứng với các lệnh .
Phụ tùng
Hầu hết các ổ đĩa hiện đại đều chứa một số lĩnh vực "dự phòng" (ví dụ: 1.024 khu vực dự phòng). Nếu ổ đĩa nhận ra một khu vực là xấu, nó sẽ ngừng sử dụng nó. Mọi yêu cầu đọc hoặc ghi vào khu vực bị hư hỏng đó sẽ được chuyển hướng một cách minh bạch sang khu vực dự phòng. Việc đánh dấu một khu vực xấu và phân bổ lại dữ liệu của nó cho một khu vực dự phòng, được gọi là Sự kiện Tái phân bổ . Và tổng số lĩnh vực đã được phân bổ lại (và do đó, có bao nhiêu lĩnh vực phụ tùng của bạn đã được sử dụng hết) là Tổng số ngành được phân bổ lại .
Trong ví dụ này từ một trong những ổ đĩa cứng của riêng tôi, 64 lĩnh vực được phát hiện là xấu. Điều đó có nghĩa là 64 lĩnh vực phụ tùng của ổ đĩa đã được sử dụng:
ID Current Worst Threshold Raw
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
Trên cùng ổ cứng này, đã có 4 Sự kiện Tái định vị . Điều này có nghĩa là đã có bốn lần ổ đĩa đánh dấu các khu vực là xấu và sử dụng các lĩnh vực phụ tùng thay thế.
ID Current Worst Threshold Raw
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
Điều gì nếu nó không bao giờ có thể đọc dữ liệu?
Những hành động của việc đọc lại các lĩnh vực, tiêu thụ phụ tùng, tất cả đằng sau lưng máy tính là một điều tốt. Điều đó có nghĩa là hệ điều hành máy chủ không phải đối phó với vấn đề thất bại. Ổ đĩa có thể tự xử lý các chi tiết đó.
Phần thưởng trò chuyện : Vào thời xa xưa, ổ cứng của bạn được vận chuyển với nhãn dán được gắn chặt vào nó. Nhãn dán này chứa Danh sách khuyết tật của nhà máy ; danh sách tất cả các điểm xấu được biết đến trên ổ đĩa.
Nếu bạn thực hiện định dạng cấp thấp của ổ đĩa, bạn phải sử dụng một công cụ để nhập vào tất cả các vị trí Xy lanh-Đầu-Khu vực của các điểm xấu.
Các ổ đĩa SCSI có một lệnh, IOCTL_DISK_REASSIGN_BLOCKS
để bảo chúng phân bổ lại một điểm xấu trên ổ đĩa sau khi hệ điều hành phát hiện ra nó. Trong các ổ đĩa IDE, tất cả điều này xảy ra tự động, không cần sự can thiệp của hệ điều hành.
Lý tưởng nhất là ổ đĩa sẽ nhận ra khu vực bị lỗi, chuyển dữ liệu sang khu vực dự phòng và không bao giờ sử dụng khu vực ban đầu nữa. Nhưng điều gì xảy ra nếu ổ đĩa không thể đọc thành công khu vực?
Đây là những gì Pending Sectors
. Ổ đĩa đã phát hiện ra rằng một khu vực đang thất bại, và cần phải được ánh xạ lại cho một phụ tùng. Nhưng nó không thể làm điều đó cho đến khi nó có thể đọc dữ liệu thành công. Khi ổ đĩa biết rằng một khu vực là xấu và cần phải được ánh xạ lại, nhưng nó không thể làm điều đó bởi vì nó đang chờ để có được một đọc tốt từ khu vực đó: đó gọi là Đếm ngành đang chờ xử lý :
ID Current Worst Threshold Raw
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
(C5) Current Pending Sector 100 100 0 2
Ổ cứng của tôi có 2 khu vực mà ổ đĩa nhận ra là xấu, nhưng chưa thể được phân bổ lại. Nếu bạn đã đọc một trong những 'Lĩnh vực đang chờ xử lý' này, ổ đĩa có thể sẽ thử lại (và thử lại và thử lại), và cuối cùng trả về lỗi đọc cho hệ điều hành máy chủ:
Từ bỏ lĩnh vực đang chờ xử lý và nó sẽ được phân bổ lại
Có hai cách mà ổ đĩa cuối cùng có thể phân bổ lại khu vực và tiêu thụ một khu vực phụ tùng khác:
- cuối cùng nó cũng được đọc
- bạn không quan tâm những gì trong lĩnh vực này nữa
Nếu ổ đĩa cuối cùng đọc khu vực, thì nó biết rằng nó có thể phân bổ lại khu vực.
Một cách khác để ổ đĩa có thể phân bổ lại khu vực là nếu bạn cho nó biết rằng nội dung của khu vực đó không liên quan; rằng bạn không quan tâm những gì trong đó nữa. Làm thế nào để bạn làm điều đó?
Bằng cách viết một cái gì đó mới cho ngành.
Bất cứ khi nào bạn đọc từ hoặc ghi vào một khu vực trên ổ cứng, bạn phải đọc / ghi toàn bộ khu vực 512 byte 1 . Bạn không thể chỉ viết một phần của một lĩnh vực. Khi HĐH ghi dữ liệu vào một sector, nó phải chỉ định toàn bộ 512 byte. Nếu bạn nói với ổ cứng rằng bạn muốn những nội dung mới này thay thế khu vực xấu này, thì ổ đĩa đó sẽ biết bạn thậm chí không quan tâm đến những gì hiện tại trong khu vực xấu. Sau đó, nó có thể Tái phân bổ một khu vực xấu thành một trong những phụ tùng và khu vực đó không còn đang chờ xử lý .
Đây là lý do tại sao khi mọi người hỏi về việc có một số Current Pending Sectors
, lời khuyên phổ biến là sử dụng một công cụ (chẳng hạn như Data LifeGuard của Western Digital) để ghi tất cả số 0 vào ổ đĩa.
Bằng cách viết các số không cho mọi khu vực trên ổ đĩa, bạn đang nói với ổ đĩa rằng cuối cùng nó có thể phân bổ lại tất cả các khu vực đang chờ xử lý . Sau khi lau, tất cả ý chí của bạn Pending Sectors
sẽ trở thành Reallocated Sectors
:
ID Current Worst Threshold Raw
============================= ======= ===== ========= ====
(05) Reallocated Sector Count 192 192 140 66
(C4) Reallocated Event Count 196 196 0 5
(C5) Current Pending Sector 100 100 0 0
Lưu ý: Không nhất thiết phải sử dụng công cụ "cấp thấp" như Data LifeGuard của Western Digital. Nếu bạn hướng dẫn Windows thực hiện định dạng đầy đủ (nghĩa là định dạng không nhanh ) của một ổ đĩa, nó sẽ ghi các số không cho mọi khu vực trong ổ đĩa.
Hệ thống lưu trữ hệ điều hành hỗ trợ đánh dấu các ngành là xấu
Được trang bị kiến thức này, chúng ta sẽ khám phá một kịch bản thường khó hiểu.
Trước sự ra đời của Tích hợp điện tử ổ đĩa (IDE), hệ điều hành máy chủ có trách nhiệm phát hiện các thành phần xấu, thử lại đọc, di chuyển dữ liệu sang khu vực khác và đánh dấu các khu vực cũ là xấu.
Nếu bạn chạy chkdsk /r c:
hệ điều hành máy chủ, nó sẽ nhận ra rằng các khu vực "đang chờ xử lý" là xấu và tự đánh dấu chúng là xấu và không bao giờ thử sử dụng lại chúng:
> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.
12 KB in bad sectors.
Vì vậy, giả sử ổ đĩa cứng 512 byte, 12 KB 'Sending Pending' hoặc trong ví dụ 12KB này được HĐH đánh dấu là 'bad sector', sẽ tương ứng với thập phân 24 hoặc thập lục phân 0x18 như được hiển thị bởi tiện ích đĩa SMART chẳng hạn như thông tin đĩa Crystal:
ID Attribute Name Current Worst Threshold Raw
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18
Lưu ý : Tiện ích Data LifeGuard v1.31 (muộn nhất kể từ ngày 31/8/2017) của Western Digital không xuất hiện để hiển thị chính xác các giá trị bộ đếm SMART 'Raw' hiện tại.
Bây giờ nếu bạn thực hiện một định dạng đầy đủ (ghi số không cho mọi khu vực trong tập) :
Điều đó có nghĩa là tất cả những lĩnh vực Pending
sẽ được phân bổ lại. Bây giờ an toàn cho hệ thống nộp đơn để sử dụng lại các lĩnh vực đó. Để hướng dẫn hệ thống lưu trữ rằng các khu vực đó không còn "xấu" , bạn thực hiện một tùy chọn trong đó đánh giá lại các khu vực xấu:
>chkdsk c: /B
tài liệu lệnh nói ở đâu
/B NTFS only: Re-evaluates bad clusters on the volume
(implies /R)
Hoặc là
Theo:
https://technet.microsoft.com/en-us/l Library / cc730714 (v = ws.11) .aspx
/B NTFS only: Clears the list of bad clusters on the volume and
rescans all allocated and free clusters for errors. /b includes
the functionality of /r. Use this parameter after imaging a
volume to a new hard disk drive.
Đây là toàn bộ bài viết lotta, và toàn bộ ảnh chụp màn hình, cho một cái gì đó sẽ không bao giờ được đọc.