Windows 11 HomeでSQL Server 2017/2019/2022がインストールできない|Database Engine Services failed(-2061893606)の原因と解決策

Windows 11 Home 搭載 PC に SQL Server 2017/2019/2022(Developer/Evaluation/Express/Standard 等)を入れようとしたら “Database Engine Services failed(-2061893606)” で止まる――そんな相談が増えています。本記事では原因の本質(NVMe のセクタ報告値と SQL Server の仕様不一致)を、再現するログの読み方から確実な回避策、検証・復旧まで具体的に解説します。まずは手順①~③を順に実行してください。


目次

Windows 11 Home に SQL Server をインストールできない問題の全体像

Windows 11 Home 環境で SQL Server セットアップが完了したように見えても、再起動後に SQL Server サービス(Database Engine)が起動しない、あるいはセットアップ中に “Database Engine Services failed”(エラー コード -2061893606)で失敗する事象があります。対象は 2017/2019/2022 の主要エディション(Developer/Evaluation/Express/Standard など)に及びます。

この現象のコア原因は、「一部の NVMe SSD が Windows 11 で 4 KB を超える物理セクタ サイズ(例:32 KB)を OS に報告する」こと、そして「SQL Server が 512 バイトまたは 4 KB までしかサポートしない」という仕様にあります。結果として初期起動時に master/model/msdb などシステム データベースのファイルを開けず、サービスが停止します。

エラーログの特徴と見分け方

セットアップ画面では下記のように報告されることが多く、内部ログでは共通の兆候が見られます。

  • Component error code: 0x851A001A
  • エンジン起動直後の ERRORLOG に、セクタサイズ不一致に類するメッセージが記録される(例)
FCB::Open failed: Could not open file 'C:\Program Files\Microsoft SQL Server\...\model.mdf' for file number 1.
The operating system returned error 22 (not same sector size / The device does not recognize the command).
The file '...\model.mdf' size is not a multiple of the sector size (32768).
SQL Server is terminating because of a system shutdown. This is an informational message only.

ERRORLOG の既定保存先は(例):

C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\Log\ERRORLOG

SQL Server Configuration Manager > SQL Server サービス のプロパティ(起動パラメータ)で -e のパスからも確認できます。

なぜ Windows 11 Home で起こるのか(技術的背景)

近年の NVMe SSD には、物理セクタ サイズを 4 KB より大きく報告するモデルが存在します。Windows 11 はストレージ スタックの改良により、その値をより厳密に上位へ伝えるケースがあり、結果として SQL Server が許容しない値(> 4 KB)がアプリ層まで露出する場面が出ます。SQL Server は I/O 整合性とパフォーマンスの前提から、データ ファイルのセクタ アライメントを 512B/4KB に限定しており、これを超える物理セクタでは システム DB の初期化すらできないため起動時に停止します。

このギャップは「Windows 11 のバグ」や「SQL Server の単純な不具合」というより、ハードウェアの報告値とデータベース製品の仕様制限の衝突として捉えるのが適切です。

まず確認:現在のセクタ サイズを調べる

回避策に入る前に、該当 PC の論理/物理セクタ サイズを確認します。管理者のコマンド プロンプトまたは PowerShell で次を実行します。

fsutil fsinfo sectorinfo C:

または(PowerShell)

Get-PhysicalDisk | Select FriendlyName, MediaType, LogicalSectorSize, PhysicalSectorSize

PhysicalSectorSize が 4096 より大きい(例:32768)場合、本記事のワークアラウンドに該当する可能性が高いです。

最も確実な回避策(ワークアラウンド)

以下の手順は、既に 「インストール失敗 → 再起動後もサービスが上がらない」 状態からの復旧を含め、多数の成功報告がある実用的な方法です。特に手順①のレジストリ設定が要点です。

