SFC 및 DISM이 실패하는 경우 Windows 10에서 손상된 opencl.dll을 수정하는 방법?


33

로컬 구성 요소 저장소가 손상되었고 컴퓨터가 Microsoft의 공개 업데이트 서버 대신 로컬 WSUS 서버에 액세스하고 있기 때문에 Dism을 거의 사용하지 않기 때문에 문제를 해결하는 데 몇 시간이 걸렸습니다. 참고로 같은 문제를 가진 다른 사람들을 돕기 위해 문제 설명을 작성하고 해결책을 제공 할 것입니다.

Windows 10 Pro 버전 1511 (빌드 10586)으로 업그레이드 한 후 여러 위치에서 손상된 filed opencl.dll 에 문제가 있습니다.

시도 sfc.exe /scannow했지만 문제를 해결하지 못했습니다. 오류 메시지는 다음과 같습니다.

2015-12-08 08:50:43, Info                  CSI    00003c3a Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3b [SR] Cannot repair member file [l:10]"opencl.dll" of microsoft-windows-RemoteFX-clientVM-RemoteFXWDDMDriver-WOW64-C, version 10.0.10586.0, arch Host= amd64 Guest= x86, nonSxS, pkt {l:8 b:31bf3856ad364e35} in the store, hash mismatch
2015-12-08 08:50:43, Info                  CSI    00003c3c [SR] This component was referenced by [l:125]"Microsoft-Windows-RemoteFX-VM-Setup-Package~31bf3856ad364e35~amd64~~10.0.10586.0.RemoteFX clientVM and UMTS files and regkeys"
2015-12-08 08:50:43, Info                  CSI    00003c3d Hashes for file member \??\C:\WINDOWS\SysWOW64\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3e Hashes for file member \SystemRoot\WinSxS\wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22\opencl.dll do not match actual file [l:10]"opencl.dll" :
  Found: {l:32 g2VAunZ6/2J1G3oL7kf9fjInPUA9VYeiJcl9VKgizaY=} Expected: {l:32 9rnAnuwzPjMQA7sW63oNAVhckspIngsqJXKYSUeQ5Do=}
2015-12-08 08:50:43, Info                  CSI    00003c3f [SR] Could not reproject corrupted file [l:23 ml:24]"\??\C:\WINDOWS\SysWOW64"\[l:10]"opencl.dll"; source file in store is also corrupted

좋아, 이제 문제는 분명하다. 불행하게도 로컬 구성 요소 저장소도 손상되어 SFC 가 손상을 해결할 수 없습니다. 불행히도 구성 요소 저장소 손상을 나타내는 오류 메시지가 손실되었습니다.

그래서 Dism /Online /Cleanup-Image /RestoreHealth아무 소용이 없었습니다. 소스 파일에 다른 문제가 있음을 나타내는 오류 0x800f081f 와 함께 실패 합니다.

2015-12-08 08:57:35, Info                  CBS    Exec: Download qualification evaluation, business scenario: Manual Corruption Repair
2015-12-08 08:57:35, Info                  CBS    Exec: Clients specified using Windows Update.
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe2.update.microsoft.com/v6/, Name: Microsoft Update
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe2.ws.microsoft.com/v6/, Name: Windows Store
2015-12-08 08:57:35, Info                  CBS    WU: Update service is not default AU service, skip. URL: https://fe3.delivery.mp.microsoft.com/, Name: Windows Store (DCat Prod)
2015-12-08 08:57:35, Info                  CBS    WU: WSUS service is the default, URL: (null), Name: Windows Server Update Service
2015-12-08 08:57:35, Info                  CBS    DWLD:Search is done, set download progress to 20 percent.
2015-12-08 08:57:35, Info                  CBS    Nothing to download, unexpected
2015-12-08 08:57:35, Info                  CBS    Failed to collect payload and there is nothing to repair. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]
2015-12-08 08:57:35, Info                  CBS    Failed to repair store. [HRESULT = 0x800f081f - CBS_E_SOURCE_MISSING]

오류 메시지를 보면 Windows가 로컬 WSUS 서버를 사용하도록 설정되었으므로 Dism이 저장소에서 유효한 파일을 검색 할 수 없습니다. 필요한 파일을 제공하도록 WSUS를 구성 할 수 있다고 확신하지만 빠른 수정 방법과 방법을 모르겠습니다. (누군가가 WSUS를 구성하는 방법을 알고 있다면 정보를 제공하십시오).

