NTFS 클러스터를 불량으로 표시하는 방법은 무엇입니까?


14

NTFS에서 클러스터를 불량으로 표시 해제하려면 어떻게합니까?

배경

실수로 달렸다

>chkdsk /R

내 SSD에서

/ R : 불량 섹터를 찾고 읽을 수있는 정보를 복구합니다 (/ F 포함) ./
F : 디스크의 오류 수정

이제 드라이브에 클러스터가 불량으로 표시되었습니다. 해당 클러스터를 불량으로 표시 해제해야합니다.

참고 : chkdsk클러스터를 다시 평가하고 사용하도록 반환하는 옵션이 있습니다.

/ B : NTFS 만 해당 : 볼륨에서 불량 클러스터를 다시 평가합니다 (/ R 포함).

불행히도이 옵션은 클러스터가 더 이상 나쁘지 않은 경우에만 표시를 해제합니다. 클러스터에 표시를 해제해야합니다.

NTFS 클러스터를 불량으로 표시 해제하려면 어떻게합니까?

왜 이런 짓을하는?

내가 수백 명의 다른 사람들이 왜 그 질문을하는지는 중요하지 않습니다. 그러나 문제는 내 드라이브에 불량 섹터가 있다는 것입니다. 이제 드라이브를 새 것으로 교체해야합니다. 그렇게하는 방법은 Windows 소프트웨어 미러링을 사용하여 SSD를 다른 SSD에 미러링하는 것 입니다.

불행히도 Windows NTFS 미러링의 알려진 버그로 KB325615에 설명 된대로 미러가 완료되지 않습니다 .

디스크에 불량 블록이 포함 된 경우 소프트웨어 미러를 만들 수 없음

DMIO는 파일 시스템 아래 에서 작동 하며 소스 디스크의 섹터에서 읽거나 대상 디스크에 데이터를 쓰려고 할 때 I / O 오류를 발견하면 미러링 작업을 중단합니다.

명백한 해결 방법은 OS 볼륨 을 축소 하여 불량 섹터가 볼륨의 끝을 지났음을 나타냅니다. Windows 7에서 볼륨 축소 를 시도 하면 자동으로 파일을 이동시킵니다.

여기에 이미지 설명을 입력하십시오

이것은 좋은 일입니다. 예전에는 볼륨을 줄이려면 모든 파일을 드라이브 앞쪽으로 밀어내는 조각 모음 도구를 사용해야했습니다. 끝에 여유 공간을 남겨 둡니다.

불행히도 이제는 다음 과 같은 방식으로 이동할 수없는 파일이 $BadClus있습니다. 축소 조각 모음 작업은 이벤트 로그에서 이동할 수없는 파일을 기록합니다.

볼륨 축소 분석은 볼륨 OS (C :)에서 시작되었습니다. 이 이벤트 로그 항목은 최대 재 확보 가능한 바이트 수를 제한 할 수있는 마지막으로 이동할 수없는 파일에 대한 정보를 자세히 설명합니다.

진단 세부 사항 :

  • 마지막으로 이동할 수없는 파일은 다음과 같습니다. \ $ BadClus : $ Bad : $ DATA
  • 파일의 마지막 클러스터는 다음과 같습니다 : 0xdc1ded
  • 수축 가능성 목표 (LCN 주소) : 0xa91bd9
  • NTFS 파일 플래그는 다음과 같습니다. -S--D
  • 수축기 : <분석>

그래서:

  • 불량 섹터가 제거 될 때까지 볼륨을 미러링 할 수 없습니다
  • 볼륨을 줄이면 불량 섹터가 제거됩니다
  • 스파 스 $BadClus파일이 이동 될 때까지 볼륨을 줄일 수 없습니다
  • $BadClus물리적으로 불량 클러스터를 점유하는 동안 움직일 수 없습니다
  • $BadClus NTFS가 클러스터가 불량하다고 생각하는 동안 실제로 불량 클러스터를 점유합니다.

클러스터를 불량으로 표시 해제하려면 어떻게합니까?

드라이브를 고스트하는 사람들에게도

내 문제에 대한 해결책은 가장 일반적인 경우에도 효과가 있습니다.

누군가가 불량 섹터를 포함하는 드라이브를 새 드라이브로 고스트 한 후에도 양호한 드라이브는 여전히 양호하지만 해당 클러스터를 불량으로 표시합니다. 그들은 그들에게 가능한 해결책을 가지고 있습니다 :

