DetailPage-MSS-KB

기술 자료

기술 자료: 187941 - 마지막 검토: 2004년 9월 21일 화요일 - 수정: 3.0

이 문서는 이전에 다음 ID로 출판되었음: KR187941

이 페이지에서

요약

Windows NT 버전 4.0용 서비스 팩 4(SP4) 및 Windows 2000에는 Chkdsk.exe에 두 개의 새로운 스위치가 추가되었습니다. 이들 스위치를 사용하면 CHKDSK 또는 AUTOCHK 실행에 필요한 시간을 줄일 수 있습니다.

SP4 및 Windows 2000에 추가된 스위치는 /C와 /I이며 대상 드라이브가 NTFS 포맷인 경우에만 유효합니다. 각 스위치를 사용하면 CHKDSK 루틴에서 NTFS 데이터 구조의 무결성을 확인하기 위해 수행하는 특정 작업을 건너뜁니다.

추가 정보

Chkdsk.exe는 Windows NT에서 파일 시스템의 논리적 무결성을 확인하는 프로그램의 명령줄 인터페이스입니다. CHKDSK에서 논리적으로 일관성이 없는 항목을 발견하면 읽기 전용 미디어가 아니라는 가정 하에 파일 시스템 데이터를 복구하기 위한 작업을 수행합니다.

CHKDSK를 온라인에서 실행할 때 실제 확인을 수행하는 코드는 Untfs.dll과 Ufat.dll 같은 유틸리티 DLL 안에 들어 있습니다. Chkdsk.exe에서 호출하는 확인 루틴은 Windows 탐색기나 디스크 관리자에서 제공하는 그래픽 사용자 인터페이스를 통해 볼륨을 확인할 때 호출되는 것과 같은 루틴입니다. 하지만 다시 부팅할 때 CHKDSK를 실행하도록 예약하면 확인 코드를 포함하는 이진 모듈은 Autochk.exe입니다. Autochk.exe는 가상 메모리나 다른 서비스의 이점을 활용할 수 없는 부팅 초기 단계에서 실행되는 기본 Windows NT 응용 프로그램입니다. Autochk.exe는 Chkdsk.exe에서 호출하는 유틸리티 DLL이 생성하는 텍스트 출력과 같은 종류의 출력을 생성합니다. 하지만 Autochk.exe는 부팅 과정 중에 이 출력을 화면에 표시하는 동시에 이벤트 로그 데이터 버퍼 양만큼의 텍스트 출력을 포함하는 이벤트를 시스템의 응용 프로그램 이벤트 로그에 기록합니다.

Autochk.exe와 Chkdsk.exe에서 사용하는 유틸리티 DLL의 확인 코드는 같은 소스 코드를 기반으로 합니다. 이 문서의 나머지 부분에서는 두 코드 모두 "CHKDSK"로 나타냅니다. 비슷하게 이 문서에서 NTFS 볼륨과 관련된 CHKDSK 작동 변경 사항에 대해서만 고려하기 때문에 "CHKDSK에서 이러이러한 작업을 한다"라는 표현은 "NTFS 볼륨에서 실행할 때 CHKDSK에서 이러이러한 작업을 한다"라는 의미임을 알아야 합니다.

/C 및 /I 스위치 사용으로 CHKDSK를 완료한 후에도 볼륨이 손상된 상태가 될 수 있기 때문에 실행 시간을 최소화해야 할 경우가 아니라면 이러한 스위치를 사용하는 것은 좋지 않습니다. 이 스위치는 매우 큰 볼륨이 있고 그와 같은 볼륨에서 CHKDSK를 실행해야 할 때 발생하는 실행 시간을 줄여야 하는 사용자를 위한 것입니다.

이 스위치를 사용하는 데 적당한 시점을 이해하려면 일부 내부 NTFS 데이터 구조, 발생할 수 있는 손상 종류, 볼륨을 확인할 때 CHKDSK가 수행하는 작동, 순환적인 CHKDSK의 일반적인 확인 단계에서 다음에 발생할 가능성이 있는 상황 등에 대해 기본적인 이해를 하는 것이 중요합니다.

