Microsoft MVP성태의 닷넷 이야기
오류 유형: 312. 윈도우 10 TH2 (버전 1511) 업데이트가 안되는 경우 [링크 복사], [링크+제목 복사]
조회: 20746
글쓴 사람
정성태 (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.
정성태

1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
13507정성태1/2/20242718닷넷: 2191. C# - IPGlobalProperties를 이용해 netstat처럼 사용 중인 Socket 목록 구하는 방법파일 다운로드1
13506정성태12/29/20232211닷넷: 2190. C# - 닷넷 코어/5+에서 달라지는 System.Text.Encoding 지원
13505정성태12/27/20232773닷넷: 2189. C# - WebSocket 클라이언트를 닷넷으로 구현하는 예제 (System.Net.WebSockets)파일 다운로드1
13504정성태12/27/20232336닷넷: 2188. C# - ASP.NET Core SignalR로 구현하는 채팅 서비스 예제파일 다운로드1
13503정성태12/27/20232195Linux: 67. WSL 환경 + mlocate(locate) 도구의 /mnt 디렉터리 검색 문제
13502정성태12/26/20232308닷넷: 2187. C# - 다른 프로세스의 환경변수 읽는 예제파일 다운로드1
13501정성태12/25/20232102개발 환경 구성: 700. WSL + uwsgi - IPv6로 바인딩하는 방법
13500정성태12/24/20232187디버깅 기술: 194. Windbg - x64 가상 주소를 물리 주소로 변환
13498정성태12/23/20232870닷넷: 2186. 한국투자증권 KIS Developers OpenAPI의 C# 래퍼 버전 - eFriendOpenAPI NuGet 패키지
13497정성태12/22/20232300오류 유형: 885. Visual Studiio - error : Could not connect to the remote system. Please verify your connection settings, and that your machine is on the network and reachable.
13496정성태12/21/20232320Linux: 66. 리눅스 - 실행 중인 프로세스 내부의 환경변수 설정을 구하는 방법 (gdb)
13495정성태12/20/20232330Linux: 65. clang++로 공유 라이브러리의 -static 옵션 빌드가 가능할까요?
13494정성태12/20/20232510Linux: 64. Linux 응용 프로그램의 (C++) so 의존성 줄이기(ReleaseMinDependency) - 두 번째 이야기
13493정성태12/19/20232614닷넷: 2185. C# - object를 QueryString으로 직렬화하는 방법
13492정성태12/19/20232303개발 환경 구성: 699. WSL에 nopCommerce 예제 구성
13491정성태12/19/20232239Linux: 63. 리눅스 - 다중 그룹 또는 사용자를 리소스에 권한 부여
13490정성태12/19/20232361개발 환경 구성: 698. Golang - GLIBC 의존을 없애는 정적 빌드 방법
13489정성태12/19/20232145개발 환경 구성: 697. GoLand에서 ldflags 지정 방법
13488정성태12/18/20232076오류 유형: 884. HTTP 500.0 - 명령행에서 실행한 ASP.NET Core 응용 프로그램을 실행하는 방법
13487정성태12/16/20232393개발 환경 구성: 696. C# - 리눅스용 AOT 빌드를 docker에서 수행 [1]
13486정성태12/15/20232207개발 환경 구성: 695. Nuget config 파일에 값 설정/삭제 방법
13485정성태12/15/20232093오류 유형: 883. dotnet build/restore - error : Root element is missing
13484정성태12/14/20232169개발 환경 구성: 694. Windows 디렉터리 경로를 WSL의 /mnt 포맷으로 구하는 방법
13483정성태12/14/20232308닷넷: 2184. C# - 하나의 resource 파일을 여러 프로그램에서 (AOT 시에도) 사용하는 방법파일 다운로드1
13482정성태12/13/20232890닷넷: 2183. C# - eFriend Expert OCX 예제를 .NET Core/5+ Console App에서 사용하는 방법 [2]파일 다운로드1
13481정성태12/13/20232279개발 환경 구성: 693. msbuild - .NET Core/5+ 프로젝트에서 resgen을 이용한 리소스 파일 생성 방법파일 다운로드1
1  2  3  4  [5]  6  7  8  9  10  11  12  13  14  15  ...