This is a known issue, which is documented here:
The document only mentions Windows 11, but the issue also occurs on Windows Server 2022, and the same workaround(s) apply.
In a nutshell:
- Modern SSDs have a "sector size" larger than 4096 bytes.
- Some software products (such as SQL Server) don't support such a large sector size. Thus, Windows 10 and Windows Server before 2022 "emulated" a sector size of 4096 on those modern drives.
- This emulation is off by default in Windows 11/Server 2022.
The following command line can tell you if you are affected by this issue (replace C:
with the drive containing your SQL Server DB files):
fsutil fsinfo sectorinfo C:
On affected systems, the value for PhysicalBytesPerSectorForAtomicity
is larger than 4096
.
The easiest way to fix this is to turn the emulation layer back on, which can be done by setting a registry key with the following command line:
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
After a reboot (didn't test whether it is really necessary), SQL Server 2019 installed successfully on my Windows Server 2022 system.