Microsoft MVP성태의 닷넷 이야기
오류 유형: 312. 윈도우 10 TH2 (버전 1511) 업데이트가 안되는 경우 [링크 복사], [링크+제목 복사]
조회: 20675
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

윈도우 10 TH2 (버전 1511) 업데이트가 안되는 경우

"시작" / "Settings" 메뉴를 선택해 "Update & security" 항목을 들어가 보니 이번 윈도우 1511 업데이트가 다음과 같이 오류가 난 걸로 나왔습니다.

prepare_to_install_0.png

재시도하는 버튼을 눌렀더니, 다음과 같이 "Preparing to install updates"에서 더 이상 진행이 되질 않습니다.

prepare_to_install_1.png

실제로 정상적인 윈도우 업데이트 단계 중에도 "Preparing to install updates" 부분이 좀 오래 걸리긴 하지만, 문제가 발생해서 업데이트 진행이 안되는 경우에는 해당 "Settings" 윈도우 창이 먹통이 되는 것으로 인지할 수 있습니다. 즉, 정상적인 윈도우 업데이트인 경우에는 해당 창을 끌거나 하는 것이 가능하지만 문제가 발생해 먹통이 된 경우에는 아무리 오래 기다려도 그 이상 진행을 하지 않습니다.

왜 이런 걸까요? ^^;




제어판의 "Troubleshooting" / "View history" 링크로 들어가면 다음과 같이 실패 이력이 남고,

prepare_to_install_2.png

우클릭해서 "View details"를 보면 이렇게 오류 코드가 "0x80070057"로 나옵니다. (이건 별로 도움이 안되는 오류 코드입니다.)

prepare_to_install_3.png

실제 오류 원인은 로그에 나오는데요. 이번 윈도우 업데이트를 시작하면 "C:\$WINDOWS.~BT\Sources\Panther" 폴더 하위에 setupact.log라는 이름으로 진행 관련한 로그가 남습니다.

이 로그를 보다가 다음의 오류를 발견할 수 있었는데,

2015-11-19 16:43:29, Info                  SP     DU disk space checkpoint after download:
2015-11-19 16:43:29, Info                  SP       Available: 2787401728
2015-11-19 16:43:29, Info                  SP       Needed by install of updates: 2106018541
2015-11-19 16:43:29, Info                  SP       Needed by setup: 597688320
2015-11-19 16:43:29, Info                  SP     Reserved space (2106018541) not accurate; will perform additional buffer check.
2015-11-19 16:43:29, Warning               SP     CDownloadDUUpdates::DoExecuteInternal: Total space estimate leaves low free space; skipping installation.
2015-11-19 16:43:29, Error                        CDiagnosticsHelper::SetSQMDatapoint: Attempting to set a datapoint in an invalid SQM session
2015-11-19 16:43:29, Error                 SP     CSetupPlatform::DownloadDynamicUpdates: Failed to download updates. Error: 0x80070070
2015-11-19 16:43:29, Error                 MOUPG  DUImage: Failed to execute GDR search and download [0x80070070]
2015-11-19 16:43:29, Info                  MOUPG  DUImage: Searching for driver updates...
2015-11-19 16:43:29, Info                         SPGetWIMImageInfo: No software hive in WIM image index 1; assuming this is data image.
2015-11-19 16:43:30, Info                  MOUPG  Action progress: [22%]
2015-11-19 16:43:30, Info                  MOUPG  Task progress: [44%]
2015-11-19 16:43:36, Info                  SP     Client application ID = SetupHost.Exe

여기서 "CSetupPlatform::DownloadDynamicUpdates: Failed to download updates. Error: 0x80070070"의 오류 코드인 0x80070070은 디스크 부족을 의미합니다.

Windows Update error: "Windows Update has encountered a problem and cannot display the requested page. 0X80070070."
; http://blogs.technet.com/b/sus/archive/2008/05/28/windows-update-error-windows-update-has-encountered-a-problem-and-cannot-display-the-requested-page-0x80070070.aspx

