Windows Server Açılmıyor: Boot Sorunlarını Giderme
Sabahın körü bir telefon geliyor: “Sunucu açılmıyor, sistem çöktü, production durdu.” Bu cümleyi duyan her sysadmin’in içi bir anda sıkışır. Windows Server boot sorunları, kariyerimin en stresli anlarından birkaçını oluşturuyor çünkü hem zaman baskısı var hem de yanlış bir adım sorunu daha da derinleştirebiliyor. Bu yazıda, Windows Server boot sorunlarını sistematik bir şekilde nasıl çözeceğinizi, hangi araçları kullanacağınızı ve gerçek senaryolarda nasıl ilerlemeniz gerektiğini anlatacağım.
Boot Sürecini Anlamak
Sorunu çözmeden önce neyin bozulduğunu anlamak gerekiyor. Windows Server’ın açılış süreci birkaç kritik aşamadan geçiyor:
- POST (Power-On Self-Test): Donanım kendini test ediyor
- BIOS/UEFI: Boot cihazını seçiyor
- MBR veya GPT: Master Boot Record ya da GUID Partition Table okunuyor
- Windows Boot Manager (Bootmgr): Boot menüsünü yönetiyor
- BCD (Boot Configuration Data): Hangi işletim sisteminin yükleneceğini belirliyor
- Winload.exe: Windows çekirdeğini yüklüyor
- Ntoskrnl.exe: Kernel devreye giriyor
- Servisler ve oturum açma ekranı
Bu aşamalardan herhangi birinde bir sorun yaşanırsa farklı hata mesajları karşınıza çıkıyor. Hangi aşamada takıldığını bilmek, çözüm sürecini dramatik biçimde kısaltıyor.
Hata Türlerini Tanımak
“BOOTMGR is missing” Hatası
Bu hata, Windows Boot Manager’ın bozulduğunu veya bulunamadığını gösteriyor. Genellikle yanlış bir partition aktif olarak işaretlendiğinde ya da sistem dosyaları hasar gördüğünde ortaya çıkıyor.
“Winload.exe not found” veya “0xc000000f”
BCD mevcut ama Winload.exe’ye giden yol yanlış ya da dosya silinmiş. Bazen disk harflerinin değişmesi de bu hatayı tetikliyor.
“0xc0000098 – BCD Hatası”
BCD tamamen bozulmuş ya da boş. Bu genellikle en çok zaman alan senaryo çünkü BCD’yi sıfırdan yeniden oluşturmanız gerekiyor.
“0xc000000e – Boot Seçimi Başarısız”
Seçilen boot cihazına erişilemiyor. Disk arızası, kablo sorunu ya da yanlış boot sırası olabilir.
Mavi Ekran (BSOD) ve Yeniden Başlama Döngüsü
Kernel yükleniyor ama driver veya sistem dosyası sorunu nedeniyle crash oluyor. Bu senaryo genellikle güncellemeler veya sürücü değişiklikleri sonrasında karşıma çıkıyor.
İlk Müdahale: WinPE veya Kurtarma Ortamı
Boot sorunu yaşayan bir sunucuya erişmek için Windows kurulum medyası veya WinPE bootable disk gerekiyor. DVD, USB ya da PXE boot üzerinden bu ortama girmeniz lazım.
Sunucu açılışında F8 veya F11 ile boot menüsüne girip kurulum medyasını seçiyorsunuz. Kurulum ekranı geldiğinde “Bilgisayarınızı onarın” veya “Repair your computer” seçeneğini tıklıyorsunuz. Oradan “Troubleshoot > Advanced Options > Command Prompt” yolunu izleyerek komut satırına ulaşıyorsunuz.
BCDBoot ile Hızlı Düzeltme
Çoğu boot sorununun ilk çözüm adımı BCDBoot aracı. Bu komut, boot dosyalarını yeniden oluşturuyor ve BCD’yi yeni baştan düzenliyor.
# Önce disklerinizi listeleyin
diskpart
# Diskpart içinde
list disk
list volume
exit
Volume listesine bakarak Windows’un kurulu olduğu partition’ı ve System Reserved partition’ı tespit ediyorsunuz. Genellikle System Reserved ~500MB boyutundadır.
# Windows kurulu partition'a göre BCDBoot çalıştırın
# C: Windows partition ise:
bcdboot C:Windows /s Z: /f ALL
# Eğer UEFI sistemde sadece EFI için:
bcdboot C:Windows /s Z: /f UEFI
# Eğer Legacy BIOS için:
bcdboot C:Windows /s Z: /f BIOS
Burada /s parametresi system partition’ı belirtiyor. UEFI sistemlerde EFI partition’ını bulmak için diskpart’ta EFI etiketine bakmanız gerekiyor.
BCD’yi Manuel Olarak Yeniden Oluşturmak
BCDBoot yeterli gelmediğinde veya BCD tamamen bozulduğunda manuel yeniden oluşturma şart oluyor. Bu senaryo benim için klasik bir “gece mesaisi” senaryosu.
# Mevcut BCD'yi yedekleyin (açılabiliyorsa)
bcdedit /export C:BCD_Backup
# BCD store bilgisini görüntüleyin
bcdedit /store C:BootBCD /enum all
# BCD'yi tamamen sıfırlayın
bcdedit /deletestore C:BootBCD
# Yeni BCD oluşturun
bcdedit /createstore C:BootBCD
# Windows boot manager girişi ekleyin
bcdedit /store C:BootBCD /create {bootmgr} /d "Windows Boot Manager"
# Boot entry oluşturun
bcdedit /store C:BootBCD /create /d "Windows Server 2019" /application osloader
Son komut size bir GUID üretecek. Bu GUID’i not alın çünkü sonraki adımlarda kullanacaksınız.
# GUID örneği: {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
# Aşağıdaki komutlarda bu GUID'i kullanın
bcdedit /store C:BootBCD /set {GUID} device partition=C:
bcdedit /store C:BootBCD /set {GUID} osdevice partition=C:
bcdedit /store C:BootBCD /set {GUID} path Windowssystem32winload.exe
bcdedit /store C:BootBCD /set {GUID} systemroot Windows
bcdedit /store C:BootBCD /set {GUID} detecthal yes
bcdedit /store C:BootBCD /set {GUID} nx OptIn
# Boot manager'a bu girişi tanıtın
bcdedit /store C:BootBCD /set {bootmgr} default {GUID}
bcdedit /store C:BootBCD /set {bootmgr} displayorder {GUID}
bcdedit /store C:BootBCD /set {bootmgr} timeout 10
SFC ve DISM ile Sistem Dosyalarını Onarmak
BCD düzeltildi ama sistem yine de açılmıyor? Sistem dosyaları hasar görmüş olabilir. Kurtarma ortamından bu araçları çalıştırabilirsiniz.
# Önce Windows partition'ı tespit edin
# Kurtarma ortamında genellikle C: değil D: veya başka bir harf olabilir
# SFC offline modda çalıştırma
sfc /scannow /offbootdir=D: /offwindir=D:Windows
# DISM ile Windows imajını kontrol edin
DISM /Image:D: /Cleanup-Image /CheckHealth
# Daha derin analiz için
DISM /Image:D: /Cleanup-Image /ScanHealth
# Onarım yapmak için (Windows Update veya WIM kaynağı gerekiyor)
DISM /Image:D: /Cleanup-Image /RestoreHealth /Source:E:Sourcesinstall.wim
Burada /Source parametresi kritik. Eğer Windows Update’e erişemiyorsanız kurulum medyasındaki install.wim dosyasını kaynak olarak göstermeniz gerekiyor. E: sürücüsü kurulum medyanızın bulunduğu yer oluyor.
Gerçek Dünya Senaryosu: Yanlış Güncelleme Sonrası Boot Döngüsü
Geçen yıl yaşadığım bir vakayı anlatayım. Bir müşterinin Windows Server 2019 sunucusu, KB güncelleme paketi yüklendikten sonra sürekli BSOD ve yeniden başlama döngüsüne girdi. Hatırlıyorum, saat gece yarısından sonraydı.
Kurtarma ortamına girdim ve önce event loglarını inceledim:
# Event log dosyalarını okumak için wevtutil kullanabilirsiniz
# Önce log dosyasının konumunu bulun
dir D:WindowsSystem32winevtLogs
# System logunu dışa aktarın
wevtutil epl System D:system_log.evtx /lf:true
# Daha basit yaklaşım: son BSOD minidump dosyalarına bakın
dir D:WindowsMinidump
Minidump analizi için başka bir sisteme ihtiyaç duydum. Ama önce problemi daraltmak için safe mode’u denedim:
# BCD'de safe mode aktif edin
bcdedit /set {default} safeboot minimal
# Ağ desteğiyle safe mode
bcdedit /set {default} safeboot network
# Sadece komut satırıyla safe mode
bcdedit /set {default} safeboot minimal
bcdedit /set {default} safebootalternateshell yes
Safe mode açılmayı başardı. Buradan son yüklenen güncellemeleri kaldırdım:
# Yüklü güncellemeleri listeleyin
dism /online /get-packages /format:table | findstr "Package_for_KB"
# Sorunlu güncellemeyi kaldırın
dism /online /remove-package /packagename:Package_for_KB5021655~31bf3856ad364e35~amd64~~10.0.1.0
# Safe boot ayarını geri alın
bcdedit /deletevalue {default} safeboot
Sunucu yeniden başlatıldığında normal açıldı. Toplamda 45 dakika sürdü ama sistematik yaklaşım sayesinde kör bir deneme yanılma döngüsüne girmeden çözdük.
Startup Repair Aracını Kullanmak
Kurtarma ortamında grafik arayüzü tercih ediyorsanız Startup Repair aracı da oldukça işe yarıyor. Ama ben komut satırını tercih ederim çünkü ne yaptığını tam olarak görüyorsunuz.
Yine de bazı durumlarda Startup Repair’i komut satırından tetiklemek mümkün:
# Startup Repair'i manuel başlatın
X:SourcesRecoveryStartRep.exe
# Ya da reagentc ile
reagentc /enable
reagentc /boottore
Disk ve Partition Sorunlarını Tespit Etmek
Boot sorunlarının altında bazen disk veya partition tablosu hasarı yatıyor. Bunu tespit etmek için birkaç araç kullanıyorum.
# CHKDSK ile disk hatalarını tarayın
chkdsk D: /f /r /x
# /f: Hataları düzelt
# /r: Bozuk sektörleri bul ve kurtarılabilir veriyi oku
# /x: Sürücüyü önce zorla unmount et
# Diskpart ile partition durumuna bakın
diskpart
list disk
select disk 0
list partition
detail partition
# Aktif partition'ı kontrol edin (MBR sistemlerde)
select partition 1
active
exit
UEFI sistemlerde “active” komutunun anlamı farklı. UEFI’de EFI System Partition’ın (ESP) doğru şekilde formatlanmış olması gerekiyor:
# EFI partition'ı bulmak ve formatlamak (DİKKATLİ OLUN, veri silinir)
diskpart
list disk
select disk 0
list partition
# EFI partition'ı seçin (genellikle 100-500MB arası FAT32)
select partition 1
format fs=fat32 quick
assign letter=Z
exit
# Sonra BCDBoot çalıştırın
bcdboot C:Windows /s Z: /f UEFI
Hiberfil ve Pagefile Sorunları
Bazen sunucu hiberna modundan çıkarken veya anormal kapanma sonrasında hiberfil.sys bozuluyor ve bu açılışı engelliyor.
# Kurtarma ortamından hiberfil.sys'i silin
del D:hiberfil.sys
# Pagefile.sys de sorun yaratabilir
del D:pagefile.sys
Bu dosyalar sistem yeniden başladığında otomatik olarak yeniden oluşturuluyor. Silmek herhangi bir kalıcı hasara yol açmıyor.
Registry Kurtarma
Bazı kritik durumlarda Windows registry’si hasar görüyor ve sistem hiç açılamıyor. Windows, registry’nin otomatik yedeklerini tutuyor (Windows 10/Server 2019 öncesinde daha güvenilirdi bu özellik).
# Registry yedeklerinin konumu
dir D:WindowsSystem32configRegBack
# Bozulan registry dosyasını yedekle ve yedeği geri yükle
copy D:WindowsSystem32configSYSTEM D:WindowsSystem32configSYSTEM.bak
copy D:WindowsSystem32configRegBackSYSTEM D:WindowsSystem32configSYSTEM
# Aynısını diğer hive'lar için yapın gerekirse
copy D:WindowsSystem32configRegBackSOFTWARE D:WindowsSystem32configSOFTWARE
copy D:WindowsSystem32configRegBackDEFAULT D:WindowsSystem32configDEFAULT
Bu adım riskli, dikkatli olun. Yanlış hive’ı üzerine yazarsanız durum kötüleşebilir. Her zaman önce yedek alın.
Sürücü Sorunlarından Kaynaklanan Boot Problemleri
Bir sürücü güncellemesi sonrası açılmayan sistem senaryosu çok klasik. Özellikle RAID controller, NIC veya ekran kartı sürücüleri bu tip sorunlara yol açıyor.
Safe mode’a girebildiyseniz sorunlu sürücüyü devre dışı bırakmak için:
# Komut satırından sürücü listesi
sc query type= driver state= all
# Sorunlu sürücüyü devre dışı bırak
sc config problematic_driver start= disabled
# Örnek: Üçüncü parti RAID sürücüsü
sc config megasas start= disabled
Eğer hangi sürücünün sorun çıkardığını bilmiyorsanız, minidump analizi yapmanız gerekiyor. Bunun için WinDbg veya BlueScreenView gibi araçları başka bir makinede kullanabilirsiniz.
Hypervisor Ortamlarında Özel Durumlar
VMware, Hyper-V veya başka bir hypervisor üzerinde çalışan sanal Windows Server’lar için birkaç ek seçenek mevcut.
VMware üzerinde:
Sanal makineyi snapshot’tan geri alabilirsiniz. Bu, tüm çabadan daha hızlı sonuç verebilir. Ama snapshot yoksa veya sorun snapshot’tan önce başladıysa yukarıdaki adımları izlemeniz gerekiyor.
Hyper-V üzerinde:
# Hyper-V hostunda PowerShell ile sanal makine durumunu kontrol edin
Get-VM -Name "SunucuAdi" | Select-Object Name, State, Status
# Checkpoint varsa geri dönün
Get-VMCheckpoint -VMName "SunucuAdi"
Restore-VMCheckpoint -Name "CheckpointAdi" -VMName "SunucuAdi"
# Recovery partition mount etmek için
Mount-VHD -Path "C:VMsSunucuAdidisk.vhdx"
Fiziksel sunucularda IPMI/iDRAC/iLO gibi uzaktan yönetim araçları hayat kurtarıyor. Bu araçlar sayesinde fiziksel erişim olmadan sanal konsol açabilir, boot medyası bağlayabilirsiniz.
Önleyici Tedbirler
Boot sorunlarıyla boğuşmak yerine baştan almak daha iyi. Benim kendi ortamımda uyguladığım pratikler:
- Düzenli system state backup: Windows Server Backup veya üçüncü parti araçlarla BCD dahil system state’i yedekleyin
- Snapshot alışkanlığı: Her güncelleme veya büyük değişiklik öncesi hypervisor snapshot’ı veya fiziksel sunucularda bare-metal backup
- Boot medyasını hazır tutun: Güncel bir WinPE USB her zaman erişilebilir yerde olsun
- BCD yedeklemesini otomatize edin:
# Zamanlanmış görev olarak BCD yedekle
bcdedit /export C:BackupBCD_%date:~-4,4%%date:~-7,2%%date:~-10,2%
# PowerShell ile daha temiz format
$date = Get-Date -Format "yyyyMMdd"
bcdedit /export "C:BackupBCD_$date"
- Güncelleme öncesi test ortamı: Production sunucusuna güncelleme atmadan önce test sunucusunda deneyin
- Boot log aktif tutun: Normal çalışma sırasında boot log kaydetmek sorun analizini kolaylaştırıyor
# Boot logging aktif et
bcdedit /set {current} bootlog yes
# Log dosyası: C:Windowsntbtlog.txt
Acil Durum Kontrol Listesi
Gece yarısı çağrı geldiğinde kafam karışmasın diye kendime bir checklist oluşturdum. Siz de bunu kullanabilirsiniz:
- Donanım kontrolü: Kablolar yerinde mi, disk algılanıyor mu, BIOS’ta disk görünüyor mu
- Hata mesajını not al: Ekranda görünen hata kodu veya mesajı kopyala
- Boot ortamına gir: Kurulum USB veya WinPE
- Disk durumu: diskpart ile partition tablosunu kontrol et
- BCDBoot dene: Hızlı çözüm için ilk adım
- SFC/DISM çalıştır: Sistem dosyası bütünlüğünü kontrol et
- Safe mode dene: Sürücü veya servis sorunu mu?
- Event log ve minidump incele: Kök nedeni bul
- Registry yedekten geri yükle: Son çare olarak
Sonuç
Windows Server boot sorunları, panik yapmak için değil sistematik düşünmek için davet ediyor. Çoğu zaman BCD bozulması veya sistem dosyası hasarı gibi birkaç dakikada çözülen sorunlar. Nadiren gerçek bir disk arızası veya derin kernel sorunu çıkıyor karşınıza.
En kritik nokta şu: doğru araçlara erişiminiz olsun. Güncel bir WinPE USB veya kurulum medyası olmadan kurtarma neredeyse imkansız. Bunu bugün hazırlayıp güvenli bir yere koyun, beklemeden.
İkinci kritik nokta: adımları kayıt altına alın. Ne yaptığınızı ve hangi sonucu aldığınızı not almanız, hem o anki sorunu çözmede hem de gelecekteki benzer sorunları daha hızlı atlatmada büyük fark yaratıyor. Yıllar içinde biriktirdiğim notlar, yeni boot sorunlarında benim için en değerli kaynak haline geldi.
Bir dahaki “sunucu açılmıyor” çağrısında soğukkanlı kalın, bu yazıdaki adımları izleyin. Production’ı kurtaracaksınız.
