web-dev-qa-db-ja.com

Windowsで保護MBRを作成するにはどうすればよいですか?

1つのディスクにCentOS、別のディスクにWindows2016を搭載したUEFIマシンがあります。 WindowsインストーラーはGPT保護MBRを書き込みますが、説明されているように、UEFI標準に正確には準拠していません ここ 。標準に従って、単一のパーティションでMBRを書き込みますが、ディスクの実際のサイズではなく、最後のセクターを2 ^ 32-1にします。

sgdisk を使用してパーティションテーブルを保存し、後で復元するまで、これは問題ではありません。サイズの悪い数字は物事を混乱させ、MBRが壊れてしまいます。 CentOSでは、 gdisk を使用して新しい保護MBRを作成することで、これを防ぐことができます。ただし、Windowsからそれができれば便利です。方法はありますか?

3
Peter Westlake

ポスターのディスクはわずか1TBであるため、以下の私の答えは当てはまりません。

記事で非常に驚くべき事実を発見しました GPT保護MBRとパーティションテーブル

Windows 7は、2.2 TB未満のドライブの場合、これを「ディスクのサイズから1を引いたサイズに設定する」必要があるとUEFI仕様で規定されている場合でも、常にこのフィールドに0xFFFFFFFFを入力します。

そして、これは脚注に記載されているものです:

参照と完全な引用:Unified Extensible Firmware Interface Specification、バージョン2.3.1、Errata C、2012年6月27日、第5章に記載されているGUIDパーティション表(GPT)ディスクレイアウト、セクション5.2.3、保護MBR、表15、「SizeInLBA」、(100ページ):「ディスクのサイズから1を引いた値に設定します。ディスクのサイズが大きすぎて、0xFFFFFFFFに設定します。このフィールドに表示されます。」 Microsoftは2.2TB未満のドライブに2.2TBを超えるドライブと同じエントリを使用するため、SizeInLBAのUEFI仕様に準拠していません

したがって、これはMicrosoftが標準を無視することを決定した場合であり、それについてあなたができることは何もありません。解決策は、Linuxでパーティションの割り当てを行うことかもしれません。

WindowsでMicrosoft以外のユーティリティを探している場合は、記事 最高の無料パーティション管理ソフトウェア を参照してください。この記事には、標準を無視できない無料のサードパーティユーティリティがリストされています。


(古い答え)

ディスクはMBRの最大サイズである2.2TBより大きくなければならないと思います。

保護MBR(または任意のMBR)はそのサイズに制限されています。パーティションサイズを含むMBRのフィールドは32ビットしかないため、これ以上の数値を指定することはできません。

この制限は、2.2 TBより大きいディスクが市場に出たときにGPTが必要になった理由の1つでした。

2
harrymc