CMD ile Bootrec Kullanarak Windows Önyükleme Onarımı

Windows sunucu ortamlarında en stresli anlardan biri, sisteminizin önyükleme yapamamasıdır. Özellikle production ortamında çalışan bir Windows Server’ın açılmaması, her dakikanın kritik olduğu anlarda sizi ciddi bir baskı altına sokar. Bu tür durumlarda paniklemek yerine, elinizin altında güçlü bir araç seti olduğunu bilmek büyük fark yaratır. bootrec.exe ve CMD kombinasyonu, çoğu önyükleme sorununu çözebilecek kapasitede bir araçtır ve doğru kullanıldığında sisteminizi kısa sürede ayağa kaldırabilirsiniz.

Önyükleme Sorunlarını Anlamak

Windows önyükleme süreci aslında birden fazla bileşenin sıralı çalışmasına dayanır. Bu zincirin herhangi bir halkası kırıldığında sistem açılmayı reddeder. Sorunun kaynağını anlamadan rastgele komutlar çalıştırmak, zaman kaybettirir ve bazen durumu daha da kötüleştirir.

Önyükleme sürecindeki temel bileşenler şunlardır:

  • MBR (Master Boot Record): Diskin ilk sektöründe yer alan, işletim sisteminin nerede olduğunu gösteren küçük kod bloğu
  • VBR (Volume Boot Record): Aktif bölümün başındaki, önyükleyiciyi başlatan kod
  • BCD (Boot Configuration Data): Windows Vista ve sonrasında kullanılan, önyükleme ayarlarını tutan veritabanı
  • Bootmgr: Windows’un ana önyükleme yöneticisi
  • Winload.exe: Çekirdek ve sürücüleri belleğe yükleyen bileşen

Bu bileşenlerden herhangi birinde yaşanan bozulma, farklı hata mesajlarıyla karşınıza çıkar. “Bootmgr is missing”, “Operating System not found”, “NTLDR is missing” veya sadece siyah ekran gibi mesajlar, sorunun hangi katmanda olduğuna dair ipucu verir.

Kurtarma Ortamına Erişmek

bootrec.exe aracı, normal Windows oturumundan çalıştırılamaz. Bu araca erişmek için Windows Recovery Environment (WinRE) veya Windows kurulum medyasına ihtiyaç duyarsınız.

Kurulum Medyasından Önyükleme

En güvenilir yöntem, bir Windows Server kurulum USB’si veya ISO’su kullanmaktır. Sistemi bu medyadan önyükledikten sonra:

  1. Dil seçimi ekranında “Next” butonuna tıklayın
  2. Sol altta beliren “Repair your computer” seçeneğini seçin
  3. “Troubleshoot” > “Advanced options” > “Command Prompt” yolunu izleyin

Artık komut satırındasınız ve bootrec komutlarını çalıştırmaya hazırsınız.

WinRE Üzerinden Erişim

Eğer sistem kısmen başlıyorsa ve WinRE bölümü sağlamsa, önyükleme sırasında F8 tuşuna basarak gelişmiş başlangıç seçeneklerine ulaşabilirsiniz. Oradan da “Command Prompt” seçeneğine geçebilirsiniz.

Bootrec Araçlarının Kullanımı

Kurtarma ortamındaki CMD’de artık ana araçlarımıza geçebiliriz. bootrec.exe dört temel parametre sunar ve her biri farklı bir sorunu hedef alır.

/fixmbr Parametresi

MBR bozulduğunda veya üzerine zararlı yazılım yerleştiğinde kullanılır. Bu komut, mevcut bölüm tablosuna dokunmadan sadece MBR kodunu yeniden yazar.

bootrec /fixmbr

Bu komutu çalıştırdığınızda “The operation completed successfully” mesajını görmelisiniz. Eğer disk erişim hatası alırsanız, fiziksel disk sorununu araştırmanız gerekebilir.

Dikkat: Bu komut bölüm tablosunu silmez, sadece önyükleme kodunu yeniler. Bununla birlikte, özellikle dual-boot sistemlerde bu komutu çalıştırmadan önce ne yaptığınızı iyi bilmeniz gerekir. GRUB gibi başka bir önyükleyici kullanıyorsanız, /fixmbr çalıştırmak Linux bölümünüze erişimi geçici olarak kesebilir.

