Windowsで削除されたEFIシステムパーティションを復元する方法?

この記事では、UEFI コンピューターで誤って削除された Windows EFI ブート パーティションを手動で復元する方法について説明します。 起動可能な EFI および MSR Windows パーティションを手動で再作成するこの簡単な方法により、誤って EFI パーティションをフォーマットまたは削除した後にオペレーティング システムを起動できます。 このガイドは、すべての Windows バージョン (Windows 10 および 11、および Windows Server 2022/2019/2016 を含む) に関連しています。

UEFI (非 BIOS) コンピューターの EFI ブート パーティションが誤って削除またはフォーマットされたとします (たとえば、OEM 回復パーティションを削除しようとした場合)。 その結果、Windows 11/10/8.1/7 が正しく起動せず、起動デバイスを選択するように求められます (Reboot and select proper boot device or insert boot media in selected boot device and press a key)。 次に、OS を再インストールせずに (ブート マネージャーと BCD 構成を使用して) EFI システム ディスク パーティションを削除した後、Windows ブートを復元する方法を示します。

Advertisement

警告. このガイドは、ディスク パーティションでの作業を想定しており、初心者向けではありません。 コマンドの解釈を誤ると、ハードディスク上のすべてのデータを誤って削除してしまう可能性があります。 また、重要なデータを別のメディアにバックアップすることを強くお勧めします。

Windows の UEFI/GPT ベースのハード ディスク パーティション

UEFI コンピューター上の GUID パーティション テーブル (GPT) を持つブート ハード ドライブの既定のパーティション テーブルがどのように見えるかを検討してください。 少なくとも次のパーティションが必要です。

  • EFI システム パーティション (ESP – Extensible Firmware Interface) — 100 MB (パーティション タイプ — EFI);
  • Microsoft 予約済みパーティション — 16 MB (パーティション タイプ — MSR);
  • プライマリ Windows パーティション (次を含むパーティション ウィンドウズ)。

これは最小構成です。 これらのパーティションは、フォーマットされていないドライブへの OS のクリーン インストール中に Windows インストーラーによって作成されます。

コンピューターの製造元またはユーザーは、winre.wim ファイルに Windows 回復環境 (Windows RE) などを含む追加のパーティションを作成できます。これは、OEM によって提供されたシステム イメージ バックアップを含むパーティションです (コンピューターの元の状態にロールバックすることができます)。 )、ユーザー パーティションなど。

Advertisement

EFI パーティション FAT32 ファイル システムでは、UEFI コンピューターの GPT ディスクの必須パーティションであり、GUID を持っています。c12a7328-f81f-11d2-ba4b-00a0c93ec93b. EFI パーティションのデフォルトのサイズは 100MB (4KB セクターの高度なフォーマット ディスクでは、EFI パーティションのサイズは 260MB です)。

MSR パーティション (Microsoft System Reserved) は、GPT ディスクのパーティション管理を簡素化するために使用され、サービス操作 (たとえば、ディスクをベーシックからダイナミックに変換する場合) に使用されます。 これは GUID ラベルの付いたパーティションです e3c9e316-0b5c-4db8-817d-f92df00215aeドライブ文字が割り当てられていません。 このパーティションにはユーザー データを保存できません。 Windows 10 および 11 では、MSR パーティションのサイズは 16MB (Windows 8.1 では MSR サイズは 128 MB)、ファイル システムは NTFS です。 MSR パーティションは、EFI システム パーティション (ESP) とプライマリ Windows オペレーティング システム パーティションの間にある必要があります。

メインパーティション NTFS ファイル システムには、インストールされている Windows、プログラム、およびユーザー データが含まれています。 ディスク上に追加のデータ パーティションが存在する場合もあります。

Windows で EFI パーティションが見つからない

EFI パーティション (MBR パーティション テーブルを持つドライブのシステム予約済みパーティションと同様) には、ブート構成ストア (BCD) と、Windows の起動に必要な多数のファイルが格納されます。 コンピューターが起動すると、UEFI 環境はブートローダー ファイル (EFIMicrosoftBootbootmgfw.efi) を EFI システム (ESP) パーティションから取り出し、そこに制御を移します。 bootmgfw.efi 実行可能ファイルは、 ウィンドウズブートマネージャー、BCD から構成データをロードします。 BCD がロードされると、Windows は winload.efi を介して起動を開始します。

uefi Windows ブート マネージャー: bootmgfw.efi パスを設定します。

UEFI コンピューターが起動すると、接続されているすべてのドライブで EFI システム パーティションが検索されます。 EFI パーティションが削除されているか破損している場合、そのドライブから Windows を起動することはできません。 UEFI エラーが表示されます could not locate efibootbootx64.efi – not foundまたは、起動デバイスを選択するように求める空の UEFI シェル。

また、EFI パーティションが NTFS ファイル システムでフォーマットされている場合、Windows を起動することはできません。 Windows のクリーン インストールを実行しても、次のエラーが表示されます。

Windows detected that the EFI system partition was formatted as NTFS. Format the EFI system partition as FAT32, and restart the installation.

