Server 2019 CU Hatası 0x800f0986: DISM'in Kaçırdığı Bozuk Dosya, MIT Araç Seti
Aylarca süren Server 2019 güncelleme hatasının kök nedeni, DISM/SFC'nin göremediği kısaltılmış bir WinSxS dosyasıydı. msdelta.dll yöntemi ve MIT araç seti.
Production ortamdaki bir Windows Server 2019 SQL sunucusu aylarca her aylık kümülatif güncellemede 0x800f0986 hatasıyla başarısız oldu. SFC, DISM RestoreHealth, Windows Update sıfırlama ve manuel katalog kurulumları gibi standart çözümlerin hiçbiri işe yaramadı; çünkü bozulma, bu araçların derinlemesine doğrulamadığı WinSxS delta zincirinde saklıydı.
Çözüm, CBS'nin kendisinin kullandığı delta motoru olan msdelta.dll'i doğrudan PowerShell'den çağırmaktan geldi. Bir bileşenin delta zincirini her iki yönde de tekrar oynatarak hangi dosyanın bozuk olduğu kesin olarak tespit edilebiliyor. PA30 deltaları hedeflerinin hash'ini içerdiğinden, sorunsuz uygulanan bir delta kendi çıktısını doğrular - bu da bozuk dosyanın gerçek baytlarının, donör sunucu, ISO ya da yerinde yükseltme gerekmeden, diskte zaten var olan verilerden yeniden oluşturulmasını sağlar.
Bu vakada, Microsoft'un kendi ters deltasının tekrar oynatılması, driversipolicy.p7b dosyasının RTM tabanının sessizce 6.630 bayttan 1.395 bayta kısaltıldığını ve o tarihten beri her kümülatif güncellemenin bu yüzden başarısız olduğunu ortaya çıkardı. Yazar; kanıt toplama, karar matrisli zincir tekrarı, doğrulanmış dosya değişimi ve TrustedInstaller sahiplik geri yükleme gibi işlevleri içeren MIT lisanslı genel bir araç seti yayınladı. Ayrıca WinSxS klasör adı kısaltmaları, SxS olmayan bileşenler, sahiplik semantiği ve bozuk bir sistemde DISM /ResetBase çalıştırmanın tehlikeleri gibi zor kazanılmış püf noktalarını da paylaştı.
Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz