AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 741487
Accepted
Daniel
Daniel
Asked: 2015-12-09 00:44:07 +0800 CST2015-12-09 00:44:07 +0800 CST 2015-12-09 00:44:07 +0800 CST

Como corrigir opencl.dll corrompido no Windows 10, se o SFC e o DISM estiverem falhando?

  • 772

Levei várias horas para corrigir o problema porque o armazenamento de componentes local foi corrompido e os computadores estão acessando um servidor WSUS local em vez do servidor público de atualização da Microsoft (e porque eu uso o Dism muito raramente). Para referência e para ajudar outras pessoas com o mesmo problema, escreverei uma descrição do problema e fornecerei uma solução.

Desde a atualização para o Windows 10 Pro versão 1511 (Build 10586), tenho um problema com um arquivo opencl.dll corrompido em vários locais.

Eu tentei sfc.exe /scannow, mas não conseguiu resolver o problema. As mensagens de erro são, entre outras:

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

Ok, então o problema está claro agora. Infelizmente, o SFC não consegue resolver a corrupção porque o armazenamento de componentes local também foi corrompido. Infelizmente, perdi as mensagens de erro que indicavam a corrupção do armazenamento de componentes.

Então eu tentei Dism /Online /Cleanup-Image /RestoreHealthsem sucesso. Ele falha com o erro 0x800f081f , indicando outro problema com os arquivos de origem.

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]

Observando as mensagens de erro, fica claro que o Windows está configurado para usar nosso servidor WSUS local e, portanto, o Dism não consegue recuperar o arquivo válido dos repositórios. Embora eu tenha certeza de que poderia de alguma forma configurar o WSUS para fornecer os arquivos necessários, não sei como e preciso de uma solução rápida. (Se alguém souber como configurar o WSUS adequadamente, forneça informações).

Limitar o acesso ao armazenamento local adicionando o parâmetro /LimitAccessseria inútil, pois o armazenamento de componentes local também está corrompido, conforme mencionado anteriormente.

Eu experimentei esse problema em duas máquinas. Uma atualização do Windows 10 não corrigiu o problema.

windows-10
  • 9 9 respostas
  • 87808 Views