매개 변수를 추가하여 로컬 스토리지에 대한 액세스를 제한하는 것은 /LimitAccess앞에서 언급 한대로 로컬 구성 요소 저장소도 손상되므로 쓸모가 없습니다.

이 문제는 두 대의 컴퓨터에서 발생했습니다. 새로 고침 윈도우 10는 문제가 해결되지 않았다.


FWIW 여기에 긴 스레드있다 answers.microsoft.com/en-us/windows/forum/... 이 DLL 문제에 대한이.
Rory

답변:


42

이 문제를 해결하려면 설치 한 정확한 빌드의 ISO가 필요합니다.

  1. ISO 이미지를 마운트하십시오.
  2. WIM (Windows 이미지 파일)을 마운트 할 임시 디렉토리를 작성하십시오.
    mkdir C:\WIM
  3. WIM 파일을 마운트하십시오.
    Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
  4. 다음 매개 변수를 사용하여 Dism을 실행하십시오.
    Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
  5. 완료되면 이미지를 마운트 해제하고 폴더를 삭제하십시오.
    Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
  6. 컴퓨터를 다시 시작해야합니다. 그렇지 않으면 SFC 및 DISM에 여전히 오류가 표시됩니다.

문제가 해결 될 것입니다.

편집
의견에서 지적했듯이 더 직접적인 접근 방식이있을 수 있습니다. TL; DR은 그것이 나를 위해 작동하지 않았으므로 더 자세한 접근 방식입니다. 그러나 직접 접근 방식에 문제가 있다면 관심이 있습니다. 의견을주세요.


2
WIM을 마운트하지 않고도 WIM을 가리킬 수 있습니다. superuser.com/a/870956/174557
magicandre1981

3
귀하의 의견에 감사드립니다. 나는 그것에 대해 읽었고 아무 소용이 없었습니다. 항상 오류로 인해 실패했습니다 .0x800f081f 기억합니다. Dism Command Line Options/source:wim 공식 문서에서 매개 변수와 관련된 것을 찾을 수 없다는 것이 놀랍습니다 .
Daniel

나는 기능을 사용하는 컨텐츠에 여기를 읽어 blogs.technet.com/b/joscon/archive/2013/03/29/...
magicandre1981을

2
이것은 다른 사용자에게도 도움이되었습니다 : borncity.com/blog/2015/12/09/… 마운트가 작동하는 것은 이상하지만 WIM은 직접 전달하지 않습니다.
magicandre1981

4
미디어 생성 도구를 사용하여 Windows 10 이미지를 다운로드 한 후 여기 ( microsoft.com/en-ca/software-download/windows10) 에 결과 img에 mount.esd가 설치되어 마운트되었습니다. Dism에 의해. NTLite를 사용했습니다. 그 후 Daniel의 지시는 잘 작동했습니다. 세 번째 단계의 / index 매개 변수는 복원중인 Windows, Pro 또는 Home 버전을 반영해야합니다 (즉, Pro의 경우 / index : 1을 사용하고 홈의 경우 / index : 2 사용)
Eli B.

10

인터넷의 다양한 포럼에서 다음 수리 절차를 모았습니다.

  1. http://go.microsoft.com/fwlink/?LinkId=691209 에서 MediaCreationTool을 다운로드하십시오.
  2. 와 윈도우 10 프로 ISO 다운로드 MediaCreationTool.exec:\temp\windows.iso
  3. c:\temp\windows.iso폴더로 파일 추출에 7-zip 사용c:\temp\windows
  4. 변환 install.esdinstall.wim

    Dism /Export-Image /SourceImageFile:c:\temp\windows\sources\install.esd /SourceIndex:1 /DestinationImageFile:c:\temp\windows\sources\install.wim /compress:max

  5. .wim파일
    -인덱스의 인덱스 및 Windows 버전 확인 은 매개 변수의 다음 Dism 명령에 사용됩니다/Source:wim:path_to_wim:[index]

    Dism /Get-WimInfo /wimFile:c:\temp\windows\sources\install.wim

  6. 다운로드 및 변환 된 Windows 이미지 (wim)에서 상태 Windows 구성 요소를 복원합니다.

    Dism /Online /Cleanup-Image /RestoreHealth /Source:wim:c:\temp\windows\sources\install.wim:1 /LimitAccess

  7. 손상된 파일을 복구하십시오.

    sfc /scannow

    손상된 파일을 복구합니다-성공 메시지 : Windows Resource Protection found corrupt files and successfully repaired them.

  8. Windows 재시작
  9. 시스템 파일을 다시 확인하여 성공적으로 복구되었는지 확인하십시오.

    sfc /scannow

    스캔 후 성공 메시지 : Windows Resource Protection did not find any integrity violations.