手順内容補足
① レジストリ修正(最も確実)管理者権限の コマンド プロンプトで下記を実行し再起動。
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v ForcedPhysicalSectorSizeInBytes /t REG_MULTI_SZ /d "* 4095" /f
4095 (= 4 KB − 1) を指定し、ストレージ ドライバーに「このディスクは 4 KB 未満」と報告させる。SATA SSD ではキー名が異なる(後述)。
② 失敗したインストールを完全削除設定 > アプリ > インストール済みアプリ から SQL Server 関連をすべてアンインストール。残ったフォルダー(例 C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER)をリネーム/削除。不整合な DB ファイルやサービス定義を残さないため。必要に応じて SSMS など付属ツールも再インストール。
③ PC を再起動し再インストールインストーラーを 「管理者として実行」し、通常どおりセットアップ。途中で Microsoft Update(MU)を選択しても可。インスタンス名は任意(既定の既定名 MSSQLSERVER/命名インスタンスいずれも可)。
④ サービス起動を確認再起動後、SQL Server Configuration Manager または サービスで SQL Server (<インスタンス名>) が「実行中」になっているか確認。SSMS で localhost に接続テスト。起動しない場合は ERRORLOG を再確認し、手順①の入力ミス・再起動忘れ・インストール パス不一致を見直す。
⑤ 追加オプション(必要時)起動パラメータに -T1800(Trace Flag 1800)を追加して I/O 判定を緩和。NVMe ファームウェアや Intel/AMD RAID ドライバーを最新版へ更新。Trace Flag はレジストリ変更より効果が弱い場合あり。恒久対策ではないため、あくまで補助的に。

レジストリ変更のポイント(NVMe / SATA 別)

NVMe の標準ドライバーを使っている場合は stornvme の配下に設定します。SATA(AHCI)やベンダー独自ドライバーを使っている場合はキーが異なります。

接続/ドライバーキー例値備考
NVMe(Microsoft 標準)HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\DeviceForcedPhysicalSectorSizeInBytes(REG_MULTI_SZ)
* 4095
本記事の代表例。最優先で試す。
SATA AHCI(Microsoft 標準)HKLM\SYSTEM\CurrentControlSet\Services\storahci\Parameters\Device同上ノート PC などの内蔵 SATA SSD で該当。
Intel RST / VMD 等HKLM\SYSTEM\CurrentControlSet\Services\iaStorAC\Parameters\Device(環境により iaStorV/iaStorAVC/iaStorVD 等)同上デバイス マネージャーのストレージ コントローラー名で使用ドライバーを確認。
AMD RAID 等HKLM\SYSTEM\CurrentControlSet\Services\rcbottom\Parameters\Device や amdsata 等(環境依存)同上ベンダー ドライバー名ごとに Services\<サービス名>\Parameters\Device を探す。

レジストリを GUI で手動追加するより、コマンドで確実に入れるのが安全です。PowerShell を使うなら次も可:

New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters" -Name Device -Force | Out-Null
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" `
  -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Value "* 4095" -Force

設定後は必ず OS を再起動してください。再起動前後で fsutil/Get-PhysicalDisk の値が期待どおりに変化しているか確認します。

なぜ「4095」なのか

SQL Server は 4 KB を上限閾値として扱います。4 KB ちょうど(4096)を指定しても改善しない構成があるため、「4 KB 未満」であることをドライバーに明示する目的で 4095 を使います。端数の 1 バイトは「4 KB を超えない」ことを保証するためのワークアラウンドです。

インストールのやり直し(クリーンアップ & 再セットアップ)

アンインストールのコツ

  • 設定 > アプリから「Microsoft SQL Server 20xx」や各種コンポーネント(Database Engine Services、SQL Server Browser、Connectivity、SSMS 等)を順に削除。
  • 残留フォルダーはすべてリネーム/削除:
    C:\Program Files\Microsoft SQL Server\
    C:\Program Files (x86)\Microsoft SQL Server\
    C:\ProgramData\Microsoft\SQL Server\(隠しフォルダー)
  • サービスが残っている場合は、アンインストーラーで消せなければ最終手段としてコマンドを使用:
    sc delete MSSQLSERVER(既定インスタンスの場合の例)

