SFC ve DISM başarısız olursa, Windows 10'da bozuk opencl.dll nasıl düzeltilir?


33

Yerel bileşen deposu bozulduğundan ve bilgisayarlar Microsoft tarafından genel güncelleştirme sunucusu yerine yerel bir WSUS sunucusuna eriştiğinden (ve çok nadiren Dism kullandığımdan) bu sorunu çözmek birkaç saatimi aldı. Başvuru için ve aynı konuda başkalarına yardım etmek için, bir sorun açıklaması yazıp bir çözüm sunacağım.

Windows 10 Pro Sürüm 1511'e (Build 10586) yükseltildiğinden beri , çeşitli konumlarda bozuk bir dosyalanmış opencl.dll sorunum var .

Denedim sfc.exe /scannow, ancak sorunu çözemedi. Hata mesajları, diğerleri arasında:

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

Tamam, sorun şu anda açık. Ne yazık ki, yerel bileşen deposu da bozulduğundan SFC bozulmayı çözemedi. Ne yazık ki, bileşen deposu bozulmalarını belirten hata mesajlarını kaybettim.

Böylece Dism /Online /Cleanup-Image /RestoreHealthboşuna olmaya çalıştım . Kaynak dosyalarda başka bir sorun olduğunu gösteren 0x800f081f hatasıyla başarısız olur .

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]

Hata mesajlarına bakıldığında, Windows'un yerel WSUS sunucumuzu kullanmaya ayarlandığı ve bu nedenle Dism'in depolardan geçerli dosyayı alamadığı anlaşılıyor. WSUS'yi gerekli dosyaları sağlayacak şekilde bir şekilde yapılandırabileceğimden emin olmama rağmen, nasıl yapabileceğimi bilmiyorum ve hızlı bir düzeltmeye ihtiyacım var. (Birisi WSUS'u buna göre nasıl yapılandıracağını biliyorsa, lütfen bilgi veriniz).

/LimitAccessDaha önce de belirtildiği gibi yerel bileşen deposunun da bozulmuş olması nedeniyle , paragrafı ekleyerek yerel depolamaya erişimi sınırlamak yararsız olacaktır.

Bu konuyu iki makinede yaşadım. Bir yenileme Windows'un 10 sorunu çözmedi.


FWIW burada uzun iplik var answers.microsoft.com/en-us/windows/forum/... bu dll ile ilgili sorunlar hakkında.
Rory

Yanıtlar:


42

Bu sorunu çözmek için, kurduğunuz tam yapının ISO'suna sahip olmanız gerekir.

  1. ISO görüntüsünü bağlayın.
  2. Windows Görüntü Dosyasını (WIM) takmak için geçici bir dizin oluşturun.
    mkdir C:\WIM
  3. WIM dosyasını bağlayın.
    Dism /Mount-Wim /WimFile:D:\sources\install.wim /index:1 /MountDir:C:\WIM /ReadOnly
  4. Dism'i aşağıdaki parametrelerle çalıştırın.
    Dism /Online /Cleanup-Image /RestoreHealth /Source:C:\WIM\Windows /LimitAccess
  5. Tamamlandığında, görüntüyü ayırın ve klasörü silin
    Dism /Unmount-Wim /MountDir:C:\WIM /Discard rmdir C:\WIM
  6. Bilgisayarınızı yeniden başlatmanız zorunludur, yoksa SFC ve DISM yine de hatalar gösterecektir.

Bu sorunu çözmelidir.

Düzenleme
Yorumlarda belirtildiği gibi, daha doğrudan bir yaklaşım olabilir. TL; DR benim için işe yaramadı, bu yüzden daha ayrıntılı yaklaşımım. Ancak doğrudan yaklaşımla ilgili herhangi bir sorunuz varsa ilgileniyorum. Lütfen yorum yapın.


2
WIM'i

3
@ magicandre1981 yorumunuz için teşekkür ederiz. Bunu okudum ve boşuna denedim. Her zaman bir hata ile başarısız oldu, doğru hatırlıyorum 0x800f081f oldu. Dism Komut Satırı Seçenekleri/source:wim resmi belgesinde parametre ile ilgili hiçbir şey bulamadığımı görmek şaşırtıcıydı .
Daniel,

Özellikleri etkinleştirmek için içeriği burada okudum: blogs.technet.com/b/joscon/archive/2013/03/29/…
magicandre1981

2
Bu da diğer kullanıcılar için yardımcı: borncity.com/blog/2015/12/09/... garip olduğunu eserlerini montaj, ancak doğrudan WIM değil geçirerek.
magicandre1981

