CHKDSK
CHKDSK
CHKDSK 명령은 디스크의 상태를 점검하고, 파일 시스템의 오류 여부 및 디스크 사용량을 보고한다. FAT(File Allocation Table)과 디렉터리를 기반으로 한 MS-DOS 파일 시스템의 논리적 오류를 확인하며, 필요한 경우 /F 스위치를 통해 오류를 수정할 수 있다.
ScanDisk(SCANDISK)가 도입된 이후에는 CHKDSK /F보다 ScanDisk 사용이 권장된다.
개요
CHKDSK는 다음 기능을 수행한다:
- FAT 및 디렉터리 구조 점검
- 디스크 사용량 요약 표시
- 논리적 오류 감지 및 보고
- /F 스위치 사용 시 오류 수정 가능
단, CHKDSK는 파일 내용(데이터)의 정확성은 검사하지 않는다.
사용법
CHKDSK [drive:][[path]filename] [/F] [/V]기본적인 디스크 상태 확인:
CHKDSK매개변수
drive:
검사할 드라이브 지정.
예:
CHKDSK C:[path]filename
특정 파일 또는 파일 집합의 단편화(fragmentation) 여부 확인. 와일드카드(*, ?) 가능.
스위치
/F
디스크 오류를 수정한다. 단, 다른 프로그램이 파일을 열고 있는 상태에서 실행하면 데이터 손상 위험이 있으므로 주의해야 한다.
ScanDisk 사용이 가능한 환경이라면 ScanDisk를 사용하는 것이 권장된다.
/V
검사 과정에서 모든 디렉터리에 있는 파일 이름을 표시한다.
비고
CHKDSK 출력 형식
다음은 CHKDSK 상태 보고서 예시이다:
Volume Serial Number is B1AF-AFBF
72,214,528 bytes total disk space
73,728 bytes in 3 hidden files
30,720 bytes in 12 directories
11,493,376 bytes in 386 user files
61,440 bytes in bad sectors
6,055,264 bytes available on disk
2,048 bytes in each allocation unit
35,261 total allocation units on disk
29,568 available allocation units on disk
655,360 total bytes memory
493,456 bytes free
디스크 오류 수정
CHKDSK /F를 사용하면 다음과 같이 손실된 클러스터(lost chains)를 파일로 저장할지 묻는다:
10 lost allocation units found in 3 chains. Convert lost chains to files?
Y를 누르면 FILEnnnn.CHK 형식으로 루트 디렉터리에 저장되며, N을 누르면 내용을 저장하지 않고 오류만 수정한다.
열린 파일과 함께 CHKDSK 실행 금지
CHKDSK는 파일이 변경되지 않는 정적 상태에서 실행해야 한다. 다음 환경에서는 절대 CHKDSK /F를 실행하면 안 된다:
- 파일이 열려 있는 상태
- Windows 구동 중
- DOS Task Swapper 사용 중
- 다른 프로그램에서 CHKDSK를 호출한 경우
열려 있는 파일이 있는 상태에서 CHKDSK /F를 실행하면 FAT과 디렉터리가 서로 다른 정보로 인해 데이터 손상 또는 파일 소실이 발생할 수 있다.
SUBST, 네트워크 드라이브
- SUBST로 생성한 가상 드라이브에서는 CHKDSK가 동작하지 않는다.
- 네트워크 드라이브는 검사할 수 없다.
물리적 오류 검사 불가
CHKDSK는 논리적 오류만 검사하며, 디스크의 물리적 배드섹터는 ScanDisk에서 처리한다.
크로스 링크 파일(Cross-Linked Files)
두 파일이 동일한 디스크 공간을 공유하면 다음과 같은 메시지가 표시된다:
<File> is cross linked on allocation unit <number>
CHKDSK는 이를 수정하지 않는다. 해결 방법:
- ScanDisk 실행
또는
- 해당 파일을 복사 후 원본 삭제
ERRORLEVEL 값
CHKDSK의 반환값:
- 0 — 오류 없음
- 255 — 오류 1개 이상 존재
출력 저장하기
CHKDSK 결과를 파일로 저장:
CHKDSK A: > STATUS주의: 출력 리다이렉션 시 /F는 사용하지 말 것.
예제
단순 디스크 검사
CHKDSK C:출력 저장
CHKDSK A: > STATUS이후 STATUS 파일을 참고하여, 필요하면 CHKDSK /F로 오류를 수정한다.