SMART C5 (현재 보류중인 섹터 수)에보고 된 섹터를 다시 매핑하는 방법은 무엇입니까?


38

HP Pavilion dv6 랩탑에있는 Samsung HM640JJ 하드 드라이브의 SMART C5 값은 "노란색 상태 =주의"입니다

C5는 어제 10 살이었고 오늘 21 살입니다.

C4 (Reallocation Event Count) = 005 (Reallocated Sectors Count) = 0

펌웨어를 강제로 재 할당하려면 어떻게해야합니까?

  • 파티션을 제거하고 다시 만든 다음 전체 드라이브를 포맷했습니다.
  • 나는 달렸다 chkdsk /r /f
  • BIOS 디스크 검사 유틸리티 및 기타 진단 / 수리 도구를 실행했습니다

나는 이것을하기 위해 레벨 2에서 부트 디스크 spinrite6를 사용한다 .... grc.com/intro.htm
Moab

답변:


118

짧은 대답 : 섹터에 새로운 것을 쓰십시오 (긴 형식이하는 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.

이것은 결코 읽히지 않을 무언가에 대한 전체 로타 글쓰기 및 전체 로타 스크린 샷이었습니다.


87 %에서 문제가있는 200MB 파일이 있습니다. 보류중인 섹터가 3 개 있습니다. 파일을 해싱하여 읽기를 재 할당하고 재 할당 된 섹터를 청구하려고했지만 재 할당되지 않았습니다! 해싱 결과 : 확인, 실패, 확인, 확인, 실패, 실패 OS가 이벤트 뷰어에서 여러 개의 디스크 오류를 생성 할 때마다 ok 해싱에서 87 %로 30 분 동안 중단되었습니다. 모든 해시가 동일합니다. C5는 여전히 3이고 C4는 여전히 0입니다.
Mark Jeronimus

@MarkJeronimus 파일 와이퍼를 사용해보십시오. 파일 와이퍼는 모두 0 (또는 임의의 모든 데이터)을 파일에 기록합니다. 이제 더 이상 해당 부문에 관심이 없다는 사실을 깨닫게 될 것입니다.
Ian Boyd

나는 전체 형식을 수행했지만 여전히 변경되지 않았습니다.
Mark Jeronimus

2
내가 이해하지 못하는 한 가지 : (a) 현재 C5 섹터가 들어있는 파일을 표시하고 (b) 해당 섹터를 '누크'하는 것, 즉 C6으로 이동하여 읽기 시도를 중단 할 수 있습니까? HDD가 끝없이 실패하는 읽기주기에 걸리는 것을 원하지 않습니다. 오히려 해당 섹터를 차단하고 문제의 파일을 삭제합니다 (중요한 경우 다른 소스에서 수동으로 복원).
MM

1
그래도 전체 드라이브를 0으로 만들고 싶지 않고 불량 비트를 해결하십시오. 감사합니다
MM

5

아직 아무것도 할 필요가 없습니다. 재 할당 횟수는 "디스크에서 결함이있는 섹터를 발견하여 성공적으로 재할당했습니다"를 의미합니다. 펌웨어가 이미 문제를 해결했습니다.

드라이브가 고장 나기 시작한다는 것을 알아야합니다. 나중에 언젠가 드라이브에 재 할당 할 여분의 섹터가 없으므로 데이터가 손실됩니다. 중요한 블록이 손실되면 드라이브의 모든 데이터가 손실 될 수 있습니다.

따라서이 값을 주시하거나 새 드라이브를 즉시 구입하여 잊어 버리십시오.


3

https://www.smartmontools.org/wiki/BadBlockHowto에 설명 된 방법에 대한 좋은 경험이 있습니다 . 내 디스크가 소음을 내고 작동을 멈췄으므로 스마트 보고서와 수식을 사용하여 불량 블록을 계산하고 dd를 사용하여 지우십시오. smart가 여전히 현재 섹터 수를보고하지만 디스크가 2 년 정도 된 이후로 작동하고 있기 때문에 운이 좋았습니다. 대체품을 구입했지만 사용한 적이 없습니다. 똑똑한 것도 그렇게 정확하지 않은 것 같습니다.


재 할당을 강제하기 위해 잘못된 위치에 0을 쓸 때 dd에 대한 oflag = direct 옵션 (링크에서 제안한대로)이 내가 찾던 부분이었습니다. 감사!
Anton

2

이 도구를 모르실 수도 있습니다 : HD Sentinel

하드 디스크 센티넬 (HDSentinel)은 다중 OS SSD 및 HDD 모니터링 및 분석 소프트웨어입니다. 목표는 하드 디스크 드라이브 문제를 찾고, 테스트, 진단 및 복구하고, SSD 및 HDD 상태, 성능 저하 및 오류를보고 및 표시하는 것입니다. Hard Disk Sentinel은 컴퓨터 내부 및 외부 인클로저 (USB 하드 디스크 / e-SATA 하드 디스크)의 하드 디스크 및 솔리드 스테이트 디스크에 대한 가장 포괄적 인 정보를 텍스트 설명, 팁 및 표시 /보고합니다. 귀중한 데이터의 안전성을 극대화하기 위해 다양한 경고 및 보고서 옵션을 사용할 수 있습니다.

이것은 그러한 행동을 수행하는 훌륭한 도구 인 것 같습니다. 그러나 일부 실행 옵션은 데이터를 완전히 파괴 할 수 있습니다.


1

드라이브의 모든 섹터에 쓰는 도구를 사용해야합니다. 그렇지 않으면 할 수있는 방법이 없습니다. 드라이브가 스페어 섹터를 할당하고 다시 매핑 한 경우 스페어 섹터에 어떤 데이터를 넣어야합니까? 기존 섹터에서 읽기 시도가 실패 했으므로 알 수 없습니다. 쓰기 작업 만 오류를 지울 수 있습니다.


전체 하드 드라이브를 포맷하면 모든 섹터에 쓰기 작업이 이루어 집니까? 드라이브를 이미 포맷했습니다 (Windows 기반 형식 명령, '빠른 형식'없음). 감사합니다
edteke

2
빠른 형식은 모든 섹터에 대한 쓰기 작업이 아니며 보통 형식입니다. 언제든지 DBaN을 사용할 수 있습니다 . 정규 형식은 적어도 카운트를 줄입니까?
David Schwartz가

일반 형식 (빠른 형식이 아님)을 사용했는데 형식 후에 카운트 다운 또는 다시 매핑이 필요했지만 숫자는 동일했습니다. 감사합니다
edteke

실제로는 매우 이상합니다. 파티션이 전체 드라이브의 크기를 포맷 했습니까?
David Schwartz가

@edgh : 이러한 오류가 발생하면 일반 형식이 도움이되지 않습니다. 내 방법을 시도해보십시오.
Gigamegs 2012 년

1

저수준 형식이라고도하는 제로 쓰기 일반적으로 제조업체 디스크 유틸리티를 사용하여이 작업을 수행 할 수 있습니다. 이 오류를 일으키는 하드 드라이브 오류가 발생하면 거의 즉시 돌아올 수 있습니다.


1

Spinrite 6 또는 HDD 재생기 부팅 CD를 사용해보십시오. 표면 테스트를 작성하여 보류중인 불량 섹터를 지우고 재 할당 횟수를 늘려야합니다.


0

다른 솔루션을 추가하기 위해 최근에 Victoria 를 사용 하여 보류중인 섹터로 실패한 2 개의 디스크를 복구했지만 디스크는 자체적으로 자동으로 다시 매핑하지 않았습니다.

Victoria는 디스크에 대한 저수준 그래픽 인터페이스이며 디스크의 바이트 별 실제 바이트 편집, 실패시 섹터 재 매핑, USB 드라이브 및 저렴한 China-bay USB-2-sata를 포함합니다 (실제로 원한다면!). 어댑터, 공장 설정 스마트 속성 및 기능 등을 변경합니다.

단점은 러시아 개발자가 개발 한 것으로 판도라의 상자를 열면 문제가 발생합니다.

Victoria와 함께, 나는 재 맵핑에 실패한 첫 번째 섹터를 잡고 그 후 각 섹터에 대한 "읽기"스캔을 강제 리맵으로 실행했습니다. 그런 다음 전체 디스크의 "확인"을 실행하고 스마트 검사를 다시 실행하면 이제 괜찮습니다 ...

...하지만 예비 디스크가 있으므로 지금 교체하는 과정에 있습니다. 백업 솔루션 사이에서도 항상 무섭습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.