RSS

Category Archives: Bilgisayar

KB5122882 0x8007000D Hatası: Windows Server 2022 Kesin Çözümü

Windows Server 2022 üzerinde KB5122882 toplu güncellemesini kurmaya çalışırken sürekli 0x8007000D hatasıyla karşılaştım. Microsoft bu kodu “The data is invalid / Veriler geçersiz” olarak tanımlıyor; ancak bu vaka klasik Windows Update önbelleği bozulmasından daha derin çıktı.

Windows Update bileşenlerini sıfırlamak, DISM ve SFC çalıştırmak, güncellemeyi Microsoft Update Catalog üzerinden indirip çevrimdışı kurmak sorunu çözmedi. Kesin teşhis ancak CBS.log içindeki delta hydration hataları incelendiğinde kondu.

Bu yazıda sorunun başından sonuna kadar uyguladığım adımları, işe yaramayan standart yöntemleri ve güncellemeyi başarıyla kurduran çözümü derledim.

Ortam ve belirti

  • İşletim sistemi: Windows Server 2022 Standard, 21H2
  • Başlangıç derlemesi: 20348.2461
  • Hedef güncelleme: KB5122882
  • Hedef derleme: 20348.5622
  • Hata kodu: 0x8007000D / Error 13

Windows Update kurulumu belirli bir noktaya kadar ilerliyor, ardından “Veriler geçersiz” hatasıyla geri dönüyordu. Yeniden başlatma bekleyen bir işlem yoktu ve ilk sağlık kontrollerinde component store bozulması görünmüyordu.

İlk uygulanan standart onarımlar

İlk şüphe Windows Update önbelleğiydi. İlgili servisleri durdurup SoftwareDistribution ve catroot2 klasörlerini yeniden oluşturdum:

net stop wuauserv
net stop bits
net stop cryptsvc

ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old

net start cryptsvc
net start bits
net start wuauserv

Ardından sunucuyu yeniden başlatıp sistem dosyalarını denetledim:

DISM /Online /Cleanup-Image /ScanHealth
sfc /scannow

İlk SFC turu bazı dosyaları düzeltti. İkinci tur temiz tamamlandı. Buna rağmen KB5122882, Windows Update üzerinden yeniden denendiğinde yine 0x8007000D ile başarısız oldu.

Çevrimdışı MSU kurulumu da başarısız oldu

Bir sonraki adım Microsoft Update Catalog’dan resmi MSU paketini indirip Windows Update istemcisini devreden çıkarmaktı:

wusa.exe C:\Temp\KB5122882.msu /quiet /norestart

Aynı hata devam edince MSU paketini açıp doğrudan DISM ile eklemeyi denedim:

DISM /Online /Add-Package /PackagePath:C:\Temp\KB5122882 /NoRestart

Bu deneme de yüzde 100’e kadar ilerleyip 0x8007000D ile sonuçlandı. Böylece problemin Windows Update önbelleğinden veya yalnızca WUSA katmanından kaynaklanmadığı kesinleşti.

Asıl ipucu CBS.log içindeydi

Windows dizinindeki Logs/CBS/CBS.log dosyasındaki son hataları süzdüğümde aşağıdaki yapıda kayıtlar gördüm:

Hydration failed for component ...
on file ... with NTSTATUS -1073283059
Matching Component = ...
FileHasForwardReverseDeltas = false
GenerateReverseDelta = true

Hatalar tek bir dosyaya bağlı değildi. Lisanslama, kullanıcı arabirimi, ses, kimlik doğrulama ve Terminal Services bileşenlerinde hem amd64 hem de wow64 dosyaları etkileniyordu. Örnekler arasında şunlar vardı:

  • DefaultPpd-csvlk-pack-ppdlic.xrm-ms
  • twinui.appcore.dll.mun
  • sppcomapi.dll ve sppcomapi.dll.mun
  • LicensingUI.exe ve slui.exe
  • SpeechUX.dll, SpeechUXWiz.exe ve SPTIP.DLL
  • eappgnui.dll ve dsdmo.dll
  • rdvvmtransport.dll

