Windows 10のシステム予約パーティションとは?役割・削除・復元方法を徹底解説
Windowsをクリーンインストールする際、WindowsセットアップはMBRディスク上に特別なシステム予約パーティション(SRP:System Reserved Partition)を自動的に作成します。これはNTFSファイルシステムでフォーマットされた隠しパーティションで、デフォルトではドライブ文字が割り当てられず、エクスプローラーにも表示されません。そのため、このサービス用パーティションの存在自体を知らないユーザーも少なくありません。
サイズはWindowsのバージョンによって異なり、Windows 7/Windows Server 2008 R2では100MB、Windows 8.1/Windows Server 2012 R2では350MB、そしてWindows 10/Windows Server 2016以降では500MBに拡張されています。
本記事では、システム予約パーティションの用途、削除してもよいのか、また削除・破損してしまった場合の復元方法について詳しく解説します。
目次
- Windows 10におけるシステム予約パーティション
- システム予約パーティションには何が保存されている?
- システム予約パーティションは削除できる?
- システム予約パーティションを手動で作成する方法
- 誤って削除した後にWindowsが起動しなくなった場合の対処法
- 「システム予約パーティションを更新できませんでした」エラーの解決策
Windows 10におけるシステム予約パーティション
まず、システム予約パーティションがどこにあるのか、その中身を確認する方法を見ていきましょう。「コンピューターの管理」(compmgmt.msc)を開き、ストレージ→ディスクの管理を選択します。Windows 10では、500MBのシステム予約パーティションが、Windowsがインストールされているシステムパーティション(C:\)の手前に配置されているのが確認できます。
システム予約パーティションには、プライマリパーティション、アクティブ、システムというボリューム属性が割り当てられています。
なお、システム予約パーティションが存在するのは、BIOS搭載のPC、またはLegacy互換モジュール(CSM)が有効化されたUEFI環境のPCのみです。これらのコンピューターのシステムディスクには、MBR(Master Boot Record)パーティションテーブルが使用されています。一方、UEFIネイティブモード+GPTパーティションテーブルの構成ではSRPは存在せず、代わりにEFIシステムパーティションが使用されます。
デフォルトではドライブ文字が割り当てられていませんが、ディスクの管理(diskmgmt.msc)から設定するか、以下のPowerShellコマンドで割り当てることができます。
Get-Partition -DiskNumber 0 -PartitionNumber 1|Set-Partition -NewDriveLetter R
ドライブ文字を割り当てると、エクスプローラーで隠しファイルとシステムファイルの表示を有効にした場合に、システム予約ボリュームの中身を確認できます。
補足: 既存のパーティションが存在するディスクにWindowsをインストールした場合、セットアップは独立した500MBのシステム予約パーティションを作成しません。この場合、ブートマネージャーのファイルはWindowsがインストールされている同じボリューム上に配置されます。
システム予約パーティションには何が保存されている?
以前のバージョンのWindowsでは、起動ファイルはOSがインストールされたパーティション上に保存されていました。Windows 7以降、Microsoftはブートローダーファイルを格納するための独立した隠しパーティションとして、システム予約パーティションを採用しました。この仕組みにより、ブートローダーファイルをユーザーの操作から保護し、Windowsの起動安定性を高めています。
具体的には、以下のようなデータが保存されています。
- Windowsブートローダー(bootmgr)およびブート構成データ(BCD:Boot Configuration Data)ファイル。bootmgrは、旧世代のNTLDRブートローダーに代わるものです。
- BitLocker暗号化サブシステムのサービスデータ(使用している場合)
- 起動トラブルのトラブルシューティングに使用されるWindows回復環境(WinRE)のファイル
- システム復元ポイントのメタデータを格納するSystem Volume Informationフォルダー
- BOOTNXT:USBフラッシュドライブからWindowsを起動する際に使用されるファイル(Windows To Goなど)
- BAK:MBRディスクで使用されるブートセクターのバックアップ
システム予約パーティションは削除できる?
明確な理由がない限り、システム予約パーティションを削除すべきではありません。ましてやディスク容量の節約目的での削除は避けましょう(500MB程度は大した容量ではありません)。このパーティションがないと、ブートローダー構成を含む起動パーティションが失われるため、Windowsは起動できなくなります。
削除すると、「Operating system not found(オペレーティングシステムが見つかりません)」といったエラーが表示されたり、次のようなメッセージが出たりする可能性があります。
File: \boot\BCD Status: 0xc00000f お使いのPCのブート構成データが見つからないか、エラーが含まれています。
この場合、Windowsブートローダーを手動で復元し、システムドライブC:に再配置する必要があります(手順は後述します)。
システム予約パーティションを手動で作成する方法
システム予約パーティションを削除してしまった場合(または最初から存在しない場合)、それを復元したいときは以下の手順を実行します。
まず、diskpartツールを使用してWindowsパーティションを500MB縮小します(ここではWindowsがパーティション1にインストールされているものと仮定します)。
diskpart
list volume
select volume 1
shrink desired=500
次に、新しい500MBのNTFSパーティションを作成します。
create partition primary
format fs=ntfs
active
assign letter R
exit
続いて、新しいパーティションにWindowsブートローダーファイルを配置します。
bcdboot C:\windows /s R:
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd
ただし、多くの場合は、次のセクションで説明するように、bootmgrの構成をWindowsシステムパーティション側へ移行する方が簡単です。
誤って削除した後にWindowsが起動しなくなった場合の対処法
他のパーティションの都合でWindowsボリュームを縮小・拡張できない場合は、ブートローダー構成を復元し、Windowsがインストールされているパーティション上に再配置する方法があります。この手順により、システム予約パーティション削除後のWindows起動問題を修復できます。
まず、任意のWindows起動/インストールメディア(USBフラッシュドライブまたはDVD)からPCを起動し、システム予約パーティションが実際に欠落していることを確認します(ここではWindows Server 2012 R2のインストールメディアを使用した例を紹介します)。
インストール画面でShift+F10キーを押してコマンドプロンプトを開きます。diskpartを実行してボリューム一覧を表示しましょう。
list volume
一覧を見ると、システム予約パーティションが存在せず、当然ながらこのディスクからはWindowsを起動できない状態です。
この場合、システムを復元するにはブートローダーエントリを再作成する必要があります。独立した500MBのシステム予約パーティションを作らずに済ませるため、bootmgrブートローダーファイルをシステムドライブC:\上に再作成できます。WinPEのコマンドプロンプトで以下のコマンドを実行し、起動環境ファイルをC:\ドライブに配置して、Windowsディレクトリへのパスを指定します。
bcdboot c:\windows /s c:
成功すると、コマンドは「Boot files successfully created(ブートファイルが正常に作成されました)」を返します。
次に、ブートセクターを上書きします。
bootsect.exe /nt60 All /force
ヒント: 「要素が見つかりません(Element not found)」というエラーが表示された場合は、次のステップで説明する方法でdiskpartを使い、システムパーティションをアクティブに設定してみてください。
続いて、C:\パーティションをアクティブにします。以下のコマンドを実行してください(ディスク番号やパーティション番号は環境によって異なる場合があるため、注意深く確認してください)。
diskpart
list disk
select disk 0
list partition
select partition 1
active
ヒント: 「DiskPart は現在のパーティションをアクティブとしてマークしました」というメッセージが表示されれば成功です。
exit
その後、以下のコマンドを順番に実行します。
bootrec /fixmbr
bootrec /fixboot
bootrec /scanos
bootrec /rebuildbcd
3つ目のコマンドはすべてのディスクをスキャンし、インストール済みのWindowsを検出します(「すべてのディスクをスキャンして Windows インストールを検索しています」)。この例では、OSがC:\Windowsフォルダー内で検出されました。システムが「このインストールをブート リストに追加しますか?(Add installation to boot list?)」と尋ねてきたら、Yキーで確認します。
コンピューターを再起動し、Windowsが正常に起動することを確認してください。また、システムドライブC:\のルートにbootmgrファイルが存在することも確認しておきましょう。
ヒント: UEFIアーキテクチャのコンピューターにおけるブートローダー構成の手動修復手順は若干異なります。詳細は「EFIブートローダーの修復方法」に関する記事を参照してください。
なお、この手順は、システムを完全に1つのパーティションに収めたい場合(一部のバックアップツールやディスク管理ツールの観点から便利です)に、意図的にシステム予約パーティションを削除してブートローダー構成を別ドライブへ移行する際にも利用できます。BCDとMBR構成を再構築する完全なガイドも併せて参考にしてください。
「システム予約パーティションを更新できませんでした」エラーの解決策
Windows 7/8.1からWindows 10へのアップグレード時(または新しいWindows 10ビルドへの更新時)に、0xc1900104または0x800f0922のエラーが発生することがあります。
Windows 10 をインストールできませんでした システム予約パーティションを更新できませんでした。
このエラーは、旧バージョンのWindowsにおけるシステム予約パーティションのサイズがWindows 10より小さいことが原因です。SRPがいっぱいになっており、Windowsブートローダーのシステムファイルを配置するための十分な空き容量(最低15MB)がない場合に、このエラーが発生します。
Microsoftの公式推奨対策としては、システム予約パーティション(R:)のR:\Boot\Fontsディレクトリからフォントファイルを削除して空き容量を確保する方法があります。あるいは、起動可能なUSBメモリ上のサードパーティ製パーティション管理ツールを使用して、システム予約パーティションを拡張する方法も試せます。
-
Windowsエラーコード43とは?主な原因と解決方法を徹底解説
Windowsエラーコード43は、PCがハードウェアを正常に動作させるために必要な設定や情報を正しく処理できない場合に発生するトラブルです。このエラーは、主にデバイスドライバーが古くなっている、あるいは正しくインストールされていないことが原因で表示されます。本記事では、Windowsエラーコード43の発生原因と、具体的な解決手順について詳しく解説していきます。 Windowsエラーコード43の原因は? このエラーが発生すると、画面には次のようなメッセージが表示されます。 「Windows は、このデバイスに問題が発生したため停止しました(コード 43)」 エラーコード43は、システムに接続さ
-
Windows 10でCドライブ(システムドライブ)のパーティションを拡張する方法
システムドライブ(C:)の空き容量が不足すると、Windowsが快適に動作しなくなり、パーティションの拡張が必要になることがあります。より大容量のHDDへの買い替えという選択肢もありますが、ハードウェアにお金をかけたくない場合は、Cドライブ(システムパーティション)を拡張することでディスク容量を増やすことができます。システムドライブが満杯になると起こる問題システムドライブがいっぱいになると、最大の問題はPCの動作が極端に遅くなることです。これは非常にストレスの多い事態です。ページング用の領域が確保できなくなるため、ほとんどのプログラムがクラッシュするようになります。さらに、Windowsがメモ