ブートローダのプロパティを表示/確認する

ブートローダのプロパティを表示/確認する

GRUBブートローダを含むUSBスティックがあることをLinuxのコマンドラインで確認する方法

  • UEFIですか?
  • 安全な起動と検証は行われますか?

研究では、これらのローダーを作成する方法に関するガイドがありますが、既存のローダーを判断する方法が見つかりません。

ベストアンサー1

EFIルートディレクトリに、またはefi(UEFIはファイル名から大文字と小文字を区別する必要があります)というサブディレクトリを含むUSBスティックにパーティションがある場合は、UEFI起動が可能です。理想的には、パーティションにFAT32ファイルシステムが必要ですが、一部のUEFIファームウェアはISO9660、NTFS、またはHFS +などの他の種類のファイルシステムもサポートしています。

リムーバブルメディアでは、64ビットx86ハードウェア用の実際のUEFIブートローダはパス上のファイルになります<partition root>/efi/boot/bootx64.efi。これは実際にリムーバブルメディアブートローダの完全修飾パス名です。永続オペレーティングシステムのインストールでは、ブートローダパス名がに変わります<partition root>/efi/<OS vendor or Linux distribution name>/<something>.efi。オペレーティングシステムのインストーラは、このパス名をUEFI NVRAMブート変数に保存します。これはBIOS設定と似ていますが、実際にはオペレーティングシステムが実行時にそれを照会して操作します。

Linuxでは、efibootmgr -vこのコマンドはUEFI NVRAMブート変数を表示する方法です。 bootloaderコマンドは、いくつかの起動変数情報bootctlも表示します。systemd-boot

リムーバブルメディアは、BIOS起動とUEFI起動の両方をサポートできます。この場合、2つのブートローダが含まれます。 MBRに組み込まれているBIOS互換ブートローダ(おそらくSYSLINUX)と上記のUEFI互換ブートローダ。

このfileコマンドを使用してファイルタイプを識別すると、.efi次のように表示されます。

# file bootx64.efi 
bootx64.efi: PE32+ executable (EFI application) x86-64 (stripped to external PDB), for MS Windows

つまり、UEFI ブートローダは Microsoft Windows と同じ実行可能ファイル形式を使用します。 PE32+は64ビット実行可能形式です。 32ビットUEFI実装を見ると、おそらく32ビットPE32形式(unsigned +)を使用しています。

注:UEFIは複数のハードウェアアーキテクチャをサポートしています。一部のARMシステムでは、UEFIも使用できます。

セキュアブートはUEFIのサブセットです。非 UEFI ブートローダはセキュアブートと互換性がありません。.efiファイルにSecure Boot署名が含まれていることを確認するには、を使用できますpesign -S -i filename.efi

# pesign -S -i bootx64.efi 
---------------------------------------------
certificate address is 0x7fb0f0f8dd80
Content was not encrypted.
Content is detached; signature cannot be verified.
The signer's common name is Microsoft Windows UEFI Driver Publisher
No signer email address.
No signing time included.
There were certs or crls included.
---------------------------------------------

セキュアブート署名がない場合、出力は次のようになります。

# pesign -S -i ipxe.efi 
No signatures found.

市販されているほとんどのUEFI PCには、セキュアブートファームウェアにMicrosoftの署名証明書が含まれており、MicrosoftはUEFIブートローダ署名サービスも他の人に提供するため、セキュアブート互換Linuxブートローダで最も一般的な署名はMicrosoftの署名です。 。

GRUBを含むリムーバブルメディアがセキュアブートと互換性がある場合、実際の<partition root>/efi/boot/bootx64.efiファイルは次のようになります。スペーサープリローダー。セキュアブートシステムにLinuxを永久にインストールすると、shimプリローダを見つけることができますshimx64.efi。 Deployment Managerの自己署名証明書とオプションで、システム所有者の自己証明書(MOK =マシン所有者キーと呼ばれる)のセキュリティブートサポートを追加できます。残念ながら、すべてのUEFIファームウェアの実装がファームウェアに含まれているセキュアブートキーを簡単にカスタマイズする方法を許可するわけではないため、これは必要です。

証明書を追加すると、shimプリローダはgrubx64.efi同じディレクトリに名前が付けられた実際のブートローダをロードします。 (技術的には実際にはGRUBである必要はありません。シムフリーローダーにプログラムされたデフォルトのファイル名にすぎません。)ファイルも署名する必要がありますが、署名するときにMicrosoft証明書ではなくDeployment Managerの独自の証明書を使用する可能性があります。

この目的は、ディストリビューション管理者が必要に応じてGRUBの更新されたバージョンを簡単にパッケージ化してリリースできるようにすることです。これは、ディストリビューションマネージャの独自のキーを使用してGRUBに署名できるためです。 shim プリローダを更新する必要がある場合は、デプロイメンテナンス担当者はマイクロソフトに連絡し、更新された shim に再署名する必要があります。

おすすめ記事