9 respostas

  • Voted
  1. Best Answer
    Daniel
    2015-12-09T00:58:22+08:002015-12-09T00:58:22+08:00

    Para corrigir esse problema, você precisa ter o ISO da compilação exata que instalou.

    1. Monte a imagem ISO.
    2. Crie um diretório temporário para montar o arquivo de imagem do Windows (WIM).
      mkdir C:\WIM
    3. Monte o arquivo WIM.
      Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
    4. Execute o Dism com os seguintes parâmetros.
      Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
    5. Quando terminar, desmonte a imagem e exclua a pasta
      Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
    6. É obrigatório reiniciar o computador, ou o SFC e o DISM ainda apresentarão erros.

    Isso deve resolver o problema.

    Editar
    Conforme apontado nos comentários, pode haver uma abordagem mais direta. O TL;DR é que não funcionou para mim, daí minha abordagem mais detalhada. Mas estou interessado se você teve algum problema com a abordagem direta. Por favor comente.

    • 43
  2. kapitanrum
    2016-05-17T09:46:27+08:002016-05-17T09:46:27+08:00

    De vários fóruns na Internet, reuni o seguinte procedimento de reparo:

    1. Baixe o MediaCreationTool em http://go.microsoft.com/fwlink/?LinkId=691209
    2. Baixe o Windows 10 Pro ISO com MediaCreationTool.exeparac:\temp\windows.iso
    3. Use 7-zip para extrair o arquivo c:\temp\windows.isopara a pastac:\temp\windows
    4. Converter install.esdparainstall.wim

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

    5. Verifique o índice e a versão do Windows no índice do .wimarquivo
      -é usado para o próximo comando Dism no parâmetro/Source:wim:path_to_wim:[index]

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

    6. Restaure os componentes do Windows de integridade da imagem do Windows baixada e convertida (wim):

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

    7. Reparar arquivos corrompidos:

      sfc /scannow

      Ele irá reparar arquivos corrompidos - mensagem de sucesso:Windows Resource Protection found corrupt files and successfully repaired them.

    8. Reiniciar o Windows
    9. Verifique os arquivos do sistema novamente para garantir o reparo bem-sucedido:

      sfc /scannow

      Mensagem de sucesso após a digitalização:Windows Resource Protection did not find any integrity violations.

    • 10
  3. verdy_p
    2016-06-05T00:43:37+08:002016-06-05T00:43:37+08:00

    Um ESD não é um WIM "criptografado", é um WIM que foi altamente compactado/recodificado de maneira muito diferente (com uma estrutura mais complexa).

    Um WIM é apenas compactado "rápido" por unidades inquebráveis ​​de 4KB ou 16KB, usando uma compactação rápida de Huffmann. Um ESD usa compactação baseada em LZ mais avançada sem limitações de tamanho de bloco. Essa compactação não permite que a imagem seja aberta no modo leitura-gravação, pois a compactação é global (cada arquivo no arquivo não é mais compactado separadamente, vários arquivos lógicos podem compartilhar o armazenamento real de segmentos, para atingir uma compactação mais alta nível, principalmente quando há muitos arquivos pequenos com partes de cabeçalho comuns, como coleções de ícones ou partes de seus dados de assinatura digital, avisos de direitos autorais, cabeçalhos HTML, scripts incorporados e assim por diante).

    Um SWM é um WIM de várias partes que foi dividido em vários arquivos com tamanhos menores com um tamanho máximo (aproximado), mas ainda é gravável e pode ser armazenado em vários DVDs.

    Os provedores CBS permitem vários formatos de arquivamento que podem ser suportados pelo DISM, incluindo WIM, CAB, ZIP, VHD, VHDX, ISOs multisessão... com o Windows 8, apenas o formato WIM era suportado, mas as imagens eram maiores)

    O formato ESD foi ajustado para permitir que a distribuição multilíngue completa do Windows 10 caiba em um único DVD com menos de 3 GB...

    Você pode transformar um ESD em WIM, mas o resultado será um arquivo muito maior. A conversão inversa também é possível (para que você possa ler e gravar no WIM expandido) para empacotá-lo novamente em um novo ESD. Descompactar um ESD para WIM é relativamente rápido, mas compactar um WIM para ESD requer muitos recursos da CPU e é muito mais longo (é por isso que você não pode ler e gravar diretamente em um ESD, mas pode fazer isso facilmente em um WIM com modestos Utilização do CPU).

    Quando você "monta" um ESD com DISM, a primeira coisa que ele fará é expandir o ESD em um armazenamento temporário e agir nele como se fosse um WIM, para que você possa atualizar os arquivos neste armazenamento local. Desmontá-lo exigirá duas etapas: recriar um WIM (bastante rápido) e, em seguida, empacotá-lo novamente em um ESD (muito lento).

    • 4
  4. Neff
    2015-12-22T13:46:35+08:002015-12-22T13:46:35+08:00

    Resolvi o problema com opengl.dll da seguinte forma:

    1. Monte a imagem do 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

    Boa sorte!

    • 2
  5. BRass
    2016-08-27T06:46:43+08:002016-08-27T06:46:43+08:00

    Passei alguns dias percorrendo esses caminhos e finalmente encontrei uma solução para minha situação. Estou executando o Windows 10 versão 1511 Build 10586.545. Aqui está a minha progressão:

    1. Isso começou para mim com uma falha no Windows Update (erro 0x800705b4).
    2. Em seguida, persegui esse erro fazendo a solução de problemas do Windows Update, WUResets, desativando o antivírus etc. Este link é um bom artigo que oferece opções para esse problema (embora não tenham me ajudado)
    3. Em seguida, segui o caminho DISM e SFC. Este post ServerFault foi muito útil nessa tentativa. Infelizmente nenhuma dessas opções ajudou. Sempre fui informado de que tenho um arquivo opencl.dll corrompido e a execução de todos os tipos de variações do DISM /RestoreHealth não funcionou. Continuei obtendo 0x800f081f (os arquivos de origem não foram encontrados)
    4. Em seguida, tentei copiar manualmente o opencl.dll de um ISO limpo para C:\Windows\SysWOW64. Isso nunca funcionou, mesmo depois de mexer com a propriedade, etc. Eu finalmente desativei o driver NVIDIA GeForce GPU no Gerenciador de dispositivos (deixando um driver Intel ainda habilitando a exibição) e consegui copiar o opencl.dll limpo para C:\Windows\ SysWOW64.

    A partir daqui, o Windows Update começou a funcionar novamente.

    Então, em resumo, se você está enfrentando esses erros e nada parece funcionar, tente desabilitar os drivers NVIDIA GeForce e tente algumas dessas etapas (ou copie manualmente em uma versão limpa da DLL).

    • 2
  6. Martin
    2016-06-15T00:26:11+08:002016-06-15T00:26:11+08:00

    Por não ter uma cópia local e, por um motivo separado, incapaz de baixar o arquivo ISO (o ISO não era do tipo Windows 10 que instalei) Existe uma solução de hotfix aqui que usei que envolve o download de um arquivo especializado chamado "SFCFix ":

    SFCFix é um pequeno utilitário brilhante que é capaz de corrigir esse problema para você reparando/substituindo o arquivo dll corrompido.

    Após o download do arquivo executável do SFCFix, mova-o para a área de trabalho.

    Um arquivo ZIP contendo tudo o que o SFCFix precisa para reparar/substituir seu arquivo opencl.dll corrompido. Você será solicitado pelo site a se registrar nele para ter acesso ao arquivo ZIP, você deve fazê-lo, pois é totalmente gratuito.

    Após o download do sfcfix.zip, mova-o para a área de trabalho. Feche todos os programas abertos. Arraste o arquivo ZIP para o arquivo executável do programa SFCFix e solte-o.

    O SFCFix será iniciado e começará a aplicar a correção para o arquivo dll corrompido. Deixe-o fazer sua mágica.

    Depois que o SFCFix estiver pronto, ele criará um arquivo chamado SFCFix.txtna sua área de trabalho. Abra este arquivo e, se SFCFix foi bem sucedido em reparar/substituir seu arquivo opencl.dll corrompido,

    Observe que a execução do arquivo SFCFix.exe sem o hotfix ZIP será um processo longo e lento que alcança muito pouco, você precisa executá-lo com o método de arrastar/soltar arquivo ZIP e o resultado é quase instantâneo.

    • 1
  7. JW0914
    2016-03-16T14:29:01+08:002016-03-16T14:29:01+08:00

    Você deve ser capaz de utilizar uma imagem esd, de acordo com o artigo da technet DISM. Uma imagem ESD (Electronic Software Delivery) é simplesmente uma versão criptografada de um WIM e também utiliza um algoritmo de compactação muito melhor do que o formato WIM (geralmente cerca de 1,5x melhor compactação).

    Se tudo o que você tem é um ESD, mas prefere usar um WIM, você pode converter um ESD em WIM com o comando DISM export. Você também pode converter um WIM em ESD especificando /compress:recovery no comando de exportação ou captura. A conversão de um para o outro requer muitos recursos e, por isso, é recomendável utilizar o script ESD para WIM que foi escrito anos atrás e está disponível no fórum MSFN. Utilizando o script, apenas ~50% dos recursos do sistema são dedicados à exportação, em comparação com os 90%+ que geralmente são utilizados para a exportação.

    • 0
  8. Chris
    2016-08-23T08:44:04+08:002016-08-23T08:44:04+08:00

    Acabei de ir para outra máquina Windows 10 Pro x64 e copiei o arquivo opencl.dll (do mesmo diretório). Em seguida, tomei posse do opencl.dll ruim, renomeei-o para opencl.old e copiei para o novo. Reinicie novamente no modo de segurança e execute sfc /scannow e ele voltará bem. No meu caso, este foi o ÚNICO arquivo ruim listado em cbs.log ... Posso ver onde pode ser melhor ter o sfc funcionando se você tiver muitos arquivos corrompidos e não quiser corrigir cada um individualmente. Mas se o seu problema for apenas uma dll, uma cópia simples parece funcionar.

    • 0
  9. Gerd Röthig
    2017-04-21T09:28:23+08:002017-04-21T09:28:23+08:00

    Parece que a imagem de instalação ( install.esd) da mídia de instalação da atualização do criador é incompatível com o método DISM descrito aqui. Você receberá um erro 0x800f081f, independentemente do tipo de comando digitado. Também não ajuda a extrair o correto install.wimdo arquivo ESD. Por fim, até tentei montar o arquivo WIM sem sucesso.

    Veja também as discussões em https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723

    Atualização: o erro persistente não tem nada a ver com o comando dism ou com os arquivos wim. É devido a um pacote chamado Microsoft-Windows-TestRoot-and-FlightSigning-Package para o qual nenhuma fonte de trabalho está disponível. Os arquivos estão em C:\Windows\Servicing\Packages e devem ser removidos de lá. Além disso, existem duas referências no registro que devem ser excluídas. Consulte o encadeamento sysnative vinculado para obter detalhes.

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve