류짱:Beyond MySelf

CHKDSK / Chkdsk switches 본문

카테고리 없음

CHKDSK / Chkdsk switches

リュちゃん 2011. 8. 17. 13:51

Chkdsk Switches

Switch

Effect

filename

FAT only. Specifies the file or set of files to check for fragmentation. Wildcard characters (* and ?) are allowed.

path

FAT only. Specifies the location of a file or set of files within the folder structure of the volume.

size

NTFS only. Changes the log file size to the specified number of kilobytes. Must be used with the /l switch.

volume

FAT only. Specifies the drive letter (followed by a colon), mount point, or volume name.

/c

NTFS only. Skips checking of cycles within the folder structure.

/f

Fixes errors on the volume. The volume must be locked. If Chkdsk cannot lock the volume, it offers to check it the next time the computer starts.

/i

NTFS only. Performs a less vigorous check of index entries.

/l

NTFS only. Displays current size of the log file.

/r

Locates bad sectors and recovers readable information (implies /f ). If Chkdsk cannot lock the volume, it offers to check it the next time the computer starts.

/v

On FAT. Displays the full path and name of every file on the volume. 
On NTFS. Displays cleanup messages, if any.

/x

NTFS only. Forces the volume to dismount first, if necessary. All opened handles to the volume are then invalid (implies /f ).

/?

Displays this list of Chkdsk switches.

Note

FAT refers to volumes formatted with FAT12, FAT16, or FAT32.

Using the /i or /c switch skips certain checks of the NTFS volume and reduces the amount of time required to run Chkdsk.

Use Chkdsk occasionally on each volume to check for errors. You must be logged on as a member of the Administrators group.

 

CHKDSK의 기능 이해

CHKDSK 작업은 볼륨의 모든 메타데이터를 검사하는 주요한 세 가지 단계와 옵션인 네 번째 단계로 나눌 수 있습니다.

메타데이터는 "데이터에 대한 데이터"입니다. 즉, 볼륨에 저장되어 있는 모든 파일에 대한 정보를 추적하는 데 사용되는 파일 시스템 "오버헤드"입니다. 메타데이터는 해당 파일의 데이터를 구성하는 할당 단위, 사용 가능한 할당 단위, 불량 섹터가 있는 할당 단위 등에 대한 정보를 포함하고 있습니다. 하지만 파일에 들어 있는 데이터는 "사용자 데이터"라고 합니다. NTFS는 트랜잭션 로그를 사용하여 메타데이터를 보호합니다. 하지만 사용자 데이터는 보호되지 않습니다.

1단계: 파일 확인

CHKDSK는 첫 번째 단계에서 파일을 확인 중이라는 메시지를 표시하며 완료율을 0에서 100까지의 백분율로 표시합니다. 이 단계에서 CHKDSK는 볼륨의 MFT(마스터 파일 테이블)에서 각 파일 레코드 세그먼트를 검사합니다. 

MFT의 특정 파일 레코드 세그먼트는 NTFS 볼륨에 있는 모든 파일과 디렉터리를 고유하게 식별합니다. 이 단계 동안 CHKDSK가 표시하는 "완료율"은 확인한 MFT의 퍼센트입니다. 이 단계 동안 CHKDSK는 각 파일 레코드 세그먼트에 내부 일관성이 있는지 검사하고 두 가지 비트맵을 작성합니다. 이 중 하나는 사용 중인 파일 레코드 세그먼트를 나타내고 다른 하나는 사용 중인 볼륨 클러스터를 나타냅니다. 

이 단계의 끝에서 CHKDSK는 MFT와 전체 볼륨에서 사용 중인 공간과 사용할 수 있는 공간을 확인합니다. NTFS도 디스크에 저장되는 자체 비트맵에서 이 정보를 추적합니다. CHKDSK는 해당 검사 결과를 NTFS에 보관된 비트맵과 비교합니다. 둘 사이에 차이점이 있으면 CHKDSK 출력에 나타납니다. 예를 들어, 사용 중인 파일 레코드 세그먼트가 손상된 것으로 밝혀진 경우 이 파일 레코드 세그먼트와 연관된 디스크 클러스터가 CHKDSK 비트맵에서는 "사용 가능"한 것으로 표시되지만 NTFS 비트맵에서는 "사용 중"인 것으로 표시될 수 있습니다.

2단계: 인덱스 확인

CHKDSK는 두 번째 단계에서 인덱스를 확인 중이라는 메시지를 표시하고 다시 완료율을 0에서 100까지의 백분율로 표시합니다. 이 단계 동안 CHKDSK는 볼륨에 있는 각 인덱스를 검사합니다.

