이 글을 3줄로 요약하면
· 0x800f0922의 내부 이름은 CBS_E_INSTALLERS_FAILED입니다. 다운로드가 아니라 설치 단계에서 실패했다는 뜻입니다.
· 실패 지점은 네 갈래로 나뉘고, 어디서 막혔는지는 CBS.log에 그대로 남습니다.
· 판별표로 갈래를 먼저 정하고, 그 항목만 처리하면 됩니다.
목차
3. 원인 A · 시스템 예약·EFI 파티션 공간 부족
4. 원인 B · VPN·프록시·보안 도구의 네트워크 차단
0x800f0922는 정확히 무슨 뜻인가
"네트워크가 느려서"가 아닙니다. 파일은 이미 다 받아온 상태입니다.
이 코드의 내부 이름은 CBS_E_INSTALLERS_FAILED입니다. CBS는 Component Based Servicing, 즉 윈도우가 구성 요소 단위로 자기 자신을 갈아 끼우는 장치입니다. 이 이름이 뜻하는 건 패키지를 실제로 적용하는 설치기가 실패했다는 것입니다.
그래서 이 오류는 다운로드가 100%까지 정상으로 끝난 뒤에 나옵니다. 재부팅이 몇 번 돌다가 "업데이트 실패, 변경 내용을 되돌리는 중"으로 빠지는 흐름이 전형적입니다. 인터넷을 바꾸거나 재시도를 반복해도 같은 자리에서 멈추는 이유가 여기 있습니다.
중요한 건 이 이름이 어느 설치기가 실패했는지는 말해 주지 않는다는 점입니다. 파티션에 임시 파일을 못 써서일 수도, 참조하는 구성 요소가 깨져서일 수도 있습니다. 그 구분은 7번 항목의 로그에서 하게 됩니다.
먼저 설정 → Windows 업데이트 → "업데이트 기록"에서 실패한 항목과 KB 번호를 적어 두세요. 같은 KB가 반복 실패하는지, 매번 다른 KB에서 실패하는지가 판별표의 첫 번째 갈림길입니다.
증상으로 원인 좁히기
어떤 업데이트에서, 어느 시점에 멈추는지가 갈래를 정합니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 기능 업데이트(새 빌드)에서만 실패, 월간 보안 업데이트는 정상 | 부팅 관련 파티션의 여유 공간 부족 | 원인 A → 파티션 확인 |
| 회사 PC이거나 VPN을 항상 켜 두고 있음 | 업데이트 서버 경로가 막힘 | 원인 B → VPN·프록시 해제 |
| 여러 KB가 전부 같은 코드로 실패 | 구성 요소 저장소 손상 | 원인 C → DISM 복구 |
| .NET 관련 KB에서만 반복 실패 | .NET Framework 구성 요소 손상 | 원인 D → 기능 재설치 |
| 특정 KB 하나만 계속 실패하고 나머지는 설치됨 | 그 패키지가 참조하는 개별 구성 요소 문제 | 7번 항목 → CBS.log 확인 |
| 되돌리기 도중 다시 재부팅이 반복됨 | 스테이징된 패키지가 남아 충돌 | 7번 항목 → 스테이징 패키지 확인 |
원인 A시스템 예약·EFI 파티션 공간 부족
기능 업데이트에서만 막힌다면 여기부터 봅니다.
기능 업데이트는 부팅 관련 파일을 새로 쓰기 위해 시스템 예약 파티션이나 EFI 시스템 파티션을 사용합니다. 이 파티션은 수백 MB 규모로 작게 잡혀 있어서, 오래 쓴 PC에서는 여유가 거의 남지 않는 경우가 있습니다.
1디스크 관리에서 파티션 여유를 확인한다
Win + R로 실행합니다. 아래 그래픽 영역에서 "시스템 예약" 또는 "EFI 시스템 파티션"으로 표시된 칸의 용량과 여유를 봅니다. 탐색기에는 안 보이지만 이 화면에서는 표시됩니다.
2C 드라이브 쪽 공간을 먼저 비운다
디스크 정리를 실행하고 "시스템 파일 정리"를 눌러, "이전 Windows 설치"와 "Windows 업데이트 정리" 항목을 체크해 지웁니다. 기능 업데이트는 C 드라이브에도 넉넉한 임시 공간을 요구합니다.
3외장 USB를 임시 공간으로 붙인다
기능 업데이트 마법사는 공간이 모자랄 때 외부 드라이브를 임시 저장소로 쓸 수 있는지 묻습니다. 8GB 이상 USB를 미리 꽂아 두면 그 선택지를 쓸 수 있습니다.
시스템 예약·EFI 파티션은 직접 손대지 않습니다
이 파티션을 삭제하거나 크기를 조정하면 부팅 자체가 되지 않을 수 있습니다. 여유 공간 확보는 C 드라이브에서만 하고, 파티션 크기 조정이 정말 필요하다면 복구 미디어를 먼저 준비한 뒤에 판단하세요.
이 방법이 안 통하는 경우
파티션과 C 드라이브 모두 여유가 충분한데도 같은 코드가 나온다면 공간 문제가 아닙니다. 월간 보안 업데이트에서도 실패한다면 원인 C로 바로 가세요.
원인 BVPN·프록시·보안 도구의 네트워크 차단
확인이 가장 빠르므로, 해당되면 먼저 걸러내는 편이 낫습니다.
설치 단계에서도 윈도우는 필요한 구성 요소를 추가로 받아옵니다. VPN·프록시·보안 도구가 그 경로를 막으면 다운로드는 끝났는데 설치에서 멈추는 그림이 나옵니다.
1VPN을 완전히 끊는다
연결만 해제하는 게 아니라 VPN 클라이언트를 종료합니다. 가상 네트워크 어댑터가 살아 있으면 경로가 그대로 남는 경우가 있습니다.
2수동 프록시 설정을 끈다
Win + I → "네트워크 및 인터넷" → "프록시"에서 "수동 프록시 설정"을 끄고 "자동으로 설정 검색"만 남깁니다. 예전에 쓰던 프록시 주소가 남아 있는 경우가 의외로 많습니다.
3보안 도구는 잠깐만 끄고 바로 되돌린다
타사 백신의 네트워크 보호 기능을 업데이트가 끝날 때까지만 끄고, 완료 직후 다시 켭니다. 끈 상태로 방치하지 마세요.
이 방법이 안 통하는 경우
VPN·프록시를 전부 끄고 유선으로 연결해도 같은 코드라면 네트워크 경로는 정상입니다. 원인 C의 구성 요소 저장소 복구로 넘어가세요.
원인 C업데이트 구성 요소 저장소 손상
여러 KB가 전부 같은 코드로 실패한다면 여기가 본진입니다.
CBS가 참조하는 구성 요소 저장소나 다운로드 캐시가 깨지면, 어떤 패키지를 받아도 적용 단계에서 같은 실패가 반복됩니다. 캐시를 새로 만들고 저장소를 복구하는 두 단계로 처리합니다.
1업데이트 캐시 폴더를 새로 만든다
시작 버튼 우클릭 → "터미널(관리자)"에서 한 줄씩 입력합니다. 폴더를 지우는 게 아니라 이름만 바꾸는 것이라, 문제가 생기면 되돌릴 수 있습니다.
2구성 요소 저장소를 복구한다
DISM은 인터넷에서 정상 파일을 받아 저장소를 고치고, SFC는 그 저장소를 기준으로 시스템 파일을 맞춥니다. 순서를 바꾸면 SFC가 깨진 원본을 참조하게 되니 이대로 진행합니다.
3재부팅 후 업데이트를 다시 시도한다
두 명령이 모두 끝난 뒤 재부팅하고, 설정 → Windows 업데이트에서 다시 확인을 누릅니다. 새로 만들어진 캐시로 받으므로 처음부터 다시 내려받습니다.
DISM이 20%나 60%에서 멈춘 것처럼 보이는 건 정상입니다
진행률이 한동안 움직이지 않는 구간이 있습니다. 인터넷 연결만 유지된다면 20~30분은 기다려 보세요. 중간에 창을 닫으면 저장소가 더 어중간한 상태로 남을 수 있습니다.
이 방법이 안 통하는 경우
DISM이 "원본 파일을 찾을 수 없습니다"로 끝나거나, 복구가 끝났는데도 같은 KB에서 실패한다면 원인 D와 7번 항목을 차례로 확인하세요.
원인 D.NET Framework 구성 요소 손상
.NET 관련 KB에서만 반복 실패한다면 이 갈래입니다.
.NET Framework는 윈도우 기능(Feature) 형태로 들어 있습니다. 그 구성 요소가 손상되면 패키지 자체는 정상적으로 내려와도, 적용 단계에서 손상된 부분을 참조하다 실패합니다.
1Windows 기능 창을 연다
Win + R로 실행하면 "Windows 기능 켜기/끄기" 창이 바로 열립니다. 목록에서 ".NET Framework 3.5"와 ".NET Framework 4.8 고급 서비스"를 확인합니다.
2체크를 껐다가 다시 켠다
두 항목의 체크를 해제하고 확인 → 재부팅합니다. 다시 같은 창을 열어 체크를 넣고, "Windows 업데이트를 통해 수정 프로그램 다운로드"를 선택해 필요한 파일을 새로 받게 합니다.
3재부팅 후 업데이트를 다시 시도한다
기능 재설치가 끝나면 한 번 더 재부팅한 뒤 업데이트를 실행합니다. 원인 C의 저장소 복구를 먼저 끝낸 상태여야 이 단계가 제대로 동작합니다.
이 방법이 안 통하는 경우
기능 재설치 자체가 오류로 끝나거나, 재설치 후에도 같은 KB만 실패한다면 개별 패키지 문제입니다. 7번 항목으로 가서 로그에서 실패 지점을 직접 확인하세요.
CBS.log로 실제 실패 지점을 찾는 법
추측으로 방법을 늘리지 않고, 설치기가 남긴 기록을 읽습니다.
CBS는 자기가 한 일을 C:\Windows\Logs\CBS\CBS.log에 기록합니다. 마이크로소프트 지원 문서도 0x800f0922를 다룰 때 이 로그에서 실제 실패 원인을 찾는 방식을 씁니다.
1로그에서 실패 줄만 뽑아낸다
관리자 터미널에서 실행하면 바탕화면에 요약 파일이 만들어집니다. 원본 로그는 수만 줄이라 그대로 열면 읽기 어렵습니다.
2실패 직전 줄의 이름을 읽는다
실패 줄 바로 위에는 어떤 작업을 하다 막혔는지가 적혀 있습니다. 예를 들어 작업 스케줄러 등록에서 0x80070002가 함께 나오는 경우가 마이크로소프트 문서에 사례로 정리돼 있습니다. 이렇게 짝이 되는 코드가 나오면 그 코드로 검색해야 원인에 닿습니다.
3스테이징 상태로 남은 패키지가 있는지 본다
되돌리기가 반복되는 상황에서는 적용되지 못한 패키지가 스테이징 상태로 남아 다음 설치를 막기도 합니다. 목록에 항목이 나오면 그 패키지 이름을 기록해 두고, 같은 이름으로 마이크로소프트 문서를 확인한 뒤 처리 방향을 정하세요.
패키지 제거·레지스트리 삭제는 마지막 수단입니다
검색하면 스테이징 패키지를 제거하거나 스케줄러 레지스트리 키를 지우는 절차가 나오지만, 대상 이름을 잘못 고르면 시스템이 더 불안정해집니다. 복원 지점을 먼저 만들고, 로그에서 그 이름을 직접 확인한 경우에만 진행하세요.
여기까지 해도 같은 코드가 반복된다면, 자동 업데이트 경로 대신 공식 설치 미디어(ISO)로 현재 상태를 유지한 채 업그레이드하는 방법이 남아 있습니다. 파일과 앱을 유지하는 옵션을 고르면 실패하던 구간을 다른 경로로 지나갑니다. 다만 시간이 오래 걸리므로 앞의 네 갈래를 모두 확인한 뒤에 선택하세요.
자주 묻는 질문
판별 도중 자주 막히는 지점들입니다.
Q.업데이트가 실패하면 파일이 날아가나요?
A.실패 시 시스템이 이전 상태로 되돌리기 때문에 일반적으로 문서나 앱은 그대로 남습니다. 다만 되돌리기 도중 전원이 끊기면 상황이 달라지므로, 중요한 파일은 미리 백업해 두는 편이 안전합니다.
Q.DISM이 오래 걸리는데 멈춘 건가요?
A.특정 구간에서 진행률이 오래 머무는 것은 정상 동작입니다. 인터넷 연결을 유지한 채 20~30분은 기다려 보세요.
Q.노트북인데 시스템 예약 파티션을 늘릴 수 있나요?
A.파티션 크기 조정은 부팅 실패로 이어질 위험이 있어 권하지 않습니다. C 드라이브 여유 공간 확보와 외장 USB를 임시 공간으로 쓰는 방법을 먼저 시도하세요.
Q.회사 PC라 VPN을 계속 켜 둬야 합니다.
A.업데이트를 실행하는 동안만 끄고, 끝난 뒤 다시 켜면 됩니다. 다만 회사 PC는 정책상 업데이트가 관리 서버를 거치도록 설정된 경우가 있으니, 반복 실패한다면 담당 부서에 KB 번호와 오류 코드를 함께 알리는 편이 빠릅니다.
Q.SoftwareDistribution.old 폴더는 지워도 되나요?
A.업데이트가 정상적으로 끝난 것을 확인한 뒤에 지우면 됩니다. 새 폴더가 잘 만들어져 동작하고 있다면 이 폴더는 더 필요하지 않습니다.
함께 보면 좋은 글
같은 CBS 계열 업데이트 오류를 다룬 글입니다.
윈도우 업데이트 0x80073712 오류 — 구성 요소 저장소 손상 DISM 복구가 필요한 상태를 더 자세히 다뤘습니다 · 눌러서 확인하기 → 윈도우 업데이트 0x800f0831 오류 해결 방법 특정 KB 하나만 계속 실패할 때 함께 보면 좋습니다 · 눌러서 확인하기 →참고 문서 · Error code 0x800f0922 when installing Windows updates (Microsoft Learn)