1
덕분에 마침내 Windows 10 설치를 수정하여 얼마 전에 새로 설치했습니다. 새로 설치 한 후에도 문제가 발생하고 sfc가 곧 실패합니다! 어쨌든 이번에는 얼마나 오랫동안 고정되어 있는지 볼 수 있습니다! 1511 빌드 news.softpedia.com/news/에 대해 알려진 문제인 것 같아서 Microsoft가 여전히 최신 승리 10 업데이트에서 수정 하지 않았다고 생각합니다. Windows ISO를 추출했습니다.
daveangel

답변 주셔서 감사합니다. 그래픽 디렉토리를 설치 한 후 시스템 파일 검사기가 손상됩니다. 그러나 이제는 SFC / SCANNOW를 실행하여 시스템을 복구하기에 충분합니다 .winsxs 폴더에 opencl.dll의 올바른 버전이 있습니다. 추신 : 부팅 가능한 ISO를 다운로드하면 미디어 생성 도구가 ESD 파일 (Windows 10 업그레이드 용으로 설계된 버전) 만 다운로드하면 4 단계가 생략 될 수 있습니다. 미디어 생성 도구 :-) 자동으로 다운로드 올바른 설치 미디어를위한 최선의 선택
kapitanrum

4 단계 (WIM 파일 추출)가 나를 위해했습니다. 훌륭한 가이드. 감사.
Ravi Wallau 2016 년

1
"소스 파일을 찾을 수 없습니다"라는 오류로 6 단계가 실패합니다. 오류 0x800f091f
simpleuser

오류 0x800f091f를 봤는데 설치 .NET Framework 3.5에 문제가있을 수 있습니다. 버전 4+ 만있는 경우 버전 3.5도 설치하십시오. MS 설치 가이드를보십시오 : msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx
kapitanrum

4

ESD는 "암호화 된"WIM이 아니며, 매우 복잡한 구조로 매우 다르게 패킹 / 인코딩 된 WIM입니다.

WIM은 빠른 허프만 압축을 사용하여 4KB 또는 16KB의 깨지지 않는 단위로 "빠르게"압축됩니다. ESD는 블록 크기 제한없이 고급 LZ 기반 압축을 사용합니다. 이 압축은 압축이 전역 적이므로 이미지를 읽기 / 쓰기 모드로 열 수 없습니다 (아카이브의 각 파일은 더 이상 개별적으로 압축되지 않으며 여러 논리 파일이 세그먼트의 실제 스토리지를 공유 할 수 있음) 특히 아이콘 모음 또는 디지털 서명 데이터의 일부, 저작권 표시, HTML 헤더, 내장 된 스크립트 등과 같은 공통 헤더 부분이있는 작은 파일이 많은 경우).

SWM은 최대 크기가 큰 작은 파일로 여러 파일로 분할 된 멀티 파트 WIM이지만 여전히 쓰기 가능하며 여러 DVD에 저장할 수 있습니다.

CBS 공급자는 WIM, CAB, ZIP, VHD, VHDX, 멀티 세션 ISO를 포함하여 DISM에서 지원할 수있는 여러 가지 보관 형식을 허용합니다. 그러나 Windows에는 WIM 및 ESD 형식을위한 두 개의 기본 제공 공급자가 제공됩니다 (ESD는 Windows 10의 새로운 기능입니다) Windows 8에서는 WIM 형식 만 지원되었지만 이미지는 더 컸습니다)

ESD 형식은 Windows 10 전체 다국어 배포가 3GB 미만의 단일 DVD에 맞도록 조정되었습니다 ...