>chkdsk /B

내 경우에는 작동하지 않습니다. (그리고 제 경우에는 효과가 있었지만, 내가 묻는 질문은 아닙니다.)

보너스 채터

물론 Kingson SSD는 예비 섹터를 유지하지 않습니다. 그렇다면 여분의 섹터를 투명하게 다시 매핑 할 수 있으며 NTFS로 인해 생각을 과도하게 생각하지 않을 것입니다.

SpinRite

나는 SS 드라이브를 SpinRite'ing 시도했다. 결함이있는 섹터에서 발생하지만 드라이브에서 값을 얻을 수 없습니다.

══════════════════╤═══════════════════════════╤═════════════════════════════════
cylinder : 7,183  │     data samples : 1,999  │  first uncertain bit : · · · · ·
  sector :    17  │   unique samples :     0  │   last uncertain bit : · · · · ·
    head :   187  │  discarded sples :     0  │   uncertain bit span : · · · · ·

의 수는 데이터 샘플의 수가 2,000 후 사이클은 다시 0으로,가는 유지합니다.

여기에 이미지 설명을 입력하십시오

약 20 개의 루프 (즉, 40,000 개의 데이터 샘플) 후에 포기했습니다.

클로닝

다시; 질문을 예제와 혼동하지 마십시오. 문제는 NTFS에서 클러스터를 불량으로 표시 해제하는 방법입니다. 포기하고 SSD를 버린 후에도 여전히 질문이 남아 있습니다. 내 문제를 혼동하지 마십시오. 그렇다고 실제로 내 문제를 해결하려고 할 수도 있습니다.

DriveImageXML 이 불량 섹터에 도달하여 중단됩니다.

GParted 를로드하지 못했습니다. 그래픽 부팅 화면이 나타난 다음 콘솔 창이 텍스트를 스크롤 한 다음 검은 색 화면이 없음

Clonezilla는 내 SSD 복제를 거부합니다.

이 디스크에는 일치하지 않는 GPT 및 MGR 파티션이 포함되어 있습니다. / dev / sdb
Clonezill을 혼동하여 저장된 이미지를 쓸모 없게 만들거나 디스크 복제에 실패 할 수 있습니다.

htis 문제를 해결 한 다음 Clonezilla를 다시 시작하십시오.
프로그램이 종료되었습니다.

여기에 이미지 설명을 입력하십시오

NTFS에서 클러스터를 불량으로 표시 해제하려면 어떻게합니까?


Windows 솔루션을 원하십니까, 아니면 Linux를 사용 하시겠습니까?
Thomas Weller

2
@ThomasW. 자체 부팅 도구는 상관 없습니다. 원하는 OS를 사용합니다. 물론 GUI 도구를 선호합니다. 1990 년에 명령 줄을 사용하는 데 지쳤습니다. CreateFile볼륨을 직접 여는 데 사용 하기 시작했습니다 . 그러나 문서화되지 않은 모든 데이터 구조를 파싱하여 처음부터 시작해야한다는 것을 깨달았습니다. 내가 좋아하는 16 진수 편집기 에서 편집하기 위해 볼륨을 직접 열었 지만 16 진수 구조를 수동으로 구문 분석 해야하는 동일한 단점이 있습니다.
Ian Boyd

@ThomasW. 왜 리눅스에서 그것을 고치는 방법에 대해 대답 할 수 없는지 물어보십시오. 만약 당신이 말하고 싶은 것은 리눅스 라이브 CD에서 그것을 고치면 괜찮지 만 어떻게 리눅스 태그를 추가해야하는지 모른다는 것입니다.
barlop 2016 년

디스크 파티션에 MBR을 사용하는 경우 sgdisk -z / dev / sdb가 GPT를 지우고 clonezilla가이를 복사합니다. backup-utility.com/articles/…
cybernard

답변:


7

더 이상 제목 질문에 대답하지 않겠습니다. 1

첫째, 섹터가 정말로 나쁘면 표시를 해제해도 읽을 수 없게됩니다. 따라서 복제 소프트웨어가 대신 읽을 때 질식 할 수 있습니다.

NTFS에서는 클러스터를 특별한 스트림 인$BadClus:$Bad 희소 파일 에 할당하여 불량으로 표시 합니다.

필요한 것은

  • 해당 런리스트 를 편집 하여 해당 할당 된 블록을 제거하십시오.
  • 해당 클러스터를 비어있는 것으로 표시하십시오 $Bitmap.

  • 모든 불량 블록 을 표시 해제하려면 ntfsfix -b -d( -b= 불량 불량 블록 목록 -d지우기 , = clear / "더러운"플래그를 설정하지 않음)이 있습니다 ( 정확히 동일한 다른 방법은 ntfstruncate2 ).

    • 그것은 수도 내가 그렇게 하나 실행해야합니다 왜 안 해요, (내 경우에는, 몇 가지 지표가 분명히 분류되지 않은되었다) 메타 데이터에 사소한 불일치를 소개 chkdsk -f손으로 또는 생략이 -d경우에 당신은 FS의 오류가 발생할 경우 / 윈도우 시작시를 트리거 할 수 있습니다.
  • 즉시 사용할 수있는 기존 소프트웨어를 찾지 못했기 때문에 특정 블록 을 지우는 것이 훨씬 더 어렵습니다 3 . NTFS 불량 섹터 해결 방법 : Katy의 코드 인 $ BadClus 메타 파일 은 기본적으로 실행 목록과 비트 맵을 수동으로 편집합니다.


1 불량 섹터 + NTFS + 복제를 다루는 것이 너무 광범위한 주제이기 때문입니다. 나는 당면한 문제 와 직접 관련된 것에 기꺼이 대답 할 것 입니다.
2 의 소스 코드를 확인했습니다 ntfsfix v2015.3.14.
3 끈질긴 사람을위한이,이 그것을 할 수 없습니다 : ntfscat(읽을 수없는 섹터를 읽을 수 없습니다), ntfscp(상쇄하기 위해 쓸 수 없습니다), ntfstruncate, ntfsfallocate, dd(열 수 없습니다 $BadClus:$Bad쓰기)


이것은 정답으로 선택해야합니다.
Hashim

1

불량 클러스터를 개발 한 하드 드라이브가있었습니다. 나는 잘 알려진 드라이브로 교체했습니다. 복원 프로세스는 잘못된 데이터와 다른 데이터를 복원했습니다. 이것은 Windows 7 Enterprise 컴퓨터에있었습니다.

내 솔루션은 "chkdsk d : / b"를 실행하는 것이 었습니다 (이전에 제안 된대로). / b는 이전에 표시된 불량 클러스터를 다시 검색하도록 지시합니다 (NTFS에만 해당). 적어도 내 경우에는 (그리고 / b를 지원하는 모든 버전이 의심되는 경우) 읽기 스캔을 시작하기 직전에 불량 클러스터 목록을 지 웁니다. "불량 클러스터 파일에서 X 클러스터 제거"메시지가 표시되면 chkdsk 프로세스를 종료 할 수 있습니다 (데이터 만 읽기 때문에).

참고 : 드라이브 시작 부분에서 불량 섹터를 찾은 경우 프로세스를 종료하는 순간 chkdsk가 불량 클러스터 파일을 업데이트 할 가능성이 있습니다. 위험을 감수하고 나중에 나중에 전체 chkdsk가 필요한 다른 프로그램을 다운로드하지 않고도 나쁜 클러스터 파일을 성공적으로 재설정했습니다. YMMV.


이것은 실제로 효과가있었습니다. 2 단계 후에 cmd창을 닫습니다 . 그런 다음 실행 chkdsk d: /f말할 것이다 CHKDSK discovered free space marked as allocated in the volume bitmap.및 다음 Windows has made corrections to the file system..
Davor Josipovic

0

가장 좋은 방법은 드라이브를 복제하는 것입니다. 그런 다음 chkdsk /B새 작업 드라이브에서 사용하십시오.

까다로운 실제 불량 섹터를 표시 해제하는 한. 당신은 사용할 수 있습니다 :

제품이 불량 섹터를 다시 매핑 한 다음 CHKDSK / B가 표시를 해제해야합니다.

gparted 또는 partedmagic ISO를 다운로드하십시오 . 부팅하고 파티션을 축소하십시오.

이 소프트웨어는 상관없이 파티션을 축소하지 않도록 Windows가 실행되지 않기 때문에 작동합니다. 그런 다음 chkdsk /B나머지를 처리합니다.