/fixboot Parametresi

Aktif bölümün Volume Boot Record’unu yeniden yazar. Özellikle disk hatalarından veya yanlış bölümleme işlemlerinden sonra VBR bozulabilir.

bootrec /fixboot

Bu komut bazen “Access is denied” hatası verebilir. Bu durumda önce aktif bölümü kontrol etmeniz ve gerekirse yeniden aktif hale getirmeniz gerekir. Bunu diskpart ile yapabilirsiniz:

diskpart
list disk
select disk 0
list partition
select partition 1
active
exit
bootrec /fixboot

/scanos Parametresi

Bu parametre, diskteki tüm Windows kurulumlarını tarar ve BCD veritabanına eklenip eklenmediğini kontrol eder. Sorun giderme sürecinde ilk çalıştırmanız gereken komutlardan biridir.

bootrec /scanos

Çıktıda “Windows installations: 1” gibi bir sonuç görürseniz, sistem Windows kurulumunu tespit etmiş demektir. “Total identified Windows installations: 0” çıktısı ise farklı bir soruna işaret eder; bu durumda BCD yeniden oluşturmanız gerekebilir.

/rebuildbcd Parametresi

En kapsamlı parametre budur. Tüm diskleri Windows kurulumları için tarar ve BCD veritabanını sıfırdan oluşturur. /scanos ile kurulum bulunduğunda ama sistem yine de açılmıyorsa bu komutu kullanırsınız.

bootrec /rebuildbcd

Komut çalışırken size “Add installation to boot list? Yes/No/All” şeklinde soru soracaktır. Kendi kurulumunuzu listede görüyorsanız Y yazıp Enter’a basın. Birden fazla kurulum varsa ve hepsini eklemek istiyorsanız A seçebilirsiniz.

Gerçek Dünya Senaryosu: Ani Güç Kesintisi Sonrası Bozulan BCD

Bir müşterimizin Windows Server 2019 makinesi, kesintisiz güç kaynağı arızası nedeniyle yazma işlemi sırasında kapanmıştı. Sunucu yeniden başlatıldığında “Boot Configuration Data file is missing” hatasıyla karşılaştık. BCD dosyası bozulmuş ya da tamamen silinmişti.

Bu senaryoda adım adım izlediğimiz yol şuydu:

bootrec /scanos

Çıktı “0 Windows installations” gösterdi. Bu, BCD’nin sistemi artık tanımadığı anlamına geliyordu.

bootrec /rebuildbcd

Komut Windows kurulumunu tespit etti ve listeye ekledik. Ancak yeniden başlatma sonrasında yine hata aldık. Bu sefer daha derinlemesine bir yaklaşım gerekiyordu.

bcdedit /export C:BCD_Backup
attrib C:bootbcd -h -r -s
ren C:bootbcd bcd.old
bootrec /rebuildbcd

Bu adımlarla önce mevcut BCD’yi yedekledik, sonra eski BCD dosyasını gizli/salt okunur özelliklerinden arındırıp yeniden adlandırdık ve ardından temiz bir BCD oluşturduk. Bu sefer sistem başarıyla açıldı.

BCD ile Manuel Müdahale

Bazen bootrec tek başına yeterli olmaz ve bcdedit aracıyla BCD üzerinde daha ince ayar yapmanız gerekir. Kurtarma CMD’sinden çalışan bu araç, önyükleme girdilerini düzenlemenize olanak tanır.

Mevcut BCD içeriğini görüntülemek için:

bcdedit /enum all

Bu komutun çıktısı size tüm önyükleme girdilerini, tanımlayıcılarını (GUID) ve önemli parametrelerini gösterir. Burada özellikle device ve osdevice değerlerinin doğru bölümü işaret edip etmediğini kontrol etmeniz önemlidir.

Eğer bir önyükleme girdisinin aygıt yolunu düzeltmeniz gerekiyorsa:

bcdedit /set {default} device partition=C:
bcdedit /set {default} osdevice partition=C:

Önyükleme yöneticisinin yolunu düzeltmek için:

bcdedit /set {bootmgr} device partition=DeviceHarddiskVolume1

Diskpart ile Bölüm Kontrolü

