최근 들어 계속 씨름해 온 꽤 기묘한 문제입니다. 제가 최근에 작성한 Windows 관련 글을 읽어 보셨다면, 비교적 새로 구입한 Lenovo Ideapad Y50-70 노트북에서 Windows Update(WU) 기능에 문제가 발생해 시스템 이미지 전체를 이전 상태로 복원했던 경험을 아실 겁니다. 그 과정에서 UEFI, ATI, Windows 8.1이 조합될 때 생기는 큰 장애물도 있었지만, 다행히 잘 넘겼습니다.
그런데 그 사건으로부터 몇 주 후, 노트북이 시끄러워졌습니다. CPU 팬이 과도하게 돌아가고 있었는데, 이유가 없지 않았습니다. 프로세서 사용률이 약 13%, 즉 논리 스레드 하나가 거의 가득 찬 상태였고, 그 원인은 Windows Update 서비스를 함께 제어하는 svchost.exe 프로세스였습니다. 또다시 업데이트 문제에 직면했다는 직감이 들었고, 실제로 Windows 8.1은 아무리 오래 기다려도 업데이트 검색을 끝내지 못했습니다. 결국 직접 고치기로 했습니다.
문제를 좀 더 자세히 살펴보면
증상은 단순합니다. Windows 8.1이 업데이트를 확인하지만 끝까지 완료되지 않고, 시스템은 높은 CPU 사용률로 바쁘게 돌아갑니다. 즉, 업데이트 설치가 불가능하고, 이 기능이 중요하다면 갇혀 버린 것처럼 느껴질 수 있습니다. 아니면 불안해할 수도 있겠죠.
제 경우에는 2016년 5월 업데이트 주기와 최근 롤업 업데이트 패치 배포 사이 어느 시점에 문제가 나타났습니다. 그 이후 새 드라이버를 설치하거나 하드웨어를 추가한 적도 없었습니다. 추측컨대 Windows Update가 특정 패치 하나를 놓치고, 그것을 찾지 못해 무한 루프에 빠진 것 같습니다. 어떤 이유에서인지 업데이트 주기 도중에 중요한 데이터 조각이 누락된 것이죠. 어디까지나 제 가정입니다.
로그에는 뚜렷한 오류가 없었는데, 딱 하나 빼고 말입니다. 이 오류가 여러분이 겪는 문제와 반드시 연관된 것은 아니지만, 이 글을 읽고 있다는 것 자체가 여기 담긴 정보 중 일부가 여러분의 사례와 관련이 있다는 뜻일 겁니다.
Windows Store failed to sync machine licenses. Result code 0x80070002
이 오류의 의미를 온라인에서 찾아보니 정말 미궁 같았습니다. 제안과 선택지를 하나씩 차근차근 짚어 나가야 했습니다. 참고로 WU 오류 코드 목록을 조회하거나 자신의 항목을 검색해 볼 수 있는데, 수백 건의 결과가 나오고 그 결과들은 물론 전부 여러분의 사례와 다릅니다.
해결 시도 — 공식 방법은 하나도 통하지 않았다
이 이야기에서 가장 우스운 대목입니다. 인터넷에서 정보를 찾아 읽기 시작했고, 반쯤 되는 서로 다른 단서들을 얻었습니다. 대부분 Microsoft의 공식 제안과 도구였지만, 제 문제는 끝내 해결되지 않았습니다. 이 가이드의 완성도를 위해 일단 모든 방법을 소개한 뒤, 실제로 효과가 있었던 한 가지에 집중하겠습니다. 다시 강조하지만, 이전 이미지로 롤백하거나 백업을 복구하는 이야기가 아니라 진짜 원인을 파악하고 해결하는 것이 핵심입니다. 예전 시점으로 되돌렸다가 며칠 뒤 또 망가지는 일에 시간을 낭비할 여유가 없으니까요.
문제 해결사(Troubleshooter) 사용
Windows 7 이상에는 깔끔한 문제 해결 마법사가 내장되어 있어, 자동화된 방식으로 문제 수정을 시도할 수 있습니다. 숙련도가 높지 않은 사용자나 시스템 내부를 파고들 생각이 없는 사용자에게 편리한 방법입니다.
문제 해결사는 오류 0x80070490을 발견하고 수정했다고 주장했습니다. 이벤트 로그의 코드와는 다른 코드였죠. 업데이트 기록도 완전히 초기화되었지만, 그건 괜찮습니다. WU는 필요에 따라 인덱스를 다시 만듭니다. 그러나 문제는 해결되지 않았습니다.
DISM
다음으로 시도한 도구는 DISM(Deployment Image Servicing and Management)입니다. 전문가와 시스템 관리자를 위해 설계된 유용한 유틸리티로, Windows에 기본 탑재되어 있으므로 그냥 실행하면 됩니다. 공식 지침에서는 다음 명령을 권장합니다.
C:\windows\system32>DISM.exe /Online /Cleanup-image /Restorehealth
DISM을 한동안 돌려 두었고, 완료되면서 오류를 수정했다고 알려왔습니다. 실제로는 아니었습니다.
C:\windows\system32>DISM.exe /Online /Cleanup-image /Restorehealth
Deployment Image Servicing and Management tool
Version: 6.3.9600.17031
Image Version: 6.3.9600.17031
[==========================100.0%==========================]
The restore operation completed successfully. The component
store corruption was repaired.
The operation completed successfully.
C:\windows\system32>
Windows Update 오류 수정 마법사
온라인 대화형 마법사를 통해 제공되는 최신 WU 진단 도구도 실행해 보았습니다. 이 도구는 문제 해결사와 매우 비슷하지만, 실제로 훨씬 철저한 검사를 수행했고 더 많은 오류를 찾아낸 것처럼 보였습니다. 참고로 오류 코드는 계속 바뀌었고, 0x80244019가 몇 번 나타나기도 했습니다만, 이것은 단지 WU 서비스가 중단된 상태여서 시작만 하면 되는 상황 때문이었습니다.
그러나 진단 유틸리티가 수정했다고 주장한 좋은 것들이 잔뜩 있었음에도, 아무 변화도 없었습니다. 재부팅을 중간에 하든 안 하든 WU는 여전히 멈춰 있었고, CPU는 12~13% 선을 유지했습니다.
PowerShell PSWindowsUpdate 모듈
PowerShell을 통해 업데이트를 가져오고 핵심 기능의 고유 문제를 우회한다는 공식 PSWindowsUpdate 모듈도 시도했습니다. 정말 멋진 도구처럼 보이죠. Kapil Arya가 작성한 실용적인 WU 오류 가이드의 지침을 그대로 따랐지만, 소득은 전혀 없었습니다. 덧붙이자면 그 튜토리얼은 다소 다른 종류의 문제를 다루고 있다는 점도 짚어 둡니다.
Set ExecutionPolicy RemoteSigned
Import-Module PSWindowsUpdate
Get-WUInstall
독립 실행형 패치 — KB3138615
독립 실행형 WU 패치 KB3138615도 시도했습니다. 직접 다운로드가 불가능해서 Microsoft Update Catalog를 거쳐야 했는데, 그건 문제가 아니었습니다. 패치는 실행되고 설치되었지만, 그래도 업데이트는 받을 수 없었습니다.
그 외 시도한 것들
DEP 설정 변경도 시도했습니다. 사실 별 의미가 없는 작업이고, 온라인 게시물들에서 두고두고 반복되는 순수한 주술에 가깝습니다. 당연히 아무 차이도 없었지만, 극도로 철저하게 확인하고 싶었기 때문입니다.
제가 하지 않은 한 가지는 WU 구성 요소를 수동으로 초기화하는 것이었습니다. 길고 번거로운 작업일 뿐 아니라 시스템을 망가뜨릴 가능성도 상당합니다. 게다가 이런 작업은 스크립트로 처리 가능하고, 원래 문제 해결사나 진단 도구에 포함되어 있어야 할 부분이며, 실제로 그렇게 되어 있을 겁니다. 그래서 패스했습니다.
실제로 통한 해결책: Autopatcher
그리하여 WU를 고치기 위해 비공식 도구를 사용하기로 했습니다. 시스템 관리 용도로 서드파티 유틸리티를 추천하거나 신뢰하지 않는 편이라 상당히 과감한 선택이었습니다. 하지만 이 경우 잃을 것이 없었기에 시도해 보기로 했습니다. Autopatcher에 대한 저의 과거 경험은 애매한 수준이었습니다. Windows 7의 느린 업데이트 기능을 우회하려고 사용해 본 적이 있었는데, 그후 2016년 여름 Microsoft가 공개한 공식 수정 사항을 찾아 테스트하게 되었거든요. 'cool'이 cool이 되기 전에 말이죠.
Autopatcher를 내려받아 중요 및 비중요 Windows Update 전부를 받게 했고, 데이터량은 어마어마한 2.1GB에 달했습니다. 그중 몇 개를 실제로 설치할 수 있는지 시험해 보았습니다. 1월 Adobe Flash Player 수정 패치 등 여러 개를 골라 설치했는데 잘 작동했고, 이후 실행에서는 해당 항목들이 사용 가능한 핫픽스 목록에서 실제로 사라져 있었습니다.
놀라운 것은 2014~2015년의 오래된 수정 패치가 긴 목록으로 표시되어 있었다는 점입니다. Windows가 설치하지도, 설치해야 한다고 알려주지도, 심지어 제공조차 하지 않았던 것들이었죠. 전부 설치하기로 했습니다. Autopatcher는 작업을 문제없이 마쳤습니다. 재부팅 후에도 항목들이 계속 표시되긴 했는데, 아마 다른 업데이트로 대체된 것으로 보입니다. 그보다 중요한 것은, Windows Update가 다시 정상적으로 작동하기 시작했다는 사실입니다! Autopatcher가 설치를 시도한 무언가가 결국 시스템을 괴롭히던 루프를 해소한 모양입니다. 누락된 핫픽스가 마침내 적용되었거나 손상된 라이브러리가 교체되면서 서비스가 정상 작업을 재개할 수 있게 된 것이겠죠. 우스워 보이지만, 실제로 옛날 패치를 전부 설치하는 것이 도움이 된 것입니다.
다른 시스템에서도 같은 현상
이 글을 작성하는 도중, 발행 직전에 정확히 같은 증상의 똑같은 문제가 제 Asus Vivobook에서도 나타났습니다. 그래서 같은 방법을 적용했고, Autopatcher로 확실하게 문제를 해결했습니다.
우스운 점은, 이 문제가 계속 재발한다는 것입니다. 시간이 좀 지나면 WU가 시스템 업데이트 검색을 멈추곤 합니다. 다행히 여러 차례에 걸쳐, 완전히 다른 두 시스템에서 Autopatcher가 일관되게 좋은 결과로 문제를 해결해 주었습니다. 그냥 실행하고 아무 업데이트든 설치하면, 그 후 시스템은 평소처럼 빠른 WU 작동을 재개합니다.
이는 여기서 벌어지고 있는 것이 Windows 8.1 자체의 고유한 문제임을 보여 줍니다. 이 준(準)지능적 운영체제의 평가를 높여 주지도, Windows 10으로 업그레이드할 이유를 주지도 못합니다. 오히려 그 반대죠. 음모론 같은 헛소리는 접어 두더라도, 플래그십 제품의 핵심 구성 요소에 있는 문제를 해결할 수 없거나 해결할 의향이 없는 벤더라면, 그들의 향후 릴리스를 사용할 생각은 없습니다.
같은 문제를 겪는 분들에게 권합니다. 문제가 사라지기를 바라며 업그레이드하지 마세요. 사라질 수도 있지만, 그것은 해결책이 아니라 우회책입니다. 제 방법 역시 어떤 의미에서는 편법이지만, 그래도 원래 있어야 할 WU 기능을 되돌려 줍니다. 어쨌든 서로 다른 두 대의 Windows 8.1 머신, 다른 하드웨어, 다른 제조사, 심지어 다른 소프트웨어 스택에서 같은 문제였습니다. 순수하게 운영체제의 문제입니다. 스트레스받지 말고 자탄하지 마세요. Autopatcher로 이 결함을 고치고 정상 운영을 재개하세요. 지난 5~6개월간 10회 이상 검증된, 믿을 만하고 안전한 방법입니다. 아주 좋습니다.
결론
여기서 해낸 작업이 자랑스럽지는 않습니다. 그럼에도 공식 도구들이 아무것도 유의미한 일을 하지 못했고, 결국 서드파티 소프트웨어를 이용한 무차별적인 접근이 루프 장애를 넘게 도왔다는 사실은 상당히 우스운 일입니다. 그렇다고 해도 시스템을 재설치하면 고쳐졌을지도 모르지만, 회의적입니다. 어차피 이전 이미지로 복원한 것도 일시적인 효과에 그쳤고, 시스템을 미치게 만든 다른 무언가가 남아 있었으니까요.
전반적으로 Autopatcher나 WSUS Offline이 정답이라고 생각하지는 않습니다. 하지만 어쩔 수 없다면, 업데이트가 전혀 안 되거나 WU가 망가진 시스템보다는 나을 겁니다. 그래도 이번 과정에서 많은 것을 배웠습니다. 다양한 오류에 대처하는 방법, 여러 문제 해결 도구의 활용, 몇 가지 PowerShell 트릭, 그리고 기타 잡다한 것들, 그리고 Autopatcher를 통한 꽤 의외의 '전부 설치' 해결법까지 말입니다. 이야기의 급반전이었죠.
비슷한 문제를 만난다면, 먼저 간단한 것부터 시작해서 점차 절박함과 더 큰 변경으로 나아가세요. 공식 유틸리티를 시도하고, 도움이 되지 않으면 Autopatcher를 고려해 보세요. 결과에는 만족하며, 이 프로그램이 원래 해서는 안 될 일을 했다 해도 사용에 대한 자신감은 오히려 커졌습니다. 저는 업데이트를 달라고 요청했는데, 프로그램이 대신 Windows Update 자체를 고쳐 준 거니까요. 이 모든 상황의 시적 역설이 느껴지시나요? 요컨대, 최근 몇 년간 우리가 겪어 온 Windows 7과 8.1의 문제들을 보면, Microsoft가 이처럼 필수적인 기능에 더 집중해 주기를 진심으로 바랄 뿐입니다. 어쨌든, 이 튜토리얼이 여러분의 정신 건강을 회복하는 데 도움이 되기를 바랍니다. 잘 지내세요.
그럼, 이만.