sfc /scannow를 돌렸더니 “Windows 리소스 보호에서 손상된 파일을 발견했지만 일부를 복구할 수 없습니다”라는 문구가 떴을 때, 당황하지 않고 DISM부터 순서대로 복구했던 과정을 정리했습니다. 로그 확인법부터 재부팅 타이밍까지 확인하세요.
복구할 수 없다는 그 문구
컴퓨터가 자꾸 느려지고 특정 프로그램이 알 수 없는 이유로 튕기길래, 명령 프롬프트를 관리자 권한으로 열고 sfc /scannow를 돌려본 적이 있습니다. 한참을 기다렸더니 “Windows 리소스 보호에서 손상된 파일을 발견했지만 일부 파일을 복구할 수 없습니다”라는 메시지가 뜨더라고요. 처음 보는 사람은 여기서 멘붕이 오기 쉽습니다. 결론부터 말씀드리면, 이 경우 대부분은 DISM 명령으로 먼저 시스템 이미지를 복구한 다음 sfc를 다시 돌리면 해결됩니다.
로그부터 열어봤어요
무작정 재설치부터 고민하지 말고, 어떤 파일이 문제인지부터 확인하는 게 순서라는 걸 그때 알았습니다. sfc를 돌리면 결과가 CBS.log라는 파일에 기록되는데, 이게 Windows 구성 요소 서비스가 작업한 내역을 담은 로그 파일입니다. 아래 명령으로 손상 관련 부분만 뽑아서 바탕화면에 따로 저장해두면 확인하기 편합니다.
- findstr /c:”[SR]” %windir%\Logs\CBS\CBS.log > %userprofile%\Desktop\sfcdetails.txt
- 메모장으로 sfcdetails.txt를 열면 “Cannot repair member file” 같은 문구 옆에 손상된 파일 경로가 나옵니다
이걸 꼭 봐야 하느냐고 묻는다면, 안 봐도 복구는 가능합니다. 다만 같은 문제가 반복될 때 어떤 파일이 계속 걸리는지 알아두면 이후 원인(예: 특정 드라이버 충돌)을 추적하는 데 도움이 되더라고요.
DISM이 먼저입니다
여기서 많은 분들이 sfc를 재부팅 후 또 돌리는데, 손상 정도가 심하면 같은 결과만 반복됩니다. sfc가 참고하는 원본 파일 저장소 자체가 깨져 있으면, 아무리 sfc를 돌려도 비교할 정상 파일이 없는 셈이거든요. 그래서 먼저 DISM으로 이 저장소를 복구해야 합니다. DISM은 Deployment Image Servicing and Management의 줄임말로, 쉽게 말해 윈도우 이미지 자체를 점검하고 손질하는 도구입니다.
- DISM /Online /Cleanup-Image /CheckHealth — 손상 여부만 빠르게 확인
- DISM /Online /Cleanup-Image /ScanHealth — 좀 더 꼼꼼하게 스캔, 시간이 걸립니다
- DISM /Online /Cleanup-Image /RestoreHealth — 실제 복구 실행
RestoreHealth는 보통 인터넷에 연결된 상태에서 Windows Update 서버를 통해 필요한 파일을 받아옵니다. 회사 PC처럼 인터넷이 막혀 있는 환경이라면 이 단계에서 멈추거나 실패하는 경우가 많더라고요. 그럴 땐 설치 미디어(ISO)의 install.wim 경로를 /Source 옵션으로 지정해줘야 합니다.
| 상황 | 쓸 명령 | 비고 |
|---|---|---|
| 인터넷 연결 가능 | RestoreHealth (옵션 없이) | Windows Update로 자동 수신 |
| 인터넷 차단/느림 | RestoreHealth /Source:wim경로 | ISO 마운트 후 경로 지정 필요 |
| 그냥 상태만 확인 | CheckHealth | 복구 없이 손상 여부만 확인 |
저는 집에서는 그냥 옵션 없이 돌렸는데 20분 가까이 걸렸습니다. 회사 노트북에서는 사내망이 Windows Update를 막아놔서 결국 ISO를 내려받아 /Source 옵션을 쓸 수밖에 없었어요. 환경에 따라 소요 시간과 방법이 꽤 달라진다는 걸 이때 체감했습니다.
다시 SFC 돌릴 차례
DISM이 “작업이 완료되었습니다”로 끝나면, 그제야 sfc /scannow를 다시 실행합니다. 순서를 바꿔서 sfc부터 하고 DISM을 나중에 하면 처음 겪었던 “복구할 수 없습니다” 메시지를 또 보게 될 가능성이 큽니다. 저도 처음엔 이 순서를 몰라서 sfc만 서너 번 반복하다가 시간을 꽤 날렸거든요. DISM 먼저, sfc는 그 다음이라는 순서만 기억하면 됩니다.
이것도 안 됐던 경우
순서대로 해도 “일부 파일을 여전히 복구할 수 없습니다”가 반복되는 경우를 몇 번 봤습니다. 이럴 때는 상황별로 접근이 달라집니다.
- 디스크 자체에 배드섹터가 있는 경우 — chkdsk /f /r을 먼저 돌려서 디스크 오류부터 잡아야 합니다
- 특정 드라이버나 보안 프로그램이 파일을 점유해서 교체가 안 되는 경우 — 안전 모드에서 다시 시도하면 해결되는 때가 많습니다
- 시스템 파일 손상이 아주 광범위한 경우 — 복구보다 ‘이 PC 초기화(내 파일 유지)’ 기능이 더 빠를 수 있습니다
개인적으로는 세 번째까지 가기 전에 보통 해결됐는데, 한 번은 오래된 외장 하드가 자동 마운트되면서 디스크 오류가 겹쳐 있던 경우가 있었습니다. 그땐 chkdsk로 디스크부터 정리하고 나서야 DISM, sfc가 정상적으로 끝났어요.
재부팅 타이밍 주의하세요
DISM이나 sfc가 진행 중일 때 화면이 멈춘 것처럼 보여도 강제 종료하면 안 됩니다. 특히 ScanHealth나 RestoreHealth는 퍼센트가 한참 그대로 있다가 갑자기 훅 올라가는 구간이 있는데, 이때 전원을 끄면 시스템 파일이 더 꼬여서 복구가 아예 불가능해지는 경우를 본 적이 있습니다. 최소 30분 이상은 그냥 두고 기다리는 게 낫습니다. 또 하나, 작업이 끝나면 바로 재부팅해주는 게 좋습니다. 바뀐 파일이 완전히 적용되지 않은 상태로 계속 쓰다가 다시 검사하면 변경 사항이 제대로 반영되지 않을 때가 있더라고요.
요즘은 이 순서로 합니다
지금은 컴퓨터가 뭔가 이상하다 싶으면 바로 sfc부터 돌리지 않고, DISM CheckHealth로 가볍게 상태부터 확인합니다. 손상이 있으면 RestoreHealth, 그다음 sfc 순서로 진행하고요. 예전엔 에러 메시지만 보고 포맷을 고민했는데, 순서만 알면 대부분 30분~1시간 안에 끝나는 일이었다는 걸 알고 나서는 훨씬 마음이 편해졌습니다. 혹시 회사 PC처럼 인터넷이 제한된 환경이라면 ISO 파일을 미리 하나 받아두시는 것도 추천합니다. 막상 필요할 때 다운로드부터 막혀서 당황하는 걸 몇 번 봤거든요.