그렇습니다. C 드라이버의 용량이 7GB 정도 있었는데 이걸로는 부족했던 것입니다. 아무리 그렇다고는 하지만, 마이크로소프트가 너무 불친절하군요. 그럼 윈도우 업데이트 중에 디스크 부족이라고 메시지 창 하나만 띄워주었어도 이런 술래잡기는 없었을 텐데. ^^




자, 이제 디스크 부족이라는 것을 알았으니 선택 사항이 2가지가 있습니다. 하나는 가장 간단하게 C 드라이버의 여유 공간을 10GB 정도로 늘려주는 것입니다. 안 쓰는 프로그램을 삭제하든... 갖은 방법을 동원해서 해주시면 됩니다.

그게 아니라면 윈도우 업데이트가 아닌 수작업으로 업데이트를 진행하면 됩니다. 마이크로소프트는 TH2 업데이트를 ISO 파일로 다음의 사이트에서 제공하고 있는데,

Windows 10 Tech Bench Upgrade Program
; https://www.microsoft.com/en-us/software-download/techbench 

위의 화면 하단에서 자신에게 맞는 윈도우 10 버전과 언어 유형을 선택해 주면 그에 해당하는 iso 파일을 다운로드받게 됩니다. 제 경우에는 "Win10_1511_English_x64.iso"이었는데요.

다운로드 받은 후 ISO 파일을 마우스 우클릭해 "Mount" 메뉴를 실행해 주면 가상 CD-ROM으로 연결되고 거기 있는 setup.exe를 실행하면 됩니다.

이렇게 업데이트를 시도하면 이번에는 친절하게 디스크 부족이었다고 원인을 밝혀주고 C 드라이브를 정리하거나, 아니면 10GB 여유 공간이 있는 다른 하드 디스크를 선택하라고 일러줍니다.

prepare_to_install_4.png

C 드라이브를 10GB 확보할 수 있었으면 ISO 다운로드 받아 setup.exe 실행할 수고없이 "Settings"의 윈도우 업데이트 창에서 끝냈을 것입니다. 여기까지 온 것은 그게 쉽지 않은 때문이고 "Choose another drive or attach an external drive with 10.0GB available" 메뉴의 혜택을 받기 위해서였던 것이지요. ^^

암튼 그 링크를 선택하면 바로 하단에 드라이브 목록이 뜨고 제 경우에는 330GB 여유가 있는 외장 하드를 지정했습니다.

prepare_to_install_5.png

그리곤 우측 하단의 "Refresh" 버튼을 누르고 설치 작업을 시작해 주시면 됩니다. 나머지는 이제 기다리는 여유만 있으면 됩니다.




설치가 완료되었으면, 이제 탐색기를 실행해 "C" 드라이브를 선택하고 마우스 우클릭을 해 "Properties" / "Disk Cleanup" 버튼을 누르고 뜨는 창에서 좌측 하단의 "Clean up system files" 버튼을 누르면 다음과 같이 이전 윈도우 설치 본을 제거해 C 드라이브 하드 공간을 업데이트 설치 이전보다 더 여유롭게 만들 수 있습니다. (덕분에 제 경우에 설치전 8GB 이하였는데 지금은 19GB 정도의 여유 공간이 남았습니다.)

prepare_to_install_6.png

업데이트로 인해 어떤 것이 좋아졌느냐고 물으신다면, 제 경우에 다음과 같은 것들을 꼽을 수 있습니다.


그 외에는 업데이트 설치 전과 잘 모르겠습니다. 전반적으로 안정화가 이뤄졌을 거라는 추측 뿐. ^^

참고로, 내부적으로는 인텔의 신형 Skylake CPU에서만 제공되는 보안도 적용되었다고 합니다.

Windows 10 Threshold 2에 구현된 SGX
; http://blog.naver.com/gloryo/220542548735

CPU | 인텔, 10월부터 SGX 기술이 탑재된 업데이트된 스카이레이크 프로세서 공급 
; http://www.hwbattle.com/bbs/board.php?bo_table=news&wr_id=9958




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/18/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2019-03-08 12시11분
SetupDiag
; https://docs.microsoft.com/en-us/windows/deployment/upgrade/setupdiag

SetupDiag is a standalone diagnostic tool that can be used to obtain details about why a Windows 10 upgrade was unsuccessful.
정성태

... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
13222정성태1/20/20233932개발 환경 구성: 657. WSL - DockerDesktop.vhdx 파일 위치를 옮기는 방법
13221정성태1/19/20234164Linux: 57. C# - 리눅스 프로세스 메모리 정보파일 다운로드1
13220정성태1/19/20234316오류 유형: 837. NETSDK1045 The current .NET SDK does not support targeting .NET ...
13219정성태1/18/20233875Windows: 220. 네트워크의 인터넷 접속 가능 여부에 대한 판단 기준
13218정성태1/17/20233808VS.NET IDE: 178. Visual Studio 17.5 (Preview 2) - 포트 터널링을 이용한 웹 응용 프로그램의 외부 접근 허용
13217정성태1/13/20234403디버깅 기술: 185. windbg - 64비트 운영체제에서 작업 관리자로 뜬 32비트 프로세스의 덤프를 sos로 디버깅하는 방법
13216정성태1/12/20234656디버깅 기술: 184. windbg - 32비트 프로세스의 메모리 덤프인 경우 !peb 명령어로 나타나지 않는 환경 변수
13215정성태1/11/20236162Linux: 56. 리눅스 - /proc/pid/stat 정보를 이용해 프로세스의 CPU 사용량 구하는 방법 [1]
13214정성태1/10/20235738.NET Framework: 2087. .NET 6부터 SourceGenerator와 통합된 System.Text.Json [1]파일 다운로드1
13213정성태1/9/20235270오류 유형: 836. docker 이미지 빌드 시 "RUN apt install ..." 명령어가 실패하는 이유
13212정성태1/8/20235030기타: 85. 단정도/배정도 부동 소수점의 정밀도(Precision)에 따른 형변환 손실
13211정성태1/6/20235112웹: 42. (https가 아닌) http 다운로드를 막는 웹 브라우저
13210정성태1/5/20234132Windows: 219. 윈도우 x64의 경우 0x00000000`7ffe0000 아래의 주소는 왜 사용하지 않을까요?
13209정성태1/4/20234033Windows: 218. 왜 윈도우에서 가상 메모리 공간은 64KB 정렬이 된 걸까요?
13208정성태1/3/20233965.NET Framework: 2086. C# - Windows 운영체제의 2MB Large 페이지 크기 할당 방법파일 다운로드1
13207정성태12/26/20224270.NET Framework: 2085. C# - gpedit.msc의 "User Rights Assignment" 특권을 코드로 설정/해제하는 방법파일 다운로드1
13206정성태12/24/20224476.NET Framework: 2084. C# - GetTokenInformation으로 사용자 SID(Security identifiers) 구하는 방법 [3]파일 다운로드1
13205정성태12/24/20224872.NET Framework: 2083. C# - C++과의 연동을 위한 구조체의 fixed 배열 필드 사용 (2)파일 다운로드1
13204정성태12/22/20224152.NET Framework: 2082. C# - (LSA_UNICODE_STRING 예제로) CustomMarshaler 사용법파일 다운로드1
13203정성태12/22/20224313.NET Framework: 2081. C# Interop 예제 - (LSA_UNICODE_STRING 예제로) 구조체를 C++에 전달하는 방법파일 다운로드1
13202정성태12/21/20224705기타: 84. 직렬화로 설명하는 Little/Big Endian파일 다운로드1
13201정성태12/20/20225330오류 유형: 835. PyCharm 사용 시 C 드라이브 용량 부족
13200정성태12/19/20224204오류 유형: 834. 이벤트 로그 - SSL Certificate Settings created by an admin process for endpoint
13199정성태12/19/20224492개발 환경 구성: 656. Internal Network 유형의 스위치로 공유한 Hyper-V의 VM과 호스트가 통신이 안 되는 경우
13198정성태12/18/20224370.NET Framework: 2080. C# - Microsoft.XmlSerializer.Generator 처리 없이 XmlSerializer 생성자를 예외 없이 사용하고 싶다면?파일 다운로드1
13197정성태12/17/20224308.NET Framework: 2079. .NET Core/5+ 환경에서 XmlSerializer 사용 시 System.IO.FileNotFoundException 예외 발생하는 경우파일 다운로드1
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...