ディスクまたはパーティションがBIOS起動可能かUEFI起動可能かを示します。

ディスクまたはパーティションがBIOS起動可能かUEFI起動可能かを示します。

アクセスできるペンドライブまたはディスクがあります。

/dev/sda

パーティションの位置は次のとおりです。

/dev/sda1
/dev/sda2
/dev/sda...

ディスク自体と各パーティションについて知りたいです。

  • クラシックブート可能(BIOSブートモード/pre-UEFI)(MBRを使用しているようです)
  • UEFIブートは可能ですか?(当時はMBRを使用していないと思います)
  • 上記の該当事項はありません
  • 上記の両方

fdiskがあることがわかっていますが、GPTをサポートしていないため、GPTディスクと一緒に使用することはできません。そして parted は「ブート」フラグだけを表示するだけで、BIOS ブート可能か UEFI ブート可能かはわかりません。

すべての最新のBIOSは起動可能なデバイスを一覧表示し、UEFIであるかどうかも表示できるため、これはそれほど難しくないことがわかります。

ベストアンサー1

最初の512バイトブロック(ブロック#0)の最後の2バイトが0x55と0xaaの場合、ディスクは起動可能なBIOSスタイルです。これが真であれば、BIOSファームウェアはブロックに有効なマスターブートレコード(MBR)が含まれていると見なし、それを実行しようとします。最初の446バイト程度には、16ビット8086互換モードのx86プロセッサの実行コードを含める必要があります。

# dd if=/dev/sda bs=512 count=1 2>/dev/null | od -t x1z -A x | tail -2
0001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa  >..............U.<
000200              

それ以上はMBRコードの機能によって異なります。ほとんどの標準のMicrosoft MBRはアクティブとしてマークされているデフォルトのパーティションを見つけ、そのパーティションの最初のブロックをロードして実行します。ただし、GRUBなどの他のブートローダはパーティションフラグを完全に無視し、必要に応じてまったく異なる操作を実行できます。


UEFIファームウェアで認識されるファイルシステムが含まれている場合、リムーバブルメディアは起動可能なUEFIスタイルです(仕様はもともとFAT32の特定のバージョンを指定していましたが、FAT12とFAT16を含むように拡張されました。さらに、ファームウェアの実装も自由に追加できます)。他のファイルシステムタイプがサポートされています)、ファイルシステムにEFI名前付きディレクトリ(大文字と小文字を区別しない)があり、そのディレクトリに名前付きサブディレクトリがあり、bootそのサブディレクトリにシステム固有の名前がアーキテクチャであるブートローダファイル(*.efi)があります。つまり、Windowsスタイルの絶対パスでわかるように、特定のファイルシステムのルートから始まります。

  • \EFI\boot\bootx64.efi64ビットx86システムの場合
  • \EFI\boot\bootia32.efi32ビットx86システム(一部のミニノートパソコンと古いx86 Mac)で動作します。
  • \EFI\boot\bootia64.efiIntel Itaniumシステム(主にWindows、HP-UX、またはOpenVMSの一部のバージョンを実行しているサーバー)の場合
  • \EFI\boot\bootarm.efiUEFIファームウェアを含む32ビットARMプロセッサ用
  • \EFI\boot\bootaa64.efiUEFIファームウェアを含む64ビットARMプロセッサ用
  • \EFI\boot\bootriscvNN.efiUEFI ファームウェアを含む 32 ビット、64 ビット、128 ビットの RISC-V プロセッサで使用可能 (NNそれぞれ 32、64、または 128 の場合があります)
  • ...新しいプロセッサアーキテクチャにUEFIファームウェアを実装すると、このリストが拡張される可能性があります。

C12A7328-F81F-11D2-BA4B-00A0C93EC93BディスクにGPTパーティションテーブルがある場合、UEFIブートローダを含むパーティションには、それを識別するパーティションタイプGUIDが必要です。EFIシステムパーティション、縮小ESPです。 UEFIファームウェアを持つすべてのシステムはGPTパーティションをサポートする必要があります。

ディスクにMBRパーティションテーブルがある場合、UEFIブートローダを含むパーティションの0xefMBRパーティションタイプコードは...ですが、これは厳しい要件ではありません。

インストールされているオペレーティングシステムのブートローダパス名は、他のUEFIファームウェア設定を保存するために使用されるのと同じ不揮発性メモリに保存されるため、リムーバブルディスクには別のパスに追加のUEFIブートローダを含めることができます。これは、ESPパーティションのディレクトリのベンダー固有のサブディレクトリに配置する必要があります\EFIefibootmgr -vUEFIブートローダのパス名と関連ブート設定を表示するには、Linuxでrootとして使用します。

非リムーバブルディスクは、上記のリムーバブルメディアに指定された固定パスの1つにUEFIブートローダファイルを含めることもできます。これを呼び出します。代替ブートローダパス不揮発性メモリ設定は、失われた場合に使用できます。 Windowsはデフォルトでこのようなコピーを保存しますbootmgfw.efi。 Linuxディストリビューションのインストーラは通常、特に要求しない限りこれを行いません。

ESPは通常(常にそうではない)/boot/efi/Linuxにインストールされているため、RHELのSecure Boot shimブートローダはで見つけることができ、/boot/efi/EFI/redhat/shimx64.efi実際のGRUBはで見つけることができます/boot/efi/EFI/redhat/grubx64.efi。 1つ目efiはマウントポイントディレクトリの名前、2つ目はEFIUEFI仕様に必要なサブディレクトリの名前です。


GPT仕様によると、GPTパーティションテーブルはディスクブロック#1から始まり、ブロック#0は予約されています。保護MBR:パーティションタイプがに設定されているディスク全体(または約2TiBの絶対最大MBRサイズのうち小さい方)を占めるパーティションを説明するパーティションエントリが1つだけ必要な仮想MBRパーティションテーブル0xee

これはGPTをサポートしていないシステムに、「はい、このディスクはフォーマットされ、パーティション化されて使用されています。いいえ。あなたが知っているパーティションタイプではありません」と伝えます。しないでください。ユーザーにワンクリックで簡単に書式設定する方法を提供します。 」

もちろん、これによりディスクの構築が可能になります。ハイブリッド GPT/MBR パーティション:GPTをサポートしていないシステムの場合は有効なMBR(ブートコードを含めることができます)を提供し、GPTをサポートするシステムの場合は有効なGPTパーティションテーブルを提供します。ここでESPパーティションには、さまざまなシステムアーキテクチャ用のUEFIブートローダが含まれています。

おすすめ記事