chkdsk 사용법 — /f와 /r 차이와 종료 코드
chkdsk는 디스크의 파일 시스템과 메타데이터를 검사하고 오류를 고치는 Windows 명령줄 도구입니다. Microsoft 문서는 chkdsk를 실행하려면 최소한 Administrators 그룹 권한이 필요하다고 못박고 있습니다. 시작 메뉴에서 명령 프롬프트를 오른쪽 클릭한 뒤 관리자 권한으로 실행을 골라야 합니다. 파일 손상이 의심될 때 쓰는 SFC와 DISM이 시스템 파일을 다룬다면, chkdsk는 디스크 자체의 구조와 불량 섹터를 다룹니다. 어느 쪽이 필요한지는 증상이 파일 손상인지 디스크 오류인지에 따라 갈립니다.
가장 많이 쓰는 두 가지 형태
실무에서 쓰이는 형태는 사실상 두 가지입니다. 하나는 오류를 고치는 chkdsk d: /f이고, 다른 하나는 불량 섹터까지 찾는 chkdsk d: /r입니다. 원문은 /f를 “디스크의 오류를 고친다”로, /r를 “불량 섹터를 찾아내고 읽을 수 있는 정보를 복구한다”로 설명합니다.
둘 중 무엇을 쓸지는 간단합니다. 원문이 /r는 /f의 기능을 포함하며 여기에 물리적 디스크 오류 분석이 더해진다고 밝히고 있기 때문입니다. 즉 /r를 쓰면 /f를 따로 줄 필요가 없습니다. 다만 물리 검사가 붙는 만큼 시간이 훨씬 오래 걸립니다. 디스크에서 소리가 나거나 읽기 실패가 반복되는 상황이 아니라면 /f로 충분합니다.
“볼륨이 사용 중”이라고 나오는 이유
오류를 고치는 옵션은 디스크가 잠겨 있어야 동작합니다. 원문은 chkdsk가 디스크 오류를 고치려면 드라이브에 열려 있는 파일이 없어야 한다고 설명합니다. 파일이 열려 있으면 “Chkdsk cannot run because the volume is in use by another process”라는 메시지가 나옵니다. 이어서 다음 재시작 때 검사할지 묻는 안내가 뜹니다.
여기서 Y를 누르면 다음 부팅 때 chkdsk가 자동으로 실행되어 오류를 고칩니다. 검사 대상이 부팅 파티션이면 검사를 마친 뒤 컴퓨터가 자동으로 다시 시작됩니다. 원문은 같은 예약을 chkntfs /c 명령으로도 할 수 있다고 덧붙입니다. C 드라이브를 검사할 때 거의 항상 이 경로를 거치게 됩니다.
/x는 필요하면 볼륨을 강제로 분리한 뒤 검사합니다. 원문은 이 경우 드라이브에 대해 열려 있던 모든 핸들이 무효가 된다고 명시합니다. 다른 프로그램이 그 드라이브를 쓰고 있다면 그 작업이 끊긴다는 뜻이므로, 작업 중인 파일을 저장하고 닫은 뒤에 써야 합니다.
검사 시간을 줄이는 옵션
NTFS 볼륨에서만 쓰는 옵션 두 가지가 시간을 줄여 줍니다. /i는 인덱스 항목을 덜 엄격하게 검사하고, /c는 폴더 구조 안의 순환을 검사하지 않습니다. 원문은 두 옵션 모두 chkdsk 실행에 필요한 시간을 줄인다고 설명하면서, 특정 볼륨 검사를 건너뛰는 방식이라는 점을 함께 밝힙니다.
검사를 건너뛰는 만큼 놓치는 것이 생깁니다. 급하게 확인만 하려는 상황이 아니라면 기본 검사를 그대로 두는 편이 안전합니다. 용량이 큰 디스크에서 시간이 너무 오래 걸릴 때 쓰는 선택지로 생각하면 됩니다.
재시작 없이 검사하는 /scan
NTFS 볼륨에서는 재시작하지 않고 검사할 수 있습니다. 원문은 /scan을 “볼륨에서 온라인 검사를 실행한다”로 설명합니다. 사용 중인 드라이브를 잠그지 않고 검사하므로 작업을 멈추지 않아도 됩니다.
온라인 검사에서 찾은 결함은 /spotfix로 고칩니다. 원문은 이를 “볼륨에서 스폿 수정을 실행한다”로 설명합니다. /forceofflinefix를 /scan과 함께 쓰면 온라인 복구를 모두 건너뛰고 발견된 결함을 오프라인 복구 대기열에 넣습니다. 검사 속도를 높이는 /perf도 /scan과 함께만 쓰며, 원문은 시스템 자원을 더 써서 다른 작업의 성능에 부정적 영향을 줄 수 있다고 밝힙니다.
/f 없이 돌리면 없는 오류가 보일 수 있다
원문에 중요한 단서가 하나 있습니다. 활성 파티션에서 /f 없이 chkdsk를 실행하면 드라이브를 잠글 수 없기 때문에 잘못된 오류를 보고할 수 있다는 설명입니다. 검사만 해 보려고 옵션 없이 돌렸는데 오류가 잔뜩 나왔다면 이 경우를 먼저 의심해야 합니다.
원문은 또 chkdsk가 논리적 디스크 오류를 고치는 것은 /f를 지정했을 때뿐이라고 못박습니다. 오류를 실제로 고치려면 반드시 /f나 이를 포함하는 /r·/x를 써야 합니다. FAT 파일 시스템에서는 복구가 파일 할당 테이블을 바꾸고 때로 데이터 손실을 일으키기 때문에 확인 메시지가 나올 수 있다는 안내도 있습니다.
중간에 멈춰도 되나
원문은 chkdsk를 중단하는 것을 권장하지 않는다고 밝힙니다. 다만 취소하거나 중단하더라도 chkdsk를 실행하기 전보다 볼륨이 더 손상되지는 않는다고 덧붙입니다. 다시 실행하면 남은 손상을 검사하고 고치게 된다는 설명도 함께 있습니다.
그래도 검사 도중 전원이 끊기는 상황은 피해야 합니다. 노트북이라면 전원을 연결하고 시작하는 편이 낫습니다. 원문은 chkdsk가 로컬 디스크에만 쓸 수 있고, 네트워크로 연결된 드라이브 문자에는 쓸 수 없다는 제한도 명시하고 있습니다.
결과는 종료 코드로 읽는다
chkdsk는 검사를 마치면 종료 코드를 남깁니다. 0은 오류가 발견되지 않은 상태이고, 1은 오류를 찾아 고친 상태입니다. 2는 디스크 정리를 수행했거나 /f를 지정하지 않아 정리를 수행하지 않은 경우입니다. 3은 디스크를 검사할 수 없었거나, 오류를 고칠 수 없었거나, /f를 지정하지 않아 고치지 않은 경우입니다.
2와 3이 나왔다면 /f 없이 검사만 돌렸을 가능성을 먼저 보십시오. 화면에 나온 결과를 놓쳤다면 로그로 확인할 수 있습니다. 원문은 이벤트 뷰어와 PowerShell 두 가지 방법을 안내하며, 이벤트 뷰어는 실행 창에 eventvwr.msc를 입력해 열 수 있습니다.
먼저 확인할 것
디스크 오류가 의심되면 chkdsk c: /f로 시작하십시오. 재시작 예약을 묻거든 수락한 뒤 컴퓨터를 다시 시작하면 됩니다. 읽기 실패가 반복되거나 부팅 관련 정지 오류가 함께 난다면 /r로 물리 검사까지 돌립니다. 검사 뒤에도 같은 증상이 이어지면 디스크 자체의 수명 문제일 수 있으므로 중요한 파일부터 백업하십시오.