再インストールの実施

  1. インストーラーを右クリックし 「管理者として実行」。
  2. セットアップ時に Database Engine Services を選択。データ ディレクトリは既定のままで可。
  3. 完了後に OS を再起動。サービスが「実行中」になることを確認。

動作確認と検証チェックリスト

観点確認内容コマンド/操作
セクタ サイズ4096 以下(期待:4 KB 未満を報告)fsutil fsinfo sectorinfo C:
サービス状態SQL Server (<インスタンス名>) が「実行中」services.msc または SQL Server Configuration Manager
接続性SSMS から localhost へ接続成功(sa または Windows 認証)SSMS(バージョンは新しめが望ましい)
ERRORLOGセクタ関連のエラーが消え、通常の起動ログのみ起動パラメータ -e のパスから確認

FAQ:よくある誤解と注意点

これは Windows 11 Home 固有の問題? Home 構成の個人用 PC で相談が多いだけで、ドライブが 4 KB 超を報告すればエディションに関係なく発生し得ます。Pro/Enterprise でも同様の報告があります。

<dt>SQL Server のバージョン依存?</dt>
<dd>2017/2019/2022 の幅広いビルドで再現します。累積更新で改善する可能性はありますが、<strong>現時点での決定打はレジストリ ワークアラウンド</strong>です。</dd>

<dt>なぜトレース フラグ(<code>-T1800</code>)だけでは直らないことがある?</dt>
<dd>トレース フラグは I/O 判定の一部ロジックを緩和しますが、<strong>物理セクタ報告値そのものが上限超過</strong>だと根本の整合性チェックを通過できない構成があるためです。</dd>

<dt>レジストリ変更の影響は?</dt>
<dd>ストレージ ドライバーが OS に報告する物理セクタ サイズを上書きするため、<strong>対象デバイス上の他アプリにも影響</strong>します。業務システムやバックアップ製品など、I/O に厳しいアプリが同居する場合は事前検証を推奨します。</dd>

<dt>4096 を指定してはいけないの?</dt>
<dd>4096(ぴったり 4 KB)で動いた事例もありますが、<strong>4095 の方が広い構成で確実</strong>という報告が多いため、本記事では 4095 を推奨しています。</dd>

トラブルシューティング深掘り

セットアップ時に止まる/ロールバックする

  • 先にレジストリ ワークアラウンド(手順①)を適用 → 再起動 → クリーンアップ(手順②)→ 再インストール(手順③)。
  • ウイルス対策やバックアップ エージェントがファイルをロックしていないか確認。

サービスが「開始」→「停止」を繰り返す

  • ERRORLOG を確認。セクタ不一致以外に、パス権限やアンチウイルス除外漏れ(sqlservr.exe, データ/ログ フォルダ)を疑う。
  • 起動パラメータから -m(シングルユーザー)を付けて起動し、master の整合性をチェックする方法もあるが、セクタ問題が残っている場合は起動しない。

ベンダー ドライバー環境でキーが分からない

  1. デバイス マネージャー > 記憶域コントローラー > 対象デバイスのプロパティ > ドライバーの詳細で .sys 名を確認。
  2. レジストリの HKLM\SYSTEM\CurrentControlSet\Services の配下から、同名(または近い名称)のサービス キーを探す。
  3. Parameters\Device を作り、同じ Multi_SZ 値を設定。

安全なロールバック(元に戻す)

将来の Windows/SQL Server の更新で正式対応が入った場合、ワークアラウンドを解除して元の報告値に戻したいことがあります。以下の手順で復元できます。

  1. 管理者コマンド プロンプトで次を実行:
REG DELETE "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v ForcedPhysicalSectorSizeInBytes /f
  1. OS を再起動。
  2. fsutil/Get-PhysicalDisk で物理セクタ サイズが元に戻ったことを確認。

万一トラブルが発生しても復旧できるよう、レジストリの エクスポート(.reg バックアップ)を事前に取っておくと安心です。