ESD를 WIM으로 변환 할 수 있지만 결과는 훨씬 더 큰 파일이됩니다. 역변환도 가능합니다 (확장 된 WIM에서 읽기 / 쓰기 가능).이를 새로운 ESD에 다시 포장 할 수 있습니다. ESD를 WIM으로 압축 해제하는 것은 비교적 빠르지 만 WIM을 ESD로 압축하려면 많은 CPU 리소스가 필요하고 훨씬 더 길어집니다 (그래서 ESD에 직접 읽기 / 쓰기를 할 수는 없지만 겸손한 WIM에서는 쉽게 수행 할 수 있습니다) CPU 사용량).

DISM을 사용하여 ESD를 "마운트"할 때 가장 먼저 할 일은 ESD를 임시 저장소로 확장하고 마치 WIM 인 것처럼 ESD를 처리하여이 로컬 저장소의 파일을 업데이트하는 것입니다. 마운트를 해제하려면 두 가지 단계가 필요합니다. WIM 다시 작성 (quite fast)과 ESD에 다시 포장 (매우 느림).


2

다음과 같이 opengl.dll의 문제를 해결했습니다.

  1. Windows 10 이미지를 마운트하십시오.

  2. Dism / Online / Cleanup-Image / RestoreHealth / Source : esd : F : \ sources \ install.esd \ 1 \ Windows \ WinSxS \ wow64_microsoft-windows-r..xwddmdriver-wow64-c_31bf3856ad364e35_10.0.10586.0_none_3dae054b56911c22 \

  3. sfc / scannow

행운을 빕니다!


6
ESD ISO는 Windows 이미지로 복원되지 않습니다. 당신은 당신이에서 다운로드 할 수 있음을, 만 WIM ISO를 사용해야합니다 microsoft.com/en-us/software-download/techbench
23W

2

나는 며칠을 보내면서이 길을 가고 마침내 내 상황에 대한 해결책을 찾았습니다. Windows 10 버전 1511 빌드 10586.545를 실행 중입니다. 내 진행 상황은 다음과 같습니다.

  1. 이것은 Windows Update 오류 (오류 0x800705b4)로 시작되었습니다.
  2. 그런 다음 Windows Update 문제 해결사, WUResets, 바이러스 백신 비활성화 등을 수행 하여이 오류를 추적했습니다. 이 링크 는 해당 문제에 대한 옵션을 제공하는 좋은 기사입니다 (도움이되지는 않았지만)
  3. 그런 다음 DISM 및 SFC 경로를 따라 내려갔습니다. 이 ServerFault 게시물은 해당 시도에 매우 유용했습니다. 불행히도 이러한 옵션 중 어느 것도 도움이되지 않았습니다. 손상된 opencl.dll 파일이 있다는 말을 계속 들었고 DISM / RestoreHealth의 모든 종류의 변형이 실행되지 않았습니다. 0x800f081f를 계속 얻었습니다 (소스 파일을 찾을 수 없음)
  4. 다음으로 깨끗한 ISO의 opencl.dll을 C : \ Windows \ SysWOW64에 수동으로 복사하려고했습니다. 소유권 등을 망쳐 놓은 후에도 작동하지 않았습니다. 마침내 장치 관리자에서 NVIDIA GeForce GPU 드라이버를 비활성화하고 (인텔 드라이버를 계속 사용하여 디스플레이 사용) 깨끗한 opencl.dll을 C : \ Windows \에 복사 할 수있었습니다. SysWOW64

여기에서 Windows Update가 다시 작동하기 시작했습니다.

요약하자면, 이러한 오류로 어려움을 겪고 있지만 아무런 효과가없는 경우 NVIDIA GeForce 드라이버를 비활성화 한 다음이 단계 중 일부를 시도하십시오 (또는 클린 버전의 DLL에서 수동으로 복사).


1

로컬 사본이없고 ISO 파일을 다운로드 할 수없는 별도의 이유로 ISO가 설치되어있는 Windows 10 유형이 아닙니다. 여기 에는 "SFCFix"라는 전문가 파일을 다운로드하는 것과 관련된 핫픽스 솔루션이 있습니다. ":

