PC に GPT ディスクとレガシー BIOS ブートの組み合わせがあり、ブート コードが MBR から読み取られるかどうかを確認する方法を教えてください。

PC に GPT ディスクとレガシー BIOS ブートの組み合わせがあり、ブート コードが MBR から読み取られるかどうかを確認する方法を教えてください。

コメントヨハンはこう書いています。

GPTディスク+レガシーBIOSブートの珍しい組み合わせでは、ブートコードはMBRから旧式の方法で読み取られます。

PC に上記のようなまれな組み合わせがあるかどうかを判断する適切な方法は何ですか? このような状態についてディスクを調べるには、どの Windows コマンドや Linux コマンドを使用すればよいですか?

答え1

PC に Linux がインストールされている場合は、ディレクトリが/sys/firmware/efi存在するかどうかを確認できます。ディレクトリが存在する場合、コンピューターには EFI ファームウェアがあり、BIOS 互換モードではありません。ディレクトリが見つからない場合、マシンはレガシー BIOS を使用して起動します。

パーティション スキームは を使用して確認できますfdiskfdisk pコマンド (「パーティション テーブルを印刷」) でディスク ラベル タイプとして「msdos」が報告された場合、ディスクには旧式の MBR パーティション テーブルがあります。ディスク ラベル タイプが「gpt」の場合、GPT ディスクがあります。

答え2

これがまれな状況なのかどうかはわかりませんが、古いマシンで大容量ディスクを使用するための合理的な方法の 1 つです。または、システム ファームウェアにバグがあり、たとえばソフトウェア RAID セットアップを起動するときに 2 番目のディスクに適切にフォールバックしない場合などです。

まず、マシンがEFIで起動されていないことを確認します。「UEFI を使用して起動しているかどうかを確認するにはどうすればよいでしょうか?" チェックする。

Linuxの場合:

Linuxでは、実行するといくつかのインジケーターが表示されます。gdisk -l /dev/DISK

  1. パーティション テーブルは GPT です (「保護された MBR を持つ有効な GPT が見つかりました。GPT を使用しています。」)
  2. BIOS ブート パーティション (コード EF02 としてリストされています) があります。これは、GRUB の大部分が存在する場所です (従来の MBR ではブート セクターと最初のパーティションの間にあるセクターを置き換えます)。

私のディスクの 1 つからの例:

# gdisk -l /dev/sdd
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdd: 5860533168 sectors, 2.7 TiB
Model: ST3000VN000-1HJ1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): 3F3F7901-A38A-42FF-A7BA-8FBD1C35FB11
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 8-sector boundaries
Total free space is 5582 sectors (2.7 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048          259024   125.5 MiB   8300  Linux filesystem
   2          260096          517135   125.5 MiB   0700  Microsoft basic data
   3          518144      1953524128   931.3 GiB   8300  Linux filesystem
   4      1953525760      3907033263   931.5 GiB   8300  Linux filesystem
   5      3907035136      5860533134   931.5 GiB   8300  Linux filesystem
 128              34            2047   1007.0 KiB  EF02  BIOS boot partition

Windowsの場合:

これは VM 用にすばやく設定した別のディスクであることに注意してください。

diskpartディスクが GPT を使用している場合、コマンドを実行すると GPT 列にがlist disk表示されます。*

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online           40 GB      0 B
  Disk 1    Online           20 GB      0 B        *

残念ながら、list partition( を使用してディスクを選択した後select disk 1) 2 つのパーティションが「不明」として表示されます。

DISKPART> list partition

  Partition ###  Type              Size     Offset
  -------------  ----------------  -------  -------
  Partition 1    Unknown           4096 KB    17 KB
  Partition 2    Unknown             19 GB  5120 KB

しかし、詳細を記述すると( の後にselect partition 1)、型 GUID が得られます。

DISKPART> detail partition

Partition 1
Type    : 21686148-6449-6e6f-744e-656564454649
Hidden  : Yes
Required: No
Attrib  : 0000000000000000
Offset in Bytes: 17408

21686148-6449-6e6f-744e-656564454649BIOS ブート パーティションを意味します。(0fc63daf-8483-4772-8e79-3d69d8477de4ちなみに、 は汎用の Linux パーティションです)。

あるいは、ディスクの管理でディスクを選択し、プロパティを選択してボリューム タブを確認します。これにより、「パーティション スタイル」が MBR か GPT かがわかります。残念ながら、ディスクの管理からパーティション タイプを取得する方法はないようです。

関連情報