恒久対処の選択肢(運用設計の観点)

  • データ/ログを 4 KB 物理セクタの別ドライブに置く:SATA SSD や別ベンダー NVMe へ移設。
  • Linux 版 SQL Server へ移行:Docker を含む選択肢。Windows ストレージ スタックの影響を避けられる構成もある。
  • Windows 10 にダウングレード:ハードウェアとドライバーの相性で改善するケースあり。
  • ベンダー製ファームウェア/ドライバーの更新:物理セクタ報告値や互換性が改善される場合がある。

ただし、いずれも「検証してから本番適用」が大前提です。OS や SQL Server の累積更新で根本的に解消される可能性もあるため、定期的に最新情報を確認し、ワークアラウンドの継続要否を見直してください。

実行例と確認コマンド集(コピー用)

NVMe(stornvme)の場合:適用

:: 管理者コマンド プロンプトで
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" ^
 /v ForcedPhysicalSectorSizeInBytes /t REG_MULTI_SZ /d "* 4095" /f

shutdown /r /t 0  :: 再起動

fsutil fsinfo sectorinfo C:
Get-PhysicalDisk | Select FriendlyName,LogicalSectorSize,PhysicalSectorSize

復元(削除)

REG DELETE "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" ^
 /v ForcedPhysicalSectorSizeInBytes /f

shutdown /r /t 0

SQL Server 再インストール後のチェック

:: サービス状態
sc query type= service state= all | findstr /I "SQL Server"

:: ERRORLOG の場所(パラメータ -e)
SQLServerManager.exe を開き、該当インスタンスのプロパティ -> 起動パラメータで確認

リスクとベストプラクティス

  • 影響範囲を理解する:レジストリ変更は 対象デバイス全体の物理セクタ報告値を上書きします。バックアップ、暗号化(BitLocker)、仮想化(Hyper-V/VMWare)、高スループットのログ収集など、I/O 集約アプリが同居していないかを確認し、念のためテスト環境で検証してください。
  • ロールバック計画:.reg のエクスポート、復元手順、バックアップの整備。
  • ログで裏取り:ERRORLOG の該当部分を読み、セクタ不一致が消えていることを最終確認。
  • 更新の継続:SQL Server の CU、Windows Update、ストレージ ドライバー/ファームウェアの最新化を継続。

まとめ:既知の制限 × ワークアラウンドで確実に回復

本件は、Windows 11 で一部 NVMe が 4 KB 超の物理セクタを報告することと、SQL Server 側の 512B/4KB 制限がぶつかった結果です。再発防止と早期復旧を両立するうえで、① レジストリで 4095 を設定 → ② 失敗インストールをクリーンに削除 → ③ 再インストール の三段構えが最も確実です。状況によっては -T1800 の併用やドライバー更新も検討してください。どうしても解決しない場合は、4 KB 物理セクタの別ドライブ運用、Windows 10 への切り戻し、あるいは Linux 版 SQL Server へ移行する選択肢も現実的です。

上記の手順で、「インストール失敗 → 再起動後もサービスが上がらない」という状態からの復旧は 実運用で複数の成功報告があります。まずは本稿の ①~③ を順番に実施し、ログで裏取りしながら進めてください。

付録:関連チェックポイント早見表

項目要点確認/操作
OS エディションHome に限らず発生し得る設定 > システム > バージョン情報
SQL Server バージョン2017/2019/2022 で再現セットアップ メディアのビルド、CU 適用状況
物理セクタ4096 超は不適合fsutil/Get-PhysicalDisk
ドライバーstornvme/storahci/iaStor** などデバイス マネージャーで確認、該当サービス配下にキー追加
ERRORLOGerror 22、sector size、FCB::Open など既定ログパスまたは -e で確認
Trace Flag-T1800 は補助的構成マネージャー > 起動パラメータに追加

参考メモ(オフライン参照用)

  • Microsoft のサポート資料には「OS が 4 KB を超えるディスク セクタ サイズを報告する場合の対処」が整理されています。
  • fsutil fsinfo sectorinfo で現在のセクタ サイズ、Get-PhysicalDisk でデバイスごとの論理/物理値が確認できます。

なお、本記事では外部リンクを掲載していません。社内ナレッジや検証環境で必ず裏取りのうえ、本番環境に適用してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次