Önyükleme sorunlarının bir kısmı aslında bölüm yapısıyla ilgilidir. Sistem bölümü aktif değilse veya sürücü harfleri karışmışsa, bootrec komutları tek başına işe yaramaz.

diskpart
list volume

Bu komut size tüm birimleri ve özelliklerini listeler. Burada dikkat etmeniz gereken noktalar şunlardır:

  • Windows’un kurulu olduğu bölümün Status sütununda “Healthy” yazması
  • Sistem bölümünün (genellikle küçük bir NTFS veya FAT32 bölümü) aktif olarak işaretlenmesi
  • Sürücü harflerinin mantıklı biçimde atanmış olması

Aktif bölümü belirlemek ve gerekirse değiştirmek için:

diskpart
list disk
select disk 0
list partition
select partition 1
detail partition

Eğer “Active: No” görüyorsanız ve bu sistem bölümü olmalıysa:

active
exit

EFI/UEFI Sistemlerde Önyükleme Onarımı

Modern sunucularda BIOS değil UEFI kullanıldığından, önyükleme onarım süreci biraz farklılık gösterir. UEFI sistemlerde MBR yerine GPT bölümleme şeması ve EFI System Partition (ESP) bulunur.

ESP’yi bulup bağlamak için:

diskpart
list disk
select disk 0
list partition

ESP genellikle 100-500 MB arasında bir FAT32 bölümüdür. Bu bölümü bir sürücü harfine bağlayın:

select partition 1
assign letter=Z
exit

Ardından EFI önyükleme dosyalarını onarın:

cd /d Z:EFIMicrosoftBoot
bootrec /fixboot

Eğer EFI klasörü tamamen bozulmuşsa veya eksikse, bcd dosyasını yeniden oluşturmanız gerekir:

bcdboot C:Windows /s Z: /f UEFI

Bu komut, C: sürücüsündeki Windows kurulumunun önyükleme dosyalarını Z: üzerindeki ESP’ye kopyalar ve UEFI için gerekli BCD girdilerini oluşturur.

Gerçek Dünya Senaryosu: Güncellemeden Sonra Açılmayan Sunucu

Bir Windows Server 2016 makinesi, belirli bir güvenlik güncellemesi sonrasında mavi ekran verir ve tekrar açılmaya çalışırken “Winload.exe is missing or corrupt” hatasıyla donuyordu.

Kurtarma CMD’sinden şu adımları izledik:

bcdedit /enum all

Çıktıda winload.exe yolunun yanlış bölümü işaret ettiğini gördük. Büyük ihtimalle güncelleme sırasında sürücü harfleri geçici olarak değişmiş ve BCD bu hatalı durumla kalmıştı.

bcdedit /set {default} osdevice partition=C:
bcdedit /set {default} device partition=C:
bcdedit /set {default} path Windowssystem32winload.exe
bcdedit /set {default} systemroot Windows

Bu düzeltmelerden sonra sistemi yeniden başlattık ve sorunsuz açıldı. Şunu belirtmek gerekir: Bu tür sorunlarda “hızlı çözüm” diye bilinen /fixmbr + /fixboot + /rebuildbcd üçlüsünü körü körüne çalıştırmak her zaman işe yaramaz. Önce durumu analiz etmek, sonra hedefe yönelik müdahale yapmak çok daha verimlidir.

Chkdsk ile Disk Bütünlüğü Kontrolü

Önyükleme onarımı yaparken sıklıkla gözden kaçan bir adım, dosya sistemi bütünlüğünün kontrolüdür. MBR ve BCD sağlam görünse bile dosya sistemi seviyesindeki bozulmalar önyüklemeyi engelleyebilir.

Kurtarma ortamından disk kontrolü çalıştırmak için:

chkdsk C: /f /r /x

Bu parametrelerin anlamları şöyle:

  • /f: Bulduğu hataları otomatik düzeltir
  • /r: Bozuk sektörleri tespit eder ve kurtarılabilir veriyi okumaya çalışır
  • /x: Diski önce bağlantısından koparır, kurtarma ortamında bu genellikle otomatik gerçekleşir

Chkdsk çalışmasını tamamladıktan sonra, eğer hatalar düzeltildiyse yeniden başlatmadan önce bootrec adımlarını tekrarlayın.

Sistem Dosyası Bütünlüğü Kontrolü