SFCFix는 손상된 dll 파일을 복구 / 교체 하여이 문제를 해결할 수있는 훌륭한 작은 유틸리티입니다.

SFCFix 용 실행 파일이 다운로드되면 데스크탑으로 이동하십시오.

손상된 opencl.dll 파일을 복구 / 교체하기 위해 SFCFix에 필요한 모든 것을 포함 하는 ZIP 파일. ZIP 파일에 액세스하려면 웹 사이트에서 등록하라는 메시지가 표시됩니다. 완전 무료이므로 그렇게해야합니다.

sfcfix.zip이 다운로드되면 데스크탑으로 이동하십시오. 열려있는 모든 프로그램을 닫습니다. ZIP 파일을 SFCFix 프로그램의 실행 파일로 끌어다 놓으십시오.

SFCFix가 시작되어 손상된 dll 파일에 대한 수정 사항을 적용하기 시작합니다. 그것이 마법을 발휘하게하십시오.

SFCFix가 완료되면 SFCFix.txt데스크탑에 이름이 지정된 파일이 작성됩니다 . 이 파일을 열고 SFCFix가 손상된 opencl.dll 파일을 복구 / 복제하는 데 성공한 경우,

핫픽스 ZIP 없이 SFCFix.exe 파일을 실행하면 시간이 오래 걸리지 않고 ZIP 파일 끌어서 놓기 방법으로 실행해야하며 결과는 거의 즉각적입니다.


0

DISM 기술 자료 기사에 따라 esd 이미지를 활용할 수 있어야합니다. ESD (Electronic Software Delivery) 이미지는 단순히 WIM의 암호화 된 버전이며 WIM 형식보다 훨씬 더 나은 압축 알고리즘을 사용합니다 (일반적으로 약 1.5 배 더 나은 압축).

모두 ESD가 있지만 WIM을 사용하려는 경우 DISM export 명령을 사용하여 ESD를 WIM으로 변환 할 수 있습니다. 내보내기 또는 캡처 명령에서 / compress : recovery를 지정하여 WIM을 ESD로 변환 할 수도 있습니다. 하나를 다른 것으로 변환하는 것은 리소스를 많이 사용하므로 이로 인해 몇 년 전에 작성되었으며 MSFN 포럼에서 사용할 수있는 ESD to WIM 스크립트를 사용하는 것이 좋습니다. 스크립트를 사용하면 시스템 리소스의 ~ 50 %만이 내보내기 전용이며 일반적으로 내보내기에 사용되는 90 % 이상입니다.


0

방금 다른 Windows 10 Pro x64 컴퓨터로 가서 같은 디렉토리에서 opencl.dll 파일을 복사했습니다. 그런 다음 나쁜 opencl.dll의 소유권을 가져 와서 이름을 opencl.old로 바꾸고 새 사본으로 복사했습니다. 안전 모드로 다시 부팅하고 sfc / scannow를 실행하면 정상으로 돌아옵니다. 필자의 경우 이것은 cbs.log에 나열된 유일한 나쁜 파일이었습니다 ... 손상된 파일이 많고 각각 개별적으로 패치하고 싶지 않은 경우 sfc가 더 ​​나은 위치를 알 수 있습니다. 그러나 문제가 하나의 dll이면 간단한 사본이 작동하는 것 같습니다.


0

install.esd제작자 업데이트 설치 미디어의 설치 이미지 ( )가 여기에 설명 된 DISM 방법과 호환되지 않는 것 같습니다. 0x800f081f어떤 종류의 명령을 입력하든 오류가 발생 합니다. 또한 install.wimESD 파일 에서 올바른 파일 을 추출하는 데 도움이되지 않습니다 . 마지막으로 WIM 파일 마운트도 시도하지 않았습니다.

https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723 에서 토론도 참조 하십시오.

업데이트 : 지속 오류는 dism 명령 또는 wim 파일과 관련이 없습니다. 사용 가능한 소스가없는 Microsoft-Windows-TestRoot-and-FlightSigning-Package라는 패키지 때문입니다. 파일은 C : \ Windows \ Servicing \ Packages에 있으며 다른 곳으로 옮겨야합니다. 또한 레지스트리에 삭제해야 할 두 개의 참조가 있습니다. 자세한 내용은 연결된 sysnative 스레드를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.