CHKDSK 작업은 볼륨의 모든 "메타데이터"를 검사하는 주요한 3가지 "단계"와 옵션인 4가지 단계로 나눌 수 있습니다. 메타데이터는 "데이터에 대한 데이터"입니다. 말하자면 볼륨에 있는 모든 파일에 대한 모든 것을 추적하는 데 사용되는 파일 시스템 오버헤드입니다. 메타데이터는 해당 파일의 데이터를 구성하는 할당 단위, 사용 가능한 할당 단위, 잘못된 데이터를 포함한 할당 단위 등을 알려줍니다. 하지만 파일의 "내용"은 "사용자 데이터"라고 표현합니다. NTFS는 트랜잭션 로그를 사용하여 메타데이터를 보호합니다. 하지만 사용자 데이터는 보호하지 않습니다.

CHKDSK는 첫번째 단계에서 파일을 확인 중이라는 메시지를 화면에 표시하며 완료율을 0에서 100까지의 비율로 표시합니다. 이 단계에서 CHKDSK는 볼륨의 마스터 파일 테이블(MFT)에서 각 파일 레코드 세그먼트(FRS)를 검사합니다. NTFS 볼륨에 있는 모든 파일과 디렉터리는 MFT의 특정 FRS로 식별되며 CHKDSK가 이 단계 동안 표시하는 완료 비율은 확인한 MFT의 비율입니다. 이 단계 동안 CHKDSK는 각 FRS에 내부 일관성이 있는지 검사하고 두 가지 비트맵을 작성합니다. 하나는 사용 중인 FRS를 나타내며 다른 것은 사용 중인 볼륨 클러스터를 나타냅니다. 이 단계의 끝에서 CHKDSK는 MFT와 전체 볼륨 모두 내에서 사용 중인 공간과 사용할 수 있는 공간에 대해 알게 됩니다. NTFS는 디스크에 저장되는 자체 비트맵으로 이 정보를 추적하므로 CHKDSK에서 결과를 NTFS에 저장된 비트맵과 비교할 수 있습니다. 둘 사이에 차이점이 있다면 이 차이가 CHKDSK 출력에 나타납니다. 예를 들어, 사용 중인 FRS가 손상된 것을 발견하면 해당 FRS와 연결된 디스크 클러스터를 CHKDSK 비트맵에서는 사용할 수 있는 것으로 표시되겠지만 NTFS 비트맵에 따라 "사용 중"인 것으로 표시될 것입니다.

CHKDSK는 두번째 단계에서 인덱스를 확인 중이라는 메시지를 화면에 표시하며 완료율을 0에서 100까지의 비율로 표시합니다. 이 단계 동안 CHKDSK는 볼륨에 있는 각 인덱스를 검사합니다. 인덱스는 실제로는 NTFS 디렉터리이며 이 단계 동안 CHKDSK에서 표시하는 완료 비율은 볼륨에서 확인된 전체 디렉터리 수의 비율입니다. 이 단계 동안 CHKDSK는 볼륨에 있는 각 디렉터리의 내부 일관성을 검사하며 또한 MFT의 FRS가 나타내는 모든 파일과 디렉터리가 적어도 하나의 디렉터리에서 참조되는지 확인합니다. 또한 각 디렉터리에서 참조되는 모든 파일이나 하위 디렉터리가 MFT의 유효한 FRS로 실제 존재하는지 확인하며 디렉터리 순환 참조를 검사합니다. 마지막으로 파일과 관련된 다양한 타임 스탬프와 파일 크기 정보가 해당 파일의 디렉터리 목록에서 모두 최신 정보인지 확인합니다. 이 단계의 끝에서 CHKDSK는 "연결되지 않은" 파일이 없는지 확인하고 확인된 파일의 모든 디렉터리 목록을 확인합니다. 연결되지 않은 파일은 확인된 FRS가 존재하지만 어떤 디렉터리에도 나열되지 않은 파일입니다. 연결되지 않은 파일이 발견되면 디렉터리가 존재하는 경우에는 올바른 디렉터리로 복원할 수 있지만 파일을 유지해야 하는 디렉터리가 더 이상 존재하지 않으면 CHKDSK는 루트 디렉터리에 디렉터리를 만들어 파일을 그곳에 배치합니다. 더 이상 사용하지 않거나 사용하지만 디렉터리에 나열된 파일과 일치하는 않는 FRS를 참조하는 디렉터리 목록이 발견되면 단순히 디렉터리 항목을 제거합니다.