4
Medya Oluşturma Aracını kullanarak Windows 10 görüntüsünü indirdikten sonra, burada: microsoft.com/en-ca/software-download/windows10 , sonuçta elde edilen img'in monte edilmek için WIM'e dönüştürülmesi gereken bir install.esd vardı. Dism. Bunu yapmak için NTLite kullandım. Ondan sonra, Daniel'in talimatları iyi sonuç verdi. Üçüncü adımdaki / index parametresinin muhtemelen geri yüklediğiniz Windows, Pro veya Home sürümünü yansıtması gerektiğini unutmayın (başka bir deyişle, Pro için / index: 1 ve Home için / index: 2 kullanın)
Eli B.

10

İnternetteki çeşitli forumlardan, onarım prosedürünü izleyerek topladım:

  1. MediaCreationTool’u http://go.microsoft.com/fwlink/?LinkId=691209 adresinden indirin.
  2. Windows 10 Pro ISO indirin MediaCreationTool.exeetmekc:\temp\windows.iso
  3. Dosyayı c:\temp\windows.isoklasöre çıkarmak için 7-zip kullanınc:\temp\windows
  4. dönüştürme install.esdiçininstall.wim

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

  5. İndeksi kontrol et ve .wimdosya
    -indeksindeki windows versiyonu parametrede sonraki Dism komutu için kullanılır./Source:wim:path_to_wim:[index]

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

  6. Sağlık penceresi bileşenlerini indirilen ve dönüştürülen pencereler görüntüsünden geri yükle (wim):

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

  7. Bozuk dosyaları onarın:

    sfc /scannow

    Bozuk dosyaları onaracak - başarı mesajı: Windows Resource Protection found corrupt files and successfully repaired them.

  8. Windows'u yeniden başlatın
  9. Başarılı bir şekilde tamir edildiğinden emin olmak için Sistem dosyalarını tekrar kontrol edin:

    sfc /scannow

    Taramadan sonra başarı mesajı: Windows Resource Protection did not find any integrity violations.


1
Teşekkürler bu nihayet çok uzun zaman önce temiz bir yükleme yaptığım Windows 10 yüklememi düzeltti. Berbat görünüyor ve sfc temiz bir kurulum yaptıktan hemen sonra başarısız oluyor! Her neyse, bu sefer ne kadar sabit kaldığını göreceksin! 1511 build için problem bilinen görünüyor beri Microsoft, hala son onu sabit olmamıştır Bil 10 güncellemesini kazanmak news.softpedia.com/news/... 4. adımı yapmak yoktu ps olsa install.wim beri zaten orada ne zaman I pencereleri ISO çıkarttı.
daveangel

Yanıtınız için teşekkürler. Grafik direktörleri kurduktan sonra sistem dosyası denetleyicisi bozulmuş olacaktır. Ama şimdi sadece SFC / SCANNOW run ile sistemi onarmak için yeterli - Şu anda winsxs klasöründe opencl.dll dosyasının doğru sürümü var gibi görünüyor. Not: Önyüklenebilir ISO indirirseniz 4. adım atılabilir, ancak medya oluşturma aracı yalnızca ESD dosyasını indirir (Windows 10 yükseltmesi için tasarlanmış sürüm). Medya Oluşturma Aracı otomatik yükleme doğru kurulum medya :-) için en iyi seçimdir :-)
kapitanrum

4. Adım (WIM dosyasını ayıklamak) benim için yaptı. Mükemmel rehber Teşekkürler.
Ravi Wallau

1
adım 6 benim için "kaynak dosyalar bulunamıyor" ile başarısız oluyor, hata 0x800f091f
simpleuser

Hata 0x800f091f için googled ve sorun .NET Framework 3.5 yüklemesinde olabilir. Yalnızca 4+ sürümünüz varsa, 3.5 sürümünü de yüklemeyi deneyin. MS kurulum kılavuzunu deneyin: msdn.microsoft.com/en-us/library/hh506443(v=vs.110).aspx
kapitanrum 6:16

4

Bir ESD "şifreli" bir WIM değildir, çok farklı şekilde paketlenmiş / şifrelenmiş bir WIM'dir (daha karmaşık bir yapıya sahip).

Bir WIM, hızlı bir Huffmann sıkıştırması kullanarak, 4KB veya 16KB'lik kırılmaz üniteler tarafından sıkıştırılan "hızlı" dır. Bir ESD, blok boyutu sınırlamaları olmadan daha gelişmiş LZ tabanlı sıkıştırma kullanır. Bu sıkıştırma, sıkıştırma global olduğu için görüntünün okuma-yazma modunda açılmasına izin vermez (arşivdeki her dosya artık ayrı ayrı sıkıştırılmaz, birden fazla mantıksal dosya, daha yüksek bir sıkıştırma elde etmek için bölümlerin gerçek depolamasını paylaşabilir. Özellikle, simgeler koleksiyonları veya dijital imza verilerinin parçaları, telif hakkı bildirimleri, HTML başlıkları, gömülü komut dosyaları vb. gibi ortak başlıkları olan birçok küçük dosya olduğunda,).