이 모든 것이 실패하면 지금 당신은 못생긴 고통의 길을 가고 있습니다. 섹터 편집기를 가져 와서 파일 시스템을 수동으로 편집해야합니다. 불행히도 NTFS에 대한 나의 지식 범위를 벗어납니다. FAT 또는 FAT32의 경우 매우 간단합니다.


SSD로서 다시 매핑 할 예비 섹터가 없습니다. 이것이 드라이브의 SMART가 계속 Pending Sector Count0과 0 을 기록하는 이유 Reallocated Sector Count입니다.
Ian Boyd

Katy Coe 는 NTFS의 장을 탐구하기 시작한 훌륭한 블로그를 가지고 있습니다. 그러나 오프셋, 논리 클러스터 번호, 가상 클러스터 번호 및 $ BadClus 가 실제로 전체 볼륨의 크기 인 예비 파일 이라는 사실을 계산해야 할 때 눈이 번쩍 거 렸습니다 . 나는 거의 확실하게 내 (기능) 드라이브를 파괴 할 것이다.
Ian Boyd

2
실제로 SSD에는 수많은 예비 섹터가 있습니다. 실제로 120gb ssd에는 최대 8GB의 예비 섹터가있을 수 있습니다. 드라이브가 자동으로 다시 매핑되지 않은 이유는 알 수 없습니다. gparted를 사용하고 파티션을 축소하십시오.
cybernard

이것은 오래되었지만 현재는 단종되었으며 현재 지원되지 않는 64GB Kingston 드라이브 일 수 있습니다. 또는 드라이브 펌웨어의 섹터 버그 매핑을 잊어 버린 버그 일 수도 있습니다.
Ian Boyd

또한 드라이브 복제가 불량 섹터를 발견하면 실패합니다 (적어도 DriveImageXML수행함 ).
Ian Boyd

0

디스크를 미러링하려고하고 Windows 7을 사용하고있는 것처럼 보이기 때문에 다른 방법이 있습니다.

기본 제공 도구를 사용하여 양호한 디스크에 복원 할 백업을 작성하십시오. 제어판, 시스템 및 보안, 백업으로 이동하십시오. 시스템 이미지와 시스템 복구 디스크를 만듭니다.

그런 다음 이전의 결함이있는 디스크를 양호한 디스크로 교체 한 다음 시스템 복구 디스크와 백업을 사용하여 시스템을 원래 상태로 되돌릴 수 있습니다.


0

패키지 gddrescue (gddrescue-GNU 데이터 복구 도구)가 작업을 수행해야합니다.

"sudo apt-get install gddrescue"로 데비안 기반 독립형 배포판 (CD 또는 USB 스틱) 설치 gddrescue를 잡고 터미널 창을 열고 다음을 실행하여 SSd를 복제하십시오.

ddrescue -f / dev / sda / dev / sdb ./ddrescue.log

(여기서 / dev / sda는 소스이고 / dev / sdb는 대상 SSD입니다)

ddrescue는 불량 블록을 복구하려고 시도 할 수없고 건너 뛸 수없는 경우에 시도합니다.

완료되면 chkdsk / f / b가 작업을 완료해야합니다.


0

목표는 파티션의 크기를 줄이는 것이며, 클러스터가 잘못되어 $ BadClus 파일로 인해 Windows가 축소하지 않는 것 같습니다.

$ BadClus 파일을 직접 처리하지 않고도 드라이브를 축소 해야하는 대체 솔루션이 있습니다. 파티션 마법사를 사용하여 파티션을 축소하십시오. Partition Wizard는 사용하기 쉽고 비상업적 용도로는 무료이며 GUI를 사용하여 Windows 내부에서 실행하거나 작은 Linux를 실행하는 CD 또는 USB 부팅에서 동일한 GUI를 제공 할 수 있습니다. 이 프로그램은 지워진 파티션을 복구하고 MBR과 GPT 파티션 테이블간에 변환 할 수도 있습니다.

Windows가 특정 지점을 지나서 파티션을 축소하지 못하는 문제가 발생하면 동일한 파티션에서 파티션 마법사를 사용해 보았습니다. 파티션 마법사가 $ BadClus 파일을 기꺼이 무시한다고 가정합니다. 저는이 프로그램을 8 년 넘게 사용해 왔으며 마침내 Pro 버전을 구입했습니다. 필자는 1996 년에 구입 한 PQMagic을 대신하여이 프로그램을 찾았는데, 이는 작은 드라이브를위한 멋진 DOS 파티션 프로그램이었습니다.

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