CHKDSK는 세번째 단계에서 보안 설명자를 확인 중이라는 메시지를 화면에 표시하며 완료율을 0에서 100까지의 비율로 표시합니다. 이 단계 동안 CHKDSK는 볼륨에 있는 각 파일과 디렉터리에 연관된 각 보안 설명자를 검사합니다. 보안 설명자는 파일 또는 디렉터리의 소유자와 관련된 정보, 파일 또는 디렉터리에 대한 NTFS 사용 권한, 파일 또는 디렉터리에 대한 감사 정보 등을 포함합니다. 이 경우에 완료 비율은 볼륨에 있는 파일과 디렉터리 수에 대한 비율입니다. CHKDSK는 각 보안 관리자 설명자 구조가 잘 형성되어 있고 내부적으로 일관성이 있는지 확인합니다. 하지만 목록에 있는 사용자나 그룹의 실제 존재 여부나 부여된 권한의 적합성 여부는 확인하지 않습니다.

CHKDSK의 4번째 단계는 /R 스위치를 사용하는 경우에만 호출됩니다. /R 스위치는 볼륨의 사용 가능한 공간에서 불량 섹터를 찾는 데 사용됩니다. /R 스위치를 사용하면 CHKDSK에서 볼륨에 있는 모든 섹터를 읽어 해당 섹터를 사용할 수 있는지 확인합니다. /R 스위치를 사용하지 않은 경우에도 CHKDSK는 정상적인 실행 과정 중에 메타데이터와 연관된 섹터를 읽습니다. /R 스위치를 지정하면 CHKDSK는 초기 단계에서 사용자 데이터와 연관된 섹터를 읽습니다. 읽을 수 없는 섹터를 찾으면 NTFS는 불량 클러스터 목록에 해당 섹터가 포함된 클러스터를 추가하고 클러스터가 사용 중인 경우에는 이전 작업을 위해 새 클러스터를 할당합니다. 내결함성 디스크 드라이버를 사용 중이라면 데이터를 복구하여 새로 할당된 클러스터에 씁니다. 그렇지 않으면 새로운 클러스터를 0xFF 바이트 패턴으로 채웁니다. NTFS에서 정상적인 작동 중에 읽을 수 없는 섹터를 발견하면 같은 방식으로 다시 매핑합니다. 따라서 대개는 /R 스위치가 필수적이지 않지만 불량 섹터가 있다고 의심되는 디스크가 있다면 전체 볼륨을 검색하는 편리한 방법으로 사용할 수 있습니다.

위에서 설명한 것들은 CHKDSK에서 NTFS 볼륨의 무결성을 확인하기 위해 수행하는 실제 작업의 개요입니다. 하지만 각 단계 동안 많은 특수한 검사를 하며 단계 사이에서 언급하지 않은 몇 가지 빠른 검사를 합니다. 대신 이 문서는 CHKDSK를 실행할 필요가 있는 시점과 SP4에서 제공하는 새로운 스위치의 영향과 관련된 이후의 논의에 기반이 되는 CHKDSK 작업의 더 중요한 측면에 대한 개요를 제공합니다.