GPT ドライブに EFI システムおよび MSR パーティションを作成する方法

Windows は正しく動作しないため、Windows 10/11 インストール ドライブ (Windows インストール ファイルで UEFI 起動可能な USB ドライブを作成する方法を参照) またはその他の起動/レスキュー メディアが必要です。 インストールメディアから起動し、 Shift+F10 最初のインストール画面のキーの組み合わせ。 コマンド プロンプト ウィンドウが開きます。

ディスクおよびパーティション管理ツールを実行します。
Diskpart
コンピュータに接続されているハードディスクを一覧表示します。

list disk

Advertisement

この例では、1 つしかありません。 ディスク 0 接続されました。 アスタリスク (*) は、ディスク上に GUID パーティション テーブルが作成されたことを示します。

diskpart チェック gpt パーティション テーブル

ない場合 *GPT 列にある場合、ディスク パーティション テーブルは MBR です。 以前にネイティブ UEFI モードでコンピューターを起動したことを確認する必要があります (そうでない場合、この手順に従うことは無意味です)。 パーティション テーブルの種類が変更されていることが確実な場合は、ドライブを MBR から GPT に変換する価値があるかもしれません。

このディスクを選択:
Select disk 0
ディスク上のパーティションのリストを表示します。
List partition
私の例では、ドライブには 3 つのパーティションしか残っていません。

  • MSR パーティション — 16 MB
  • Windows システム パーティション — 30 GB
  • リカバリ パーティション – 541 MB

ご覧のとおり、EFI パーティション (システムと呼ばれる場合があります) がありません (削除されています)。

Windows ディスクに efi システム パーティションがありません

ヒント. EFI パーティションで EFI ブート ファイルのみが破損し、パーティション自体が削除されていない場合は、diskpart を使用してパーティションを再作成する手順をスキップできます。 ほとんどの場合、Windows で EFI ブートローダーを修復するだけで十分です。 BIOS ファームウェアを搭載したコンピューターで MBR ディスクを使用している場合は、この記事の説明に従って BCD を再作成できます。

私たちのタスクは、残りの MSR パーティションを削除して、ディスクに少なくとも 116 MB の未割り当て領域を確保することです (MSR および EFI パーティション用)。 このパーティションは、グラフィカルな Gparted ツールを使用するか、コマンド プロンプトから直接削除できます (まさにこれを実行します)。

重要! ここでは細心の注意を払い、Windows パーティションまたはユーザー データを含むパーティション (存在する場合) を誤って削除しないようにしてください。

削除するパーティションを選択:
Select partition 1
そしてそれを削除します:
Delete partition override
30 GB のプライマリ Windows パーティションとリカバリ パーティションのみが残っていることを確認します (この場合)。
List partition
diskpart を使用して msr および efi パーティションを削除する

Advertisement

EFI および MSR パーティションを手動で作成して、Windows ブートローダー ファイルを配置できるようになりました。 これを行うには、これらのコマンドを diskpart コンテキストで 1 つずつ実行します。

ディスクを選択します。
select disk 0
100 MB の EFI パーティションを作成します。
create partition efi size=100
diskpart で 100 MB のパーティションが選択されていることを確認します (パーティション 1 の前のアスタリスク)。 EFI パーティションを FAT32 ファイル システムでフォーマットし、ドライブ文字を割り当てます。
list partition
select partition 1
format quick fs=fat32 label="System"
assign letter=G

ここで、16MB の MSR パーティションを作成する必要があります (Windows 10 または 11 用)。
create partition msr size=16
list partition
list vol

私の場合、ドライブ文字 C: は既にメインの Windows パーティションに割り当てられています。 そうでない場合は、次のようにドライブ文字を割り当てます。
select vol 1
assign letter=C
exit

diskpart: efi パーティションを作成します

diskpart を閉じます。

exit

diskpart を使用して EFI または MSR パーティションを作成すると、エラーが表示される場合があります。

No usable free extent could be found. It may be that there is insufficient free space to create a partition at the specified size and offset. Specify different size and offset values or don't specify either to create the maximum sized partition. It may be that the disk is partitioned using the MBR disk partitioning format and the disk contains either 4 primary partitions, (no more partitions may be created), or 3 primary partitions and one extended partition, (only logical drives may be created).

diskpart:使用可能な空きエクステントが見つかりませんでした

これは、ディスク上に新しいパーティション用の十分な未割り当て (空き) 領域がないことを意味します。 この場合、メインの Windows パーティション (この例ではボリューム 1) のサイズを 128 MB 減らす必要があります。

select volume 1
shrink desired=128 minimum=128

Advertisement

diskpartでパーティションを縮小

次に、上記のように EFI および MSR パーティションを作成します。

GPT ドライブで EFI ブートローダーと Windows BCD を修復する

UEFI コンピューターで GPT ドライブ用の最小限のディスク パーティション構造を作成したら、EFI ブート ファイルを新しいパーティションにコピーし、ブートローダー構成ファイル (BCD) を作成することができます。