SWM, (pürüzlü) bir maksimum boyuta sahip daha küçük boyutlarda birden fazla dosyaya bölünmüş çok parçalı bir WIM'dir, ancak yine de yazılabilir ve birden fazla DVD'de saklanabilir.

CBS sağlayıcıları, WIM, CAB, ZIP, VHD, VHDX, çok oturumlu ISO'lar da dahil olmak üzere DISM tarafından desteklenebilen çeşitli arşivleme formatlarına izin verir ... Ancak Windows, WIM ve ESD formatları için iki yerleşik sağlayıcıyla birlikte gelir (ESD, Windows 10 için yenidir, Windows 8’de, yalnızca WIM formatı destekleniyordu ancak görüntüler daha büyüktü.

ESD formatı, Windows 10'un çok dilli dağıtımının 3GB'tan daha az olan tek bir DVD'ye sığması için ayarlanmış ...

Bir ESD'yi WIM'e dönüştürebilirsiniz, ancak sonuç çok daha büyük bir dosya olacaktır. Tersine dönüştürme de mümkündür (böylece genişletilmiş WIM'de okuma-yazma işlemini yeniden yapmak için) yeni bir ESD'ye yeniden paketlemek mümkündür. Bir ESD'nin WIM'e açılması oldukça hızlıdır, ancak bir WIM'i ESD'ye sıkıştırmak çok fazla CPU kaynağı gerektirir ve çok daha uzundur (bu yüzden doğrudan bir ESD'ye okuma-yazma yapamazsınız, ancak bunu kolayca mütevazı bir WIM'de yapabilirsiniz. CPU kullanımı).

Bir ESD'yi DISM ile "taktığınızda", yapılacak ilk şey ESD'yi geçici bir depoya genişletmek ve WIM gibi davranmaktır, böylece bu yerel depolamadaki dosyaları güncelleyebilirsiniz. Çıkarma işlemi iki adım gerektirir: bir WIM'i yeniden oluşturma (oldukça hızlı) ve ardından bir ESD'ye yeniden paketleyin (çok yavaş).


2

Aşağıdaki gibi opengl.dll sorunu çözüldü:

  1. Windows 10 görüntüsünü bağlayın.

  2. Dism / Online / Temizleme-Resim / Geri YüklemeSağlık / Kaynak: esd: F: \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Windows \ WinSxS \ wow64_microsoft-windows-r ...

  3. sfc / scannow

İyi şanslar!


6
ESD ISO, Windows Resmini geri getirmedi Sen indirebileceğiniz, SADECE WIM ISO kullanmalıdır microsoft.com/en-us/software-download/techbench
23W

2

Birkaç gün bu yollardan geçerek geçirdim ve sonunda durumum için bir çözüm buldum. Windows 10 sürüm 1511 Build 10586.545 kullanıyorum. İşte benim ilerlemem:

  1. Bu benim için bir Windows Update hatasıyla başladı (hata 0x800705b4).
  2. Sonra Windows Update sorun gidericiler, WUResets yapıyor bu hatayı, devre dışı bırakma antivirüs vb .. kovaladı Bu bağlantı (onlar bana yardım etmedi rağmen) bu soruna yönelik seçenekler sunan iyi bir yazı olduğunu
  3. Daha sonra DISM ve SFC yoluna gittim. Bu ServerFault gönderisi bu girişimde çok yardımcı oldu. Ne yazık ki bu seçeneklerin hiçbiri yardımcı olmadı. Ben bozuk opencl.dll dosya olduğunu söylemeye devam etti ve DISM / RestoreHealth her türlü varyasyonlarını çalıştı çalışmadı. 0x800f081f'yi almaya devam ettim (Kaynak dosyalar bulunamadı)
  4. Daha sonra opencl.dll dosyasını temiz bir ISO kaynağından C: \ Windows \ SysWOW64 dizinine el ile kopyalamaya çalıştım. Bu, hiç bir zaman sahip olmadıklarından sonra bile işe yaramadı, vb. Sonunda NVIDIA GeForce GPU sürücüsünü Aygıt Yöneticisi'nde (hala gösterime izin veren bir Intel sürücüsü bırakarak) devre dışı bıraktım ve temiz opencl.dll dosyasını C: \ Windows \ dizinine kopyaladım SysWOW64.

Buradan, Windows Update tekrar çalışmaya başladı.

Bu nedenle, özet olarak, bu hatalarla mücadele ediyorsanız ve hiçbir şey işe yaramazsa, NVIDIA GeForce sürücülerini devre dışı bırakmayı ve ardından bu adımların bazılarını denemeyi deneyin (veya DLL'in temiz bir sürümünü el ile kopyalayın).


1

Yerel bir kopyaya sahip olmadığından ve ISO dosyasını indiremediğinden ayrı bir nedenden dolayı (ISO, yüklediğim Windows 10 türünde değildi) Burada kullandığım bir düzeltme çözümü var "SFCFix" adlı bir uzman dosyasını indirmeyi içeren ":

SFCFix, bozuk dll dosyasını onararak / değiştirerek bu sorunu sizin için çözebilecek olan küçük bir yardımcı programdır.

SFCFix için yürütülebilir dosya indirildikten sonra, Masaüstüne taşıyın.

Bozuk opencl.dll dosyasını onarmak / değiştirmek için SFCFix gereken her şeyi içeren bir ZIP dosyası. ZIP dosyasına erişmek için web sitesine kayıt olmanız istenecek, tamamen ücretsiz olduğu için yapmalısınız.

Sfcfix.zip indirildikten sonra, Masaüstüne taşıyın. Tüm açık programları kapatın. ZIP dosyasını SFCFix programının yürütülebilir dosyasına sürükleyin ve ardından bırakın.

SFCFix başlatılacak ve bozuk dll dosyası için düzeltmeyi uygulamaya başlayacaktır. Bırak sihrini çalışsın.

SFCFix tamamlandığında, SFCFix.txtMasaüstünde bir dosya oluşturacaktır . Bu dosyayı açın ve SFCFix bozuk opencl.dll dosyanızı onarma / değiştirmede başarılı olduysa,

Not SFCFix.exe dosyasını çalıştıran Lütfen bu olmadan gerçekleştirir bu çok az, ZIP dosyası sürükle / bırak yöntemi ile çalıştırmak gerekir ve sonuç neredeyse anlık olduğunu düzeltme ZIP uzun yavaş bir süreç olacaktır.


0

DISM'in teknik makalesine göre esd imajını kullanabilmelisiniz. Bir ESD (Elektronik Yazılım Teslimatı) görüntüsü, bir WIM'in şifrelenmiş bir sürümüdür ve ayrıca WIM formatından daha iyi bir sıkıştırma algoritması kullanır (genellikle yaklaşık 1.5x daha iyi sıkıştırma).

Eğer hepsinde bir ESD varsa, ancak bir WIM kullanmak yerine, bir ESD'yi DISM verme komutu ile WIM'e dönüştürebilirsiniz. Bir WIM'i ESD'ye dönüştürerak / sıkıştırın: Verme veya yakalama komutu içindeki kurtarma komutunu kullanarak da dönüştürebilirsiniz. Birini diğerine dönüştürmek yoğun kaynak kullanımıdır ve bu nedenle, ESD'yi yıllar önce yazılmış ve MSFN forumunda bulunan WIM komut dosyasının kullanılması önerilir. Komut dosyası kullanılarak, sistem kaynaklarının yalnızca ~% 50'si, genellikle dışa aktarma için kullanılan% 90 + 'ya karşı ihracata adanmıştır.


0

Sadece başka bir Windows 10 Pro x64 makineye gittim ve opencl.dll dosyasını (aynı dizinden) kopyaladım. Sonra kötü opencl.dll sahipliğini aldı, opencl.old olarak yeniden adlandırdım ve yenisine kopyaladım. Güvenli modda yeniden başlatın ve sfc / scannow komutunu çalıştırın ve geri dönüşü iyi gelir. Benim durumumda, bu cbs.log'da listelenen SADECE kötü bir dosyaydı ... Çok fazla bozuk dosya varsa ve her birini ayrı ayrı yamalamak istemiyorsanız, sfc iş yapmanın daha iyi nerede olduğunu görebilirsiniz. Ancak, sorununuz sadece bir dll ise, o zaman basit bir kopya işe yarayacak gibi görünüyor.


0

install.esdYaratıcının Güncelleme kurulum medyasındaki yükleme görüntüsünün ( ) burada açıklanan DISM yöntemiyle uyumlu olmadığı görünüyor. Ne 0x800f081ftür bir komut yazdığınız önemli değil, hata alacaksınız . Ayrıca install.wim, ESD dosyasından doğru olanı çıkarmak da yardımcı olmaz . Son olarak, WIM dosyasını boşuna da eklemeyi denedim.

Ayrıca bkz: https://www.sysnative.com/forums/windows-10-a/22564-dism-error-0x800f081f.html#post179723

Güncelleme: Kalıcı hatanın dism komutu veya wim dosyalarıyla ilgisi yoktur. Çalışma kaynakları bulunmayan Microsoft-Windows-TestRoot-and-FlightSigning-Package adlı bir paketten kaynaklanıyor. Dosyalar C: \ Windows \ Servicing \ Packages dizinindedir ve oradan uzaklaştırılmalıdır. Ayrıca, kayıt defterinde silinmesi gereken iki referans vardır. Ayrıntılar için bağlantılı sysnative iş parçacığına bakın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.