CHKDSK의 첫 단계와 셋째 단계 동안 완료율 표시기는 다소 느리게 진행됩니다. 이 단계가 진행되는 비율이 균일하지는 않습니다. 사용하지 않는 FRS의 처리 시간이 사용 중인 FRS의 처리 시간보다 짧습니다. 또한 보안 설명자가 클수록 더 많은 처리 시간이 필요합니다. 하지만 표시되는 완료 비율은 해당 단계에 필요한 실제 시간을 비교적 정확하게 나타냅니다.

이러한 사실이 CHKDSK의 둘째 단계에도 적용되는 것은 아닙니다. 디렉터리를 처리하는 데 필요한 시간은 해당 디렉터리에 나열된 파일이나 하위 디렉터리 수와 밀접하게 연관됩니다. 하지만 일부 디렉터리에서 다른 디렉터리를 처리하는 것보다 더 긴 시간이 걸릴 수 있다는 사실과 관계 없이 이 단계 동안 나열되는 완료 비율은 검사한 디렉터리 수의 비율입니다. 예를 들어, 작은 디렉터리가 많고 매우 큰 디렉터리가 하나 있는 볼륨에서 완료 비율은 0에서 10%까지는 빠르게 진행된 다음 10에서 100%까지 빠르게 진행되기 전에 한참 동안 멈춘 것처럼 보일 수 있습니다. 따라서 볼륨에 있는 디렉터리가 포함된 파일 수에 대해 상당히 균일하다는 확신이 없다면 이 단계 동안 표시되는 "완료 비율"을 단계의 실제 남은 시간을 나타낸다고 생각할 수 없습니다.

불행하게도 사용자를 당혹하게 만드는 CHKDSK의 둘째 단계가 대개 가장 긴 실행 시간이 걸리는 단계라는 것입니다.

이제는 볼륨 상태와 관련된 많은 요소가 CHKDSK 실행 시간에서 중요한 역할을 한다는 것을 명확히 알 수 있을 것입니다. 주어진 볼륨에서 CHKDSK를 실행하는 데 필요한 시간을 예측하는 공식은 파일 및 디렉터리의 수, 일반적인 볼륨의 조각난 정도와 함께 특정 마스터 파일 테이블의 조각난 정도, 파일이 긴 파일 이름과 8.3 형식 이름을 모두 가지는 지의 여부, 정정이 필요한 실제 손상의 양 등을 고려해야 합니다. 그리고 시스템 메모리 양, CPU 속도, 디스크(들)의 속도 등과 같은 하드웨어 문제들 역시 고려해야 합니다.

따라서 주어진 하드웨어 플랫폼에서 주어진 볼륨에 CHKDSK를 실행하는 데 걸리는 시간을 예측하기 보다는 특정 상황에 따라 몇 초에서 몇 시간이 걸릴 수 있다고 말하는 것으로 충분합니다. /R 스위치를 사용하지 않는 경우에는 주어진 하드웨어 플랫폼에 대해 가장 많이 고려해야 할 사항은 실제적인 볼륨 크기보다는 디렉터리와 파일 수입니다. /R 스위치를 지정하지 않는다면 하나나 두 개의 큰 데이터베이스 파일이 있는 50GB 볼륨에서 CHKDSK에 몇 초가 걸릴 수 있지만 /R 스위치를 지정하면 CHKDSK에서 볼륨에 있는 모든 섹터를 읽어야 하기 때문에 대형 볼륨에는 상당한 시간이 더 걸릴 것입니다. 반면에 비교적 적은 볼륨에서조차 수십만에서 수백만의 작은 파일이 있다면 /R 스위치 지정 여부에 관계 없이 CHKDSK에 몇 시간이 걸릴 수 있습니다.

주어진 볼륨에서 CHKDSK 실행 시간을 예측하는 가장 좋은 방법은 시스템 사용량이 적은 동안 읽기 전용 모드에서 시험적으로 실행해보는 것입니다. 하지만 이 방법을 사용할 때 아래와 같은 3가지 이유 때문에 주의해야 합니다.
  • 읽기 전용 CHKDSK는 초기 단계에서 오류가 발생하면 3가지 단계를 모두 완료하기 전에 중지되며 읽기 전용 모드일 때 잘못된 오류를 보고하는 경향이 있습니다. 말하자면 실제로 손상이 없는 경우에도 CHKDSK에서 디스크가 손상되었다고 보고할 수 있습니다. 이것은 CHKDSK가 검사를 하는 동안 일부 프로그램 작동으로 인해 NTFS에서 디스크 영역이 동시에 수정된 경우에 발생할 수 있습니다. 볼륨을 올바르게 확인하려면 볼륨이 정적인(Static) 상태여야 하며 이러한 상태가 되도록 보장하는 유일한 방법은 볼륨을 잠그는 것입니다. CHKDSK는 /F 또는 /R("F" 포함) 스위치를 지정한 경우에만 볼륨을 잠급니다. 따라서 읽기 전용 모드에서 모든 단계를 완료하게 하려면 CHKDSK를 한 번 이상 실행해야 합니다.
  • 시스템 로드와 CHKDSK를 온라인으로 실행하는지 또는 부팅 과정에서 실행하는지의 여부가 CHKDSK 실행에 필요한 시간에 영향을 줄 수 있습니다. CHKDSK는 CPU와 디스크를 모두 많이 사용합니다. 병목 상태가 될 수 있는 요소는 특정 하드웨어 시나리오에 따르지만 과도한 디스크 입출력이나 높은 CPU 사용량이 읽기 전용 CHKDSK와 동시에 발생하면 결과적으로 실행 시간이 부풀려지게 됩니다. 또한 Autochk.exe는 Chkdsk.exe와 다른 환경에서 실행됩니다. Autochk.exe를 통해 CHKDSK를 실행하면 CHKDSK에서 CPU와 입출력 리소스를 독점적으로 사용할 수 있지만 CHKDSK에서 가상 메모리의 이점을 활용할 수는 없습니다. 따라서 Autochk.exe는 대개 Chkdsk.exe보다 빨리 실행된다고 예상되지만 상대적으로 RAM 양이 적은 시스템에서는 Autochk.exe가 Chkdsk.exe보다 더 긴 시간이 걸릴 수 있습니다.
  • 오류 수정에는 더 많은 시간이 필요합니다. 읽기 전용 CHKDSK는 심각한 손상이 발견되지 않은 경우에만 완료됩니다. 디스크에 미미한 손상이 있는 경우에는 오류 수정 시간은 읽기 전용 CHKDSK에 필요한 시간보다 약간 길 뿐입니다. 하지만 심각한 헤드 충돌이나 기다 주요한 하드웨어 오류 등으로 인한 주요한 손상이 있다면 CHKDSK 실행에 필요한 시간은 손상된 파일 수에 비례하여 증가될 수 있습니다. 극단적인 경우에는 CHKDSK에 필요한 시간보다 두 배정도 더 걸릴 수 있습니다.

/C 및 /I 스위치 소개

/C 스위치를 사용하면 CHKDSK에서 디렉터리 순환 구조를 검사하지 않습니다. 순환 구조는 하위 디렉터리 자체에 상위 디렉터리가 포함되는 매우 드문 손상 형태입니다. /C 스위치를 사용하면 CHKDSK 속도가 1에서 2% 정도 빨라질 수 있습니다. 하지만 /C 스위치를 사용하면 NTFS 볼륨에서 디렉터리 "순환 구조"가 남을 수 있습니다. 이와 같은 순환 구조는 디렉터리 트리의 나머지 부분을 액세스할 수 없게 만들며 백업 응용 프로그램을 포함한 모든 Win32 응용 프로그램에서 볼 수 없다는 점에서 일부 파일이 연결되지 않은 상태가 될 수 있습니다.

