짧은 대답 : 섹터에 새로운 것을 쓰십시오 (긴 형식이하는 0조차도).
긴 답변
오늘날 하드 드라이브는 호스트 컴퓨터에서 불량 섹터를 숨기려고합니다. 호스트 컴퓨터는 단순히 드라이브에 특정 섹터 번호의 내용을 반환하도록 요청합니다. 일반적으로 드라이브는 섹터를 읽고 호스트 시스템으로 반환하며 모든 것이 정상입니다.
드라이브는 오류 수정 코드 (ECC) 를 사용하여 읽은 내용이 올바른지 확인 하기 때문에 읽은 값이 유효한지 여부를 알고 있습니다. 드라이브가 섹터의 내용이 유효하지 않다는 것을 감지하면 읽기를 재 시도합니다. 희망은 단순히 다시 읽으면 올바른 섹터 내용을 얻을 수 있기를 바랍니다. 좋은 값을 얻거나 시간 제한 (공식적으로 명령 완료 시간 제한 또는 CCTL )에 도달 할 때까지 계속 재 시도합니다 .
재 시도하는 동안 드라이브는 죽은 것처럼 보입니다. 더 이상 명령에 응답하지 않기 때문입니다 .
스페어 섹터
대부분의 최신 드라이브에는 다수의 "예비" 섹터 (예 : 1,024 개의 예비 섹터)가 있습니다. 드라이브가 섹터를 불량으로 인식하면 사용을 중지합니다. 손상된 섹터를 읽거나 쓰려는 요청은 투명하게 스페어 섹터로 리디렉션됩니다. 불량 섹터를 표시하고 예비 섹터에 데이터를 재 할당 하는 것을 재 할당 이벤트 라고합니다 . 그리고 재 할당 된 총 섹터 수 (및 예비 섹터 중 얼마나 많은 예비 섹터가 사용 되었는가)는 재 할당 된 섹터 수 입니다.
이 예에서는 내 하드 드라이브 중 하나에서 64 개의 섹터가 불량한 것으로 나타났습니다. 이는 드라이브 예비 섹터 중 64 개가 사용되도록 요청되었음을 의미합니다.
ID Current Worst Threshold Raw
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
이 동일한 하드 드라이브에는 4 개의 재 할당 이벤트가 있었습니다. 이는 드라이브가 섹터를 불량으로 표시하고 스페어 섹터를 대신 사용한 경우가 네 번 있음을 의미합니다.
ID Current Worst Threshold Raw
============================= ======= ===== ========= ===
(05) Reallocated Sector Count 192 192 140 64
(C4) Reallocated Event Count 196 196 0 4
데이터를 읽을 수 없으면 어떻게합니까?
섹터를 다시 읽고, 스페어를 소비하는 이러한 조치는 컴퓨터 뒤에서 모두 좋은 일입니다. 이는 호스트 운영 체제가 실패한 섹터 문제를 처리하지 않아도됨을 의미합니다. 드라이브 자체는 이러한 세부 사항 자체를 처리 할 수 있습니다.
보너스 채터 : 옛날에는 하드 드라이브에 스티커가 붙어 있습니다. 이 스티커에는 공장 결함 목록 이 포함되어 있습니다 . 드라이브의 알려진 모든 불량 지점 목록
드라이브의 저수준 포맷을 수행 한 경우 불량 지점의 모든 실린더 헤드 섹터 위치 를 입력하는 도구를 사용해야했습니다 .
SCSI 드라이브에는 IOCTL_DISK_REASSIGN_BLOCKS
운영 체제가 드라이브를 감지 한 후 드라이브의 불량 지점을 재 할당하도록 명령하는 명령 이 있습니다. IDE 드라이브에서는이 모든 것이 운영 체제 개입없이 자동으로 수행됩니다.
이상적으로 드라이브는 섹터의 고장을 인식하고 데이터를 예비 섹터로 옮기고 원래 섹터를 다시 사용하지 않습니다. 그러나 드라이브가 섹터를 읽지 못하면 어떻게됩니까?
이것은 무엇입니까 Pending Sectors
. 드라이브가 섹터에 장애가 있음을 감지했으며 스페어로 다시 매핑해야합니다. 그러나 데이터를 성공적으로 읽을 수있을 때까지는 그렇게 할 수 없습니다. 드라이브가 섹터가 불량하다는 것을 알고 리 맵핑해야하지만 섹터에서 좋은 읽기를 기다리고 있기 때문에 아직이를 수행 할 수 없습니다.이를 보류중인 섹터 수 라고합니다 .
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
내 하드 드라이브에는 드라이브가 불량으로 인식하지만 아직 재 할당 할 수없는 2 개의 섹터가 있습니다. 이러한 '보류 섹터'중 하나를 읽으면 드라이브가 재시도 (및 재시도 및 재시도) 할 수 있으며 결국 호스트 운영 체제에 읽기 오류를 리턴합니다.
보류중인 섹터를 포기하면 다시 할당됩니다
드라이브가 섹터를 최종적으로 재 할당 하고 다른 예비 섹터를 소비 할 수있는 두 가지 방법이 있습니다.
- 마침내 좋은 평판을 얻습니다.
- 더 이상이 분야에 관심이 없습니다
드라이브가 최종적으로 섹터를 읽으면 해당 섹터를 재 할당 할 수 있다는 것을 알게됩니다.
드라이브가 섹터를 재 할당 할 수있는 다른 방법은 해당 섹터의 내용이 관련이 없음을 알리는 것입니다. 더 이상 내용에 신경 쓰지 않습니다. 어떻게합니까?
이 분야에 새로운 것을 쓰면서.
하드 드라이브의 섹터를 읽거나 쓸 때마다 전체 512 바이트 섹터 1 을 읽거나 써야합니다 . 섹터의 일부만 쓸 수 없습니다 . OS가 데이터를 섹터에 쓸 때 전체 512 바이트 를 지정해야합니다 . 하드 드라이브에이 새로운 내용이이 불량 섹터를 대체하기를 원한다고하면, 드라이브는 현재 불량 섹터에있는 것을 신경 쓰지 않는다는 것을 알게됩니다. 그러면 불량 섹터를 예비 중 하나에 재 할당 할 수 있으며 해당 섹터는 더 이상 보류 중이 아닙니다 .
그렇기 때문에 사람들이 몇 가지를 요구할 때 Current Pending Sectors
일반적인 조언은 도구 (예 : Western Digital의 Data LifeGuard)를 사용하여 드라이브에 모두 0을 쓰는 것입니다.
드라이브의 모든 섹터에 0을 쓰면 드라이브가 모든 성가신 보류 섹터를 다시 할당 할 수 있음을 알 수 있습니다 . 닦은 후에는 모든 Pending Sectors
것이됩니다 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
참고 : Western Digital의 Data LifeGuard와 같은 "낮은 수준"도구를 반드시 사용해야하는 것은 아닙니다. Windows 가 볼륨 의 전체 형식 (즉, 비 빠른 형식)을 수행하도록 지시 하면 볼륨의 모든 섹터에 0을 씁니다.
OS 파일링 시스템은 불량 섹터 표시를 지원합니다
이 지식으로 무장 한 우리는 일반적으로 혼란스러운 시나리오를 탐구 할 것입니다.
IDE ( Integrated Drive Electronics) 가 출현하기 전에 호스트 운영 체제는 불량 섹터 감지, 읽기 재시도, 데이터를 다른 섹터로 이동 및 오래된 섹터를 불량으로 표시했습니다.
chkdsk /r c:
호스트 운영 체제를 사용하여 실행하는 경우 "보류중인" 섹터가 불량 임을 인식하고 불량 섹터로 표시하고 다시 사용하지 마십시오.
> C:\Windows\system32>chkdsk /r c:
The type of the file system is NTFS.
Volume label is OS.
12 KB in bad sectors.
따라서 512 바이트 섹터 하드 드라이브, 12KB의 '보류 섹터'또는이 예에서 OS가 '불량 섹터'로 표시 한 12KB를 가정하면 SMART 디스크 유틸리티로 표시되는 10 진수 24 또는 16 진 0x18에 해당합니다. 크리스탈 디스크 정보와 같은 :
ID Attribute Name Current Worst Threshold Raw
============================= ======= ===== ========= ====
(C5) Current Pending Sector 100 100 0 18
참고 : Western Digital의 Data LifeGuard v1.31 (2017 년 8 월 31 일 현재) 유틸리티는 현재 SMART 'Raw'카운터 값을 올바르게 표시하지 않습니다.
이제 전체 형식 을 수행하면 (볼륨의 모든 섹터에 0을 씁니다) :
그것은 Pending
재 할당 될 모든 섹터를 의미합니다 . 이제 파일 시스템이 해당 섹터를 다시 사용하는 것이 안전합니다. 제출 시스템에 해당 섹터가 더 이상 "나쁜"지 않다고 지시하려면 불량 섹터를 재평가 하는 옵션을 수행하십시오 .
>chkdsk c: /B
명령 문서가 말하는 곳
/B NTFS only: Re-evaluates bad clusters on the volume
(implies /R)
또는
https://technet.microsoft.com/en-us/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.
이것은 결코 읽히지 않을 무언가에 대한 전체 로타 글쓰기 및 전체 로타 스크린 샷이었습니다.