인덱스는 본질적으로는 NTFS 디렉터리이며 이 단계 동안 CHKDSK에서 표시하는 "완료율"은 볼륨에서 확인된 전체 볼륨 디렉터리 수의 퍼센트입니다. 이 단계에서 CHKDSK는 볼륨에 있는 각 디렉터리에 내부 일관성이 있는지 검사하고 MFT의 파일 레코드 세그먼트가 나타내는 모든 파일과 디렉터리가 최소한 하나 이상의 디렉터리에서 참조되는지 확인합니다. 또한 각 디렉터리에서 참조되는 모든 파일이나 하위 디렉터리가 MFT에서 유효한 파일 레코드 세그먼트로서 실제로 존재하는지 확인하고 순환 디렉터리 참조를 검사합니다. 마지막으로 파일의 시간 스탬프와 파일 크기 정보가 해당 파일의 디렉터리 목록에서 최신인지 확인합니다. 

이 단계의 끝에서 CHKDSK는 "연결되지 않은" 파일이 없는지 확인하고 모든 디렉터리 목록이 올바른 파일에 대한 것인지 확인합니다. 연결되지 않은 파일이란 올바른 파일 레코드 세그먼트가 존재하지만 어떤 디렉터리에도 목록이 없는 파일을 말합니다. 연결되지 않은 파일도 적절한 디렉터리가 존재하기만 하면 종종 해당 디렉터리에 복원할 수 있습니다. 적절한 디렉터리가 더 이상 존재하지 않으면 CHKDSK는 루트 디렉터리에 디렉터리를 만들어 파일을 거기에 놓습니다. CHKDSK는 더 이상 사용하지 않는 파일 레코드 세그먼트나 사용 중이지만 디렉터리에 나열된 파일에 해당하지 않는 파일 레코드 세그먼트에 대한 디렉터리 목록을 발견하면 그러한 파일 레코드 세그먼트에 대한 디렉터리 항목을 제거합니다.

3단계: 보안 설명자 확인

CHKDSK는 세 번째 단계에서 보안 설명자를 확인 중이라는 메시지를 표시하며 "완료율"을 0에서 100까지의 백분율로 표시합니다. 이 단계 동안 CHKDSK는 볼륨에 있는 파일이나 디렉터리에 연관된 각 보안 설명자를 검사합니다.

보안 설명자에는 파일이나 디렉터리에 대한 소유권, NTFS 권한 및 감사 정보가 포함되어 있습니다. 이 단계 동안 CHKDSK에서 표시하는 "완료율"은 볼륨에서 확인된 파일과 디렉터리의 퍼센트입니다. CHKDSK는 각 보안 설명자 구조가 잘 형성되어 있고 내부적으로 일관성이 있는지 확인합니다. 하지만 목록에 있는 사용자나 그룹의 실제 존재 여부나 부여된 권한의 적합성 여부는 확인하지 않습니다.

4단계: 섹터 확인

/R 스위치를 적용하면 CHKDSK는 네 번째 단계를 실행하여 볼륨의 사용 가능한 공간에서 불량 섹터를 찾습니다. 볼륨에 있는 모든 섹터를 읽고 해당 섹터를 사용할 수 있는지 확인합니다. /R 스위치를 사용하지 않은 경우에도 CHKDSK는 항상 메타데이터와 연관된 섹터를 읽습니다. 사용자 데이터와 연관된 섹터는 /R 스위치를 지정한 경우에 CHKDSK의 초기 단계 동안 읽혀집니다. 

CHKDSK가 읽을 수 없는 섹터를 발견하면 NTFS는 불량 클러스터 목록에 이 섹터가 포함되어 있는 클러스터를 추가합니다. 이 불량 클러스터가 사용 중인 경우에는 CHKDSK가 새 클러스터를 할당하여 불량 클러스터의 작업을 수행하도록 합니다. 내결함성 디스크를 사용 중인 경우에는 NTFS가 이 불량 클러스터의 데이터를 복구하여 새로 할당한 클러스터에 씁니다. 그렇지 않으면 새로운 클러스터를 0xFF 바이트 패턴으로 채웁니다. 

NTFS에서 정상 작동 중에 읽을 수 없는 섹터를 발견하면 CHKDSK에서 실행할 때와 같은 방식으로 이 섹터를 다시 매핑합니다. 따라서 대개의 경우에는 /R 스위치를 꼭 사용할 필요는 없습니다. 그러나 디스크에 불량 섹터가 있다고 의심되는 경우에 /R 스위치를 사용하면 전체 볼륨을 편리하게 검색할 수 있습니다.

