M.2 / NVMe Disklerde SQL Server Kurulum Hatası: 4 KB Üzeri Fiziksel Sektör Boyutu Sorunu ve Çözümü
Son dönemde özellikle yeni nesil M.2 NVMe SSD kullanılan bilgisayarlarda SQL Server kurulumu sırasında daha önce alışık olmadığımız bazı hatalarla karşılaşılabiliyor.
Kurulum işlemi normal şekilde ilerliyor gibi görünmesine rağmen Database Engine kurulumu başarısız olabiliyor,
SQL Server servisi başlatılamayabiliyor veya kurulum sırasında
** Wait on the Database Engine recovery handle failed ** benzeri hatalar alınabiliyor.
Bu problemlerin nedeni her zaman SQL Server kurulumu, Windows veya SQL Server sürümü olmayabilir.
Bazı yeni NVMe depolama cihazlarında Windows, fiziksel sektör boyutunu **4 KB’dan daha büyük** olarak raporlayabiliyor.
SQL Server ise fiziksel sektör boyutu açısından **512 byte ve 4096 byte (4 KB)** değerlerini destekliyor.
4 KB’dan büyük fiziksel sektör boyutları desteklenmediği için SQL Server kurulumu veya Database Engine’in başlatılması başarısız olabiliyor.
Sorunun temel nedeni nedir?
Disklerde sektör boyutu, işletim sisteminin ve uygulamaların disk üzerindeki fiziksel depolama birimleriyle nasıl çalıştığını belirleyen önemli bir değerdir.
Geleneksel disklerde ve eski SSD/NVMe yapılandırmalarında genellikle 512 byte veya 4096 byte değerleriyle karşılaşılır.
Ancak yeni nesil bazı NVMe cihazlarında, özellikle Windows 11’in modern NVMe sürücüsüyle birlikte,
işletim sistemine **8192 byte veya 16384 byte gibi daha büyük fiziksel sektör boyutları** bildirilebilmektedir.
Bu durum SQL Server açısından önemlidir.
Çünkü SQL Server’ın mevcut destek sınırı **4 KB’dır**.
Yani disk Windows tarafından 8192 veya 16384 byte fiziksel sektör boyutuyla sunuluyorsa SQL Server bu diski desteklenen bir sektör yapısı olarak değerlendiremez.
Bu nedenle problem doğrudan “M.2 disk SQL Server desteklemiyor” şeklinde değerlendirilmemelidir.
Asıl problem: NVMe diskin Windows’a sunduğu fiziksel sektör boyutunun SQL Server’ın desteklediği değerden büyük olmasıdır.
Öncelikle disk sektör boyutunu kontrol edin
SQL Server kurulumuna başlamadan önce, SQL Server’ın kurulacağı veya veritabanı dosyalarının tutulacağı diskin sektör boyutunu kontrol etmek faydalıdır.
Yönetici olarak **PowerShell** veya **Komut İstemi** açarak aşağıdaki komutu çalıştırabilirsiniz:
powershell
fsutil fsinfo sectorinfo C:
Buradaki ‘C:’ örnektir.
SQL Server’ı hangi sürücüye kuracaksanız veya SQL Server veri/log dosyalarını hangi sürücüde tutacaksanız ilgili sürücü harfini kullanmalısınız.
Örneğin: fsutil fsinfo sectorinfo D:
veya: fsutil fsinfo sectorinfo E:
Komut sonucunda özellikle şu iki değere bakılmalıdır:
PhysicalBytesPerSectorForAtomicity
PhysicalBytesPerSectorForPerformance
Microsoft’un önerisine göre bu iki değer aynı değilse **büyük olan değer**,
diskin sektör boyutunu değerlendirirken dikkate alınmalıdır. ‘4096’ değeri 4 KB sektör boyutunu ifade eder.
Örneğin:
——–
PhysicalBytesPerSectorForAtomicity : 4096
PhysicalBytesPerSectorForPerformance : 4096
Bu durumda disk SQL Server açısından desteklenen 4 KB sektör yapısındadır.
Ancak:
PhysicalBytesPerSectorForAtomicity : 16384
PhysicalBytesPerSectorForPerformance : 16384
gibi bir sonuç alınıyorsa, fiziksel sektör boyutu SQL Server’ın desteklediği sınırın üzerindedir.
Hangi sektör boyutları destekleniyor?
Burada önemli bir ayrıntıyı özellikle belirtmek gerekiyor.
SQL Server sürümünün 2019, 2022 veya 2025 olması bu sınırı 8 KB veya 16 KB’a çıkarmıyor.
Güncel Microsoft dokümantasyonuna göre yayımlanmış SQL Server sürümlerinde desteklenen fiziksel sektör boyutları:
**512 byte**
**4096 byte (4 KB)**
4 KB’dan büyük sektör boyutları için yayımlanmış bir SQL Server sürümünde destek bulunmuyor.
Dolayısıyla aşağıdaki gibi bir disk: 8192 byte veya: 16384 byte
raporluyorsa, SQL Server’ın bunu doğal olarak desteklemesi beklenmemelidir.
Bu ayrım önemlidir. Çünkü bazı sistemlerde görülen 8192 veya 16384 değerleri, “SQL Server artık 8 KB/16 KB sektör destekliyor” anlamına gelmez.
Çözüm 1: SQL Server dosyalarını desteklenen başka bir diske taşımak
Eğer sistemde sektör boyutu 512 veya 4096 byte olan başka bir disk mevcutsa, en temiz çözümlerden biri SQL Server dosyalarını bu diskte tutmaktır.
Özellikle birden fazla fiziksel disk bulunan sistemlerde önce:
fsutil fsinfo sectorinfo C:
fsutil fsinfo sectorinfo D:
fsutil fsinfo sectorinfo E:
gibi kontroller yapılarak uygun disk belirlenebilir.
SQL Server’ın kullanacağı veri ve log dosyalarının desteklenen sektör boyutuna sahip bir volume üzerinde bulunması sağlanabilir.
Bu yöntem mümkünse tercih edilebilecek en sade çözümlerden biridir.
Çözüm 2: NVMe sektör boyutunu Windows tarafında 4 KB olarak emüle etmek
Eğer SQL Server’ın mutlaka sektör boyutu 4 KB’dan büyük olarak raporlanan NVMe/M.2 disk üzerine kurulması gerekiyorsa,
Windows tarafında sektör boyutunun 4 KB olarak emüle edilmesi mümkündür.
Microsoft, modern NVMe depolama platformlarında bu amaçla:
* ForcedPhysicalSectorSizeInBytes
registry değerinin kullanılmasını öneriyor. Bu ayar, Windows’un ilgili NVMe sürücüsü üzerinden sektör boyutunu **4 KB olarak emüle etmesini** sağlar.
PowerShell ile ayarın oluşturulması
Yönetici yetkisiyle PowerShell açılarak aşağıdaki komut çalıştırılabilir:
New-ItemProperty
-Path “HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device”
-Name “ForcedPhysicalSectorSizeInBytes”
-PropertyType MultiString
-Force -Value “* 4095”
Buradaki ‘4095’ değerini ilk bakışta görmek biraz şaşırtıcı olabilir.
Bu değer doğrudan “4095 byte sektör kullan” anlamına gelmez.
Microsoft’un önerdiği registry yapılandırması, Windows NVMe sürücüsünün sektör boyutunu **4 KB olarak emüle etmesini** sağlamak için * 4095 değerini kullanır.
* İşlem sonrasında bilgisayar yeniden başlatılmalıdır
Registry değişikliğinin uygulanabilmesi için bilgisayarın yeniden başlatılması gerekir.
Yeniden başlatma sonrasında sektör boyutunu tekrar kontrol etmek önemlidir:
fsutil fsinfo sectorinfo C:
Örneğin işlem öncesinde:
PhysicalBytesPerSectorForAtomicity : 16384
PhysicalBytesPerSectorForPerformance : 16384
olarak görülen değerlerin işlem sonrasında SQL Server açısından desteklenen: 4096 – 4095
seviyesine gelmesi beklenir.
Bu kontrol yapılmadan doğrudan SQL Server kurulumuna geçmek yerine, önce Windows’un yeni sektör değerini doğru şekilde gördüğünden emin olmak daha sağlıklı olacaktır.
* SQL Server kurulumu sonrasında da kontrol edilmeli
Kurulum tamamlandıktan sonra problem tamamen çözülmüş kabul edilmeden SQL Server’ın çalışması kontrol edilmelidir.
Özellikle aşağıdaki durumlar incelenebilir:
* SQL Server Database Engine servisinin başlatılması
* SQL Server ERRORLOG
* SQL Server Setup Summary.txt
* Database Engine recovery handle hataları
* 5178 / 5179 sektör boyutu hataları
* “misaligned log IOs” uyarıları
Microsoft, 4 KB’dan büyük sektör boyutuyla ilişkili problemlerde yalnızca kurulum hatasının değil, SQL Server’ın başlatılması sırasında ortaya çıkan hataların da görülebileceğini belirtiyor.
Örneğin karşılaşılabilecek hatalardan biri:
Error: 5179, Severity: 16, State: 1.
Cannot use file ‘data file path’, because it is on a volume with sector size 8192.
SQL Server supports a maximum sector size of 4096 bytes.
şeklindedir.
Önemli uyarı
‘ForcedPhysicalSectorSizeInBytes’ registry ayarı, diskin fiziksel yapısını değiştirmez.
Burada yapılan işlem:
**NVMe diskin fiziksel sektör boyutunu gerçekten 4 KB’a dönüştürmek değil,
Windows’un depolama katmanında 4 KB sektör boyutunu emüle etmesini sağlamaktır.
Bu nedenle bu işlemi “diski 4 KB’a çevirmek” şeklinde ifade etmek teknik olarak doğru değildir.
Ayrıca Windows Registry üzerinde yapılan değişiklikler sistem davranışını etkileyebileceğinden,
işlem öncesinde registry yedeğinin alınması ve Microsoft’un önerdiği yapılandırmanın aynen uygulanması gerekir.
Microsoft da bu konuda özellikle uyarıda bulunmaktadır.
Kısaca çözüm adımları
Sorun yaşandığında uygulanabilecek işlem sırası şöyledir:
1. SQL Server’ın kurulacağı diski belirleyin
2. Fiziksel sektör boyutunu kontrol edin
fsutil fsinfo sectorinfo C:
3. Şu iki değeri kontrol edin
PhysicalBytesPerSectorForAtomicity
PhysicalBytesPerSectorForPerformance
İki değer farklıysa büyük olanı dikkate alın.
4. Değer 4096 veya daha küçükse
Disk sektör boyutu açısından SQL Server için problem bulunmamaktadır.
5. Değer 4096’dan büyükse
Mümkünse SQL Server dosyalarını sektör boyutu 512 veya 4096 byte olan başka bir diske taşıyın.
6. Diskin değiştirilmesi mümkün değilse
Yönetici PowerShell ile:
New-ItemProperty
-Path “HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device”
-Name “ForcedPhysicalSectorSizeInBytes”
-PropertyType MultiString
-Force
-Value “* 4095”
komutunu çalıştırın.
7. Bilgisayarı yeniden başlatın
8. Sektör boyutunu tekrar kontrol edin
fsutil fsinfo sectorinfo C:
9. Değerin 4096 byte seviyesinde olduğunu doğrulayın
10. SQL Server kurulumunu tekrar çalıştırın
Sonuç
Yeni nesil M.2/NVMe SSD’lerde SQL Server kurulumu sırasında karşılaşılan bazı hataların nedeni doğrudan SQL Server kurulum paketinin bozuk olması veya SQL Server sürümünün Windows ile uyumsuz olması olmayabilir.
Özellikle yeni Windows/NVMe yapılandırmalarında **fiziksel sektör boyutunun 4 KB’dan büyük olarak raporlanması**,
SQL Server’ın kurulmasını veya Database Engine’in başlatılmasını engelleyebilir.
Bu nedenle SQL Server kurulumu başarısız olduğunda yalnızca SQL Server Setup loglarına bakmak yerine, kurulumun yapılacağı diskin fiziksel sektör boyutunu da kontrol etmek gerekir.
İlk kontrol için:
fsutil fsinfo sectorinfo C:
komutu çoğu durumda problemin kaynağını ortaya çıkarmak için yeterlidir.
Eğer fiziksel sektör boyutu 4 KB’dan büyükse, mümkün olan en temiz çözüm desteklenen sektör boyutuna sahip bir volume kullanmaktır.
Bunun mümkün olmadığı modern NVMe sistemlerinde ise Microsoft tarafından önerilen ‘ForcedPhysicalSectorSizeInBytes’
yapılandırmasıyla Windows tarafında 4 KB sektör emülasyonu uygulanabilir.
Özetle: M.2/NVMe disk SQL Server ile uyumsuz olmak zorunda değildir;
ancak Windows’un diski SQL Server’ın desteklediğinden daha büyük bir fiziksel sektör boyutuyla sunması kurulum ve çalışma sorunlarına neden olabilir.