Kök neden: delta hydration zinciri

Windows toplu güncelleme paketleri her dosyanın tamamını taşımak yerine bazı bileşenlerde ileri ve geri delta dosyaları kullanabiliyor. CBS, mevcut dosyadan hedef sürümü üretmeye çalışırken bu delta zincirini kuramadığı için paketi “veri geçersiz” hatasıyla durduruyordu.

İlginç olan şuydu: mevcut tam dosyanın hash değeri doğruydu. Sorun doğrudan hedef ileri deltasını mevcut dosyaya uygulama aşamasındaydı. Çalışan zincir şu oldu:

  1. Kurulu tam dosyaya, kurulu bileşenin r klasöründeki geri delta uygulandı.
  2. Böylece güncellemenin beklediği temel sürüm yeniden üretildi.
  3. Bu temel sürüme KB5122882 paketindeki f ileri deltası uygulandı.
  4. Üretilen hedef dosyanın SHA-256 değeri, resmi Microsoft manifestindeki DigestValue ile karşılaştırıldı.
  5. Yalnızca hash birebir eşleştiğinde tam dosya açılmış pakete yazıldı ve ilgili ileri delta kaldırıldı.

Delta işlemleri Windows’un kendi msdelta.dll kitaplığındaki ApplyDeltaB fonksiyonuyla yapıldı. Bu aşamada hash kontrolü kritik: üretilen dosya resmi manifestteki değerle eşleşmiyorsa kuruluma devam edilmemeli.

Neden işlem birkaç tur sürdü?

CBS ilk karşılaştığı bozuk delta grubunda kurulumu durduruyordu. İlk bileşenler onarıldıktan sonra paket yeniden çalıştırıldığında bir sonraki grup görünür hale geldi. Bu nedenle akış birkaç kez tekrarlandı:

DISM ile kurmayı dene
→ CBS.log içindeki yeni hydration hatalarını bul
→ İlgili hedef dosyaları üret ve hash doğrula
→ Paketi yeniden kur

Son turda amd64 bileşenler geçildi, ardından aynı dosyaların wow64 karşılıkları ortaya çıktı. Onlar da aynı yöntemle üretildikten sonra paket, önceki hata noktasını geçti ve kurulumu tamamladı.

Başarılı kurulum

Düzeltilmiş ve manifest hashleri doğrulanmış açılmış paket şu komutla tekrar kuruldu:

DISM /Online /Add-Package /PackagePath:C:\Temp\KB5122882-expanded /NoRestart

Bu kez sonuç:

The operation completed successfully.
EXIT=3010

3010, kurulumun başarılı olduğunu ve tamamlanması için yeniden başlatma gerektiğini ifade ediyor. Sunucu yeniden başlatıldı ve Windows giriş ekranına ulaştıktan sonra guest agent üzerinden kontroller yapıldı.

Kurulum sonrası doğrulamalar

Yalnızca “kurulum başarılı” mesajıyla yetinmedim. Paket, derleme, component store ve servisleri ayrı ayrı doğruladım:

Get-HotFix -Id KB5122882

DISM /Online /Get-PackageInfo  /PackageName:Package_for_RollupFix~31bf3856ad364e35~amd64~~20348.5622.1.23

DISM /Online /Cleanup-Image /CheckHealth
sfc /scannow

İlk reboot sonrasında sonuçlar şöyleydi:

  • Windows derlemesi 20348.5622 oldu.
  • Get-HotFix, KB5122882’yi gösterdi.
  • Paket durumu Installed olarak doğrulandı.
  • CBS ve Windows Update reboot bayrakları temizdi.
  • SSH, Terminal Services, IIS ve QEMU Guest Agent servisleri çalışıyordu.

Ancak ilk CheckHealth sonucu component store’u “repairable” olarak işaretledi. Bu nedenle işi burada bırakmadım:

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
DISM /Online /Cleanup-Image /CheckHealth

RestoreHealth başarıyla tamamlandı. Son SFC taraması “Windows Resource Protection did not find any integrity violations” sonucunu verdi. Nihai CheckHealth çıktısı ise:

No component store corruption detected.
The operation completed successfully.

Sonuç

Bu vakada 0x8007000D, ne basit bir Windows Update önbelleği problemi ne de klasik component store bozulmasıydı. Sorun, kurulu bileşenlerle KB5122882 paketindeki ileri deltalar arasındaki hydration zincirinin kurulamamasıydı.

Kesin çözüm; CBS logundan hatalı bileşenleri tespit etmek, kurulu sürümün geri deltasından beklenen temeli üretmek, hedef ileri deltasını bu temele uygulamak ve ortaya çıkan her dosyayı resmi manifest hashine göre doğrulamaktı.

Önemli not: Bu yöntem ileri seviye bir servicing müdahalesidir. Yalnızca Microsoft’tan indirilen resmi ve imzası geçerli paketlerle çalışılmalı, her üretilen dosya manifest hashine göre doğrulanmalı ve işlem öncesinde geri dönüş planı hazırlanmalıdır. Hash doğrulaması olmadan component store içine dosya taşınmamalıdır.

 

Posted by on 12 Eylül 2026 in Bilgisayar, Server

Leave a comment

Tags: , , , , ,

Kaligrafi Çalışma Kağıdı İndir

İstediğiniz ölçülerde Kaligrafi çalışma kağıdı indirmek için bu siteyi kullanabilirsiniz. Kağıt boyutu, uç kalınlığı, yazı eğimi açısı vb. seçenekler ile kaligrafi çalışma kağıdı indirmek için özel bir site:

Siteye gitmek için resme tıklayın.

Arama Terimleri:

 

Posted by on 04 Aralık 2018 in Bilgisayar

Leave a comment

PHP CLI define configuration directive

Komut satırından (CLI: Command Line Interface) PHP scripti çalıştırırken, scriptin sağlıklı çalışması için daha yüksek memory limit ihtiyacınız olabilir. Bunu “-d” yada “-define” parametresini komutta kullanarak yapabilirsiniz.
Bu seçeneği kullanarak diğer php.ini’deki ayarları sadece bu komutla çalıştırdığınızda geçerli olmak üzere değişiklik de yapabilirsiniz. Örnek olarak memory_limit değişkenini şöyle değiştiriyoruz:
php -d memory_limit=128M script.php
Bu seçenek size sadece php.ini içinde izin verilen herhangi bir konfigürasyon seçeneğini ayarlamanıza olanak verir.

Php Manual’da -d foo[=bar] Define INI entry foo with value 'bar' şeklinde açıklanıyor.

 

Posted by on 25 Ocak 2016 in Bilgisayar, Programlama

Leave a comment

Üst Menüye Tıklamayı Engelleme

var $j = jQuery.noConflict();
$j(document).ready(function () {
    $j("li:has(ul)").children("a").click(function () {
        return false;
    });
});
 

Posted by on 15 Şubat 2015 in Web

Leave a comment

Resolved: windows failed to load because the system registry file is missing or corrupt

The problem is

Windows could not start because the following file (\WINDOWS\SYSTEM32\CONFIG\SYSTEM) is missing or corrupt:


Windows failed to start. A recent hardware or software change might be the cause. To fix problem:

1. insert your windows installation disc and restart your computer.
2. choose your language settings, and click next
3. click "repair your computer"

If yo do not have this disc, contact your administrator system administrator or computer manufacture for assistance.

file: \windows\system32\config\system
status: 0xc0000098
info : windows failed to load because the system registry file is missing or corrupt

In our case your windows is Windows 7

This problem is exactly the file “\Windows\system32\config\system” may be missing or corrupted and the windows is already have a backup for this file all you need is to copy the backup file to the the current one and restart like the following

With the Windows 7 CD or usb Key boot the system.
Open a command prompt in the recovery console. (Shift + F10)
go to file location (may be windows appear in D not C because usually there is 100 MB may be invisible for booting)

cd c:\Windows\system32\config
ren SYSTEM SYSTEM.BACKUP
copy regback\SYSTEM SYSTEM

Reboot the system.

 

Posted by on 13 Kasım 2014 in Bilgisayar

Leave a comment