Önyükleme sorunları bazen Windows sistem dosyalarının bozulmasından kaynaklanır. sfc /scannow bu durumda işe yarar ancak normal Windows oturumundan çalıştırılması gerekir. Kurtarma ortamından çalıştırmak için farklı bir sözdizimi kullanmak zorundasınız:

sfc /scannow /offbootdir=C: /offwindir=C:Windows

Bu komut, C: sürücüsündeki Windows kurulumunu çevrimdışı modda tarar ve bozuk sistem dosyalarını onarır. İşlem biraz uzun sürebilir, sabırla bekleyin.

Otomatik Onarım Döngüsüne Girmiş Sistemler

Bazı durumlarda Windows, otomatik onarım döngüsüne girer: Açılmaya çalışır, onarım ekranı gelir, onarım başarısız olur, yeniden başlar, döngü devam eder. Bu can sıkıcı durumda CMD’ye ulaşmak için otomatik onarım ekranında “Advanced options” > “Command Prompt” yolunu izlemeniz gerekir.

Döngüyü kırmak için bazen şu komutu kullanmak işe yarar:

bcdedit /set {default} recoveryenabled no

Ancak bu komutu sadece onarım tamamlandıktan sonra kalıcı çözüm olarak değil, sorunun nedenini araştırırken geçici olarak döngüyü durdurmak amacıyla kullanın. Sorunu çözdükten sonra kurtarma özelliğini tekrar aktif edin:

bcdedit /set {default} recoveryenabled yes

Logları Okumak ve Sorun Tanımlamak

Kurtarma ortamından erişilebilir olan log dosyaları, önyükleme sorununun gerçek kaynağını anlamanıza yardımcı olur. En çok işe yarayan log dosyası setupact.log ve setuperr.log‘dur.

type C:WindowsPanthersetupact.log | more

Ayrıca Windows Event Log’larına doğrudan kurtarma ortamından erişemezsiniz, ancak sistem açıldıktan sonra Event Viewer’da “System” ve “Application” loglarını incelemek, kök nedeni bulmak açısından kritik öneme sahiptir.

Önleyici Tedbirler

Önyükleme sorunlarıyla bir kez uğraştıktan sonra, bir daha yaşamamak için şu adımları almanızı öneririm:

  • Düzenli sistem yedeklemesi: Windows Server Backup veya üçüncü parti çözümlerle hem sistem durumu hem de tam disk yedeklemesi alın
  • BCD yedeği: BCD’de değişiklik yapmadan önce her zaman bcdedit /export ile yedek alın
  • Kurtarma medyasını hazır bulundurun: Her sunucu versiyonu için kurulum USB’si veya ISO’su erişilebilir bir yerde tutun
  • Snapshot alın: Sanal makinelerde büyük güncellemeler öncesi snapshot almayı alışkanlık haline getirin
  • UPS kullanımı: Özellikle yazma işlemleri sırasında güç kesintisi, disk ve BCD bozulmalarının en yaygın nedenidir

Sonuç

Windows önyükleme sorunları ilk bakışta ürkütücü görünse de bootrec, bcdedit, diskpart ve chkdsk araçlarını doğru sırayla ve doğru parametrelerle kullanmak, durumların büyük çoğunluğunu çözmeye yeterlidir. Önemli olan, panik yapmadan önce sorunu tanımlamak ve her adımı bilinçli atmaktır.

/fixmbr ile başlayıp /fixboot ve /rebuildbcd ile devam eden standart üçlü genellikle MBR/VBR tabanlı sorunları çözer. BCD kaynaklı sorunlarda ise bcdedit /enum all çıktısını okuyarak hedefe yönelik düzeltmeler yapmak çok daha etkilidir. UEFI sistemlerde bcdboot komutunu ve EFI bölümü yönetimini de araç setinize eklemeniz gerekir.

Her sorunun çözümü biraz farklı olabilir, ancak yukarıda anlattığım metodoloji ve araçlar, büyük bir sunucu parkını yöneten bir sistem yöneticisi olarak işinizin büyük bölümünü karşılar. Ve tabii ki her şeyin başı: düzenli yedek almak. Çünkü en iyi önyükleme onarımı, hiç gerekmeyen önyükleme onarımıdır.

Yorum yapın