今すぐ使用 bcdboot.exe ツールを使用して、UEFI ブート環境ファイルを Windows システム ディレクトリから EFI ブート パーティションにコピーし、BCD ブートローダー構成を再作成します。 次のコマンドを実行します。

bcdboot c:windows /s G: /f UEFI

Boot files successfully created.

bcdboot: Windows 10 および 11 で uefi ブートローダーを復元します

その結果、定義済みのディレクトリ構造が EFI パーティションに作成されます。 次のファイルが EFI システム ボリュームに存在する必要があります。

  • EFIMicrosoftBootbootmgfw.efi
  • EFIMicrosoftBootbootmgr.efi
  • EFIMicrosoftBootmemtest.efi
  • EFIMicrosoftBootBCD
  • EFIMicrosoftBootFontswgl4_boot.ttf
  • EFIBootbootx64.efi

現在の Windows ブート マネージャーのブートローダー構成を一覧表示します。 {bootmgr} セクションにエントリが表示され、UEFI ブート制御ファイル (EFIMICROSOFTBOOTbootmgfw.efi)。 この例では、 partition=G 、 また partition=DeviceHarddiskVolume2 (EFI パーティションにドライブ文字を割り当てていない場合)。

Advertisement

UEFI ブートローダーは、制御を Windows ブートローダー ファイルに渡す必要があります。 Windowssystem32winload.efi の上 partition=C:

bcdbedit: Windows ブート マネージャーの構成を表示し、bootmgfw.efi パスを確認します

コンピューターを再起動します ( wpeutil reboot コマンドを使用して WinPE 環境から再起動する)、起動可能な USB フラッシュ ドライブを取り外します。

オプション! bcdboot コマンドが実行するすべてのアクションを手動で実行できます。 次に、EFI システム ファイルをコピーし、bcdedit コマンドを使用して BCD を自分で再構築する方法を示します。

Windows がインストールされているドライブのディレクトリから EFI 環境のブート ファイルをコピーします。

mkdir G:EFIMicrosoftBoot
xcopy /s C:WindowsBootEFI*.* G:EFIMicrosoftBoot

efiファイルをコピーする

ウィンドウ ブート マネージャーでブート構成データ (BCD) エントリを再構築します。
g:
cd EFIMicrosoftBoot
bcdedit /createstore BCD
bcdedit /store BCD /create {bootmgr} /d “Windows Boot Manager”
bcdedit /store BCD /create /d “My Windows 10” /application osloader

このコマンドは、作成された BCD エントリの GUID を返します。 代わりにこの GUID を使用します。 {your_guid} 次のコマンドで:

bcdedit /store BCD /set {bootmgr} default {your_guid}
bcdedit /store BCD /set {bootmgr} path EFIMicrosoftBootbootmgfw.efi
bcdedit /store BCD /set {bootmgr} displayorder {default}

bcdbedit: efi システム パーティションのブート エントリを作成します

Advertisement

次の bcdedit コマンドは、{default} コンテキストで実行されます。
bcdedit /store BCD /set {default} device partition=c:
bcdedit /store BCD /set {default} osdevice partition=c:
bcdedit /store BCD /set {default} path WindowsSystem32winload.efi
bcdedit /store BCD /set {default} systemroot Windows
exit

初めて Windows が正しく起動しなかった場合は、次のことを試してください。

  1. デバイスの電源をオフにします。
  2. ハード ドライブを (物理的に) 取り外します。
  3. コンピューターの電源を入れ、起動エラー ウィンドウ (オペレーティング システムが見つかりません) が表示されるまで待ってから、もう一度電源を切ります。
  4. ドライブを接続し直します。

これで問題が解決しない場合は、インストール USB フラッシュ ドライブから起動し、次のコマンドを実行します。

bootrec /rebuildbcd

コンピュータを再起動してください

bootrerebuildbcd

次に、私たちの場合 (UEFI ファームウェアを搭載した VMWare 仮想マシンでテスト)、新しい項目をブート メニューに追加する必要がありました。 EFIMicrosoftBootbootmgrfw.efi EFI パーティション上のファイル。

一部の UEFI メニューでは、同様に、ブート パーティションの優先順位を変更する必要があります。

Advertisement

efi 起動オプション FIMicrosoftBootbootmgrfw.efi

これらすべてのアクションの後、Windows は正しく起動するはずです。

ヒント. 何かがうまくいかない場合は、EFI パーティションだけにブート フラグがあることを確認することをお勧めします。 GParted LiveCD を使用して実行できます。

場合によっては、EFI および MSR パーティションを再作成し、BCD ブートローダーを復元した後、Windows が正常にシャットダウンしなくなることがあります。 この問題が発生した場合は、Windows の高速スタートアップ機能を無効にすることで解決できます。

  1. コントロールパネルで電源オプションを開きます powercfg.cpl;
  2. 選択する 電源ボタンの機能を選択する;
  3. クリック 現在利用できない設定を変更する ボタンを押して「高速スタートアップを有効にする」セクションの「シャットダウン設定」オプション。Windows 10/11 で高速スタートアップを無効にする

Advertisement