CHKDSK 시간 요구량 이해

앞에서 설명한 CHKDSK 실행 단계는 CHKDSK에서 NTFS 볼륨의 무결성을 확인하기 위해 수행하는 주요 작업을 개략적으로만 설명한 것입니다. CHKDSK는 각 단계에서 단계에 특정한 여러 검사 작업을 추가로 수행하고 단계 사이에서도 몇 가지 빠른 검사를 수행합니다. 하지만 다음에서 설명할 CHKDSK의 실행 시간에 영향을 미치는 변수와 Windows XP의 새로운 /C 및 /I 스위치의 영향은 그러한 개략적인 설명에 기반한 것입니다.

변수 1: "인덱스" 단계

CHKDSK 실행 첫 번째 단계와 세 번째 단계(파일 확인 및 보안 설명자 확인) 중에는 "완료율" 표시기가 다소 순조롭게 진행됩니다. 사용하지 않는 파일 레코드 세그먼트의 처리 시간이 더 짧고, 보안 설명자가 클수록 처리 시간이 더 걸리지만 "완료율"은 전반적으로 해당 단계에서 필요한 실제 시간을 비교적 정확하게 반영합니다. 

그러나 이러한 퍼센트/시간 관계는 CHKDSK가 인덱스(NTFS 디렉터리)를 검사하는 두 번째 단계에 반드시 적용되지는 않습니다. 디렉터리를 처리하는 데 걸리는 시간은 해당 디렉터리에 있는 파일과 하위 디렉터리 수와 밀접하게 연관되어 있지만 이 단계의 "완료율"은 CHKDSK에서 검사해야 할 디렉터리 수만을 기준으로 합니다. 예를 들어, 파일과 하위 디렉터리가 아주 많이 있는 디렉터리를 처리하는 데 걸리는 시간은 조정할 수가 없습니다. 따라서 볼륨에 있는 모든 디렉터리가 같은 수의 파일을 포함하고 있지 않으면 이 단계 동안 표시되는 "완료율"은 두 번째 단계에 필요한 실제 시간을 신뢰성 있게 나타낸다고 할 수 없습니다. 

예상치 못한 CHKDSK 절차의 중간 단계에 있는 경우 CHKDSK의 두 번째 단계가 대개 실행 시간이 가장 긴 단계이기 때문에 상황은 더욱 좋지 않게 됩니다.

변수 2: 볼륨 상태

볼륨 상태와 관련된 많은 요소가 CHKDSK를 실행하는 데 걸리는 시간에 중요한 역할을 합니다. 주어진 볼륨에서 CHKDSK를 실행하는 데 필요한 시간을 예측하는 공식은 파일 및 디렉터리 수, 일반적으로 볼륨의 조각화 정도와 특히 MFT의 조각화 정도, 파일 이름 형식(긴 이름, 8.3 형식 이름 또는 이 둘의 혼합) 및 CHKDSK에서 복구해야 할 실제 손상 정도와 같은 변수를 고려해야 합니다.

변수 3: 하드웨어 문제

하드웨어 문제도 CHKDSK를 실행하는 데 걸리는 시간에 영향을 미칩니다. 사용 가능한 메모리 양, CPU 속도, 디스크 속도와 같은 변수가 실행 시간에 영향을 미칩니다.

변수 4: CHKDSK 설정

/R 스위치를 사용하지 않을 경우에 주어진 하드웨어 플랫폼에서 시간에 대해 가장 많이 고려해야 사항은 볼륨의 절대 크기보다는 해당 볼륨에 있는 파일과 디렉터리의 수입니다. 

예를 들어, /R 스위치를 사용하지 않는다면 50GB 볼륨에 큰 데이터베이스 파일이 하나나 두 개만 있을 경우 CHKDSK를 실행하는 데는 몇 초만 걸릴 수 있지만 /R 스위치를 사용하면 CHKDSK에서 볼륨에 있는 모든 섹터를 읽고 확인해야 하기 때문에 큰 볼륨의 경우 상당한 시간이 더 필요합니다. 반면에 비교적 작은 볼륨에서도 작은 파일이 수십만에서 수백만 개가 있다면 /R 스위치의 지정 여부에 관계없이 CHKDSK를 실행하는 데 몇 시간이 걸릴 수 있습니다.

[참고 사이트]
Chkdsk.exe에서 사용할 수 있는 새로운 /C 및 /I 스위치에 대한 설명

http://support.microsoft.com/kb/314835|
Windows XP에서 디스크 오류 검사를 수행하는 방법
http://support.microsoft.com/kb/315265