/I 스위치를 사용하면 CHKDSK에서 디렉터리 항목을 그와 일치하는 FRS와 비교하는 검사를 건너뜁니다. 따라서 디렉터리 항목은 여전히 자체 일관성이 있는지 확인해야 합니다. 이 스위치가 적용된 CHKDSK를 실행한 후에도 해당하는 FRS에 저장된 데이터가 디렉터리 항목과 일치하지 않을 수 있습니다. /I 스위치를 사용하면 대개 CHKDSK 속도가 50에서 70퍼센트 정도 빨라질 수 있습니다. 이 스위치와 함께 CHKDSK를 사용할 경우 빨라지는 정도는 디렉터리에 대한 파일 비율, CPU 속도 대한 상대적인 디스크 입출력 속도 등과 같은 요소에 영향을 받기 때문에 정확히 예측하는 것이 어렵습니다. /I 스위치를 사용하면 잘못된 FRS를 참조하는 디렉터리 항목이 남거나 디렉터리 항목에서 참조되지 않는 FRS가 남을 수 있습니다. 후자의 경우는 다른 형태의 연결되지 않은 상태입니다. FRS가 나타내는 파일은 백업 응용 프로그램을 포함한 모든 Win32 응용 프로그램에서 볼 수 없기 때문에 항상 현재 상태를 유지합니다. 전자의 경우에는 파일이 있는 것으로 나타나지만 응용 프로그램에서 액세스하려고 하면 오류가 발생합니다.

디스크 손상이 발견된 경우의 기본적인 3가지 선택

  • 아무 처리도 하지 않습니다. 하루 24시간 내내 온라인이어야 하는 업무용 서버의 경우에 필요한 선택입니다. 이 옵션의 단점은 손상을 발견한 즉시 복구하지 않기 때문에 비교적 사소한 손상이 "눈덩이처럼 쌓여서" 심각한 손상이 될 수 있다는 것입니다. 손상된 볼륨에 있는 모든 데이터는 CHKDSK를 실행하기 전에는 "위험한" 상태라고 생각해야 하기 때문에 이 옵션은 시스템을 온라인으로 유지하는 것이 손상된 볼륨에 저장된 데이터의 무결성보다 중요한 경우에만 사용을 고려해야 합니다.
  • 완전한 CHKDSK를 실행합니다. 이 옵션은 자동화된 프로세스를 통해 복구할 수 있는 모든 사용자 데이터를 복원하여 모든 파일 시스템 데이터를 복구합니다. 이 옵션의 단점은 완전한 CHKDSK 때문에 적당하지 않은 시간에 업무용 서버를 몇 시간 동안 중지시켜야 할 수도 있다는 것입니다.
  • /C 및 /I 스위치의 일부 조합을 사용하여 간략한 CHKDSK를 실행합니다. 이 옵션은 완전한 CHKDSK에 필요한 시간보다는 적은 시간으로 "눈덩이처럼 쌓여서" 큰 문제가 될 수 있는 종류의 손상을 복구합니다. 하지만 모든 손상을 복구하지는 않습니다. 하지만 복구할 수 있는 모든 데이터가 복구되도록 나중에 완전한 CHKDSK가 필요합니다.
손상이 발견된 즉시 완전한 CHKDSK를 실행한 경우에도 NTFS는 디스크 손상에 따르는 사용자 데이터 무결성을 보장하지 않는다는 사실을 명심해야 합니다. 따라서 CHKDSK에서 복구할 수 없는 파일이 있을 수 있습니다. 또한 CHKDSK를 실행한 후에도 복구된 파일이 내부적으로 손상될 수 있습니다. 따라서 주기적인 백업이나 다른 강력한 복구 방법을 사용하여 업무용 데이터를 보호하는 것이 여전히 중요합니다.

본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT 4.0 서비스 팩 4
  • Microsoft Windows NT Server 4.0, Terminal Server Edition
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
키워드: 
kbhowto KB187941
공유
추가 지원 옵션
Microsoft Community 지원 포럼
직접 문의하기
Microsoft Certified Partner 찾기
Microsoft Store
소기업이 아닙니까?
다음에서 팔로우하십시오.