ESPとGRUBのインストール

ESPとGRUBのインストール

目的は debootstrap を使って Debian をインストールすることです。まず、小さな32GBフラッシュドライブにすべてのシステムをインストールしたいと思います。

GPTパーティションテーブルとGRUBの概念は明確です。パーティションテーブルがあるということです。各パーティションには一意のIDがあります。また、各パーティションにファイルシステムが作成されます。 FileSystem自体は、ファイル、ログ、ディレクトリなどを保存する方法です。これはDataSturtureです。

わかりました明確。

今、ESPがあります。 BOOTLoader が保管されるパーティション。そしてFAT32でなければなりません。そうですか?

これでカーネル、RAMディスクをインポートする必要があります。 FlashStickでESPを作成します。 ESPにGRUBをインストールし、適切なカーネルとRamdiskを選択してください。私はここに閉じ込められています。

  1. ESPの作り方は? FAT32でさらにフォーマットされた単純なパーティションですか?
  2. GRUBをインストールする場所をどのように知ることができますか?どのように構成しますか?私も知っていますgrub-mkconfig- そしてLinuxとinitrdを設定する必要があることを知っていますが、まだ少し混乱しています。

ここから仕事が間違って始めます。

ESPをファイルシステムの残りの部分にどのように接続しますか?カーネルは、すべてのファイルと設定を検索する場所をどのように知ることができますか?

GRUBの起動からカーネルの起動、パラメータの渡し、FileSystmへのESPインストールへの移行は、奇妙で厄介です。

助けが必要です。

ありがとうございます。

ベストアンサー1

ESPの作り方は? FAT32でさらにフォーマットされた単純なパーティションですか?

はい、FAT32でフォーマットされた単純なパーティションです(最新のUEFIバージョンでは他の形式のFATも許可できます)。パーティションタイプUUIDGPTスタイルのパーティションテーブルは、EFIシステムパーティション(または縮小してESP)であることを示すように設定されています。 MBRパーティションディスクからUEFIスタイルを起動する場合は、ESPパーティションタイプコードを0xef通常のFAT32パーティションタイプコードの代わりに設定する必要があります。

GRUBをインストールする場所をどのように知ることができますか?どのように構成しますか?

GRUBをインストールするには、grub-installこのコマンドを使用する必要があります。 GRUBをインストールする必要があるディスクまたはパーティションのデバイス名を引数として使用します。

ディスクにESPが1つしかない場合(通常は推奨)、以前のBIOSスタイルGRUBをインストールしたときと同じように、または/dev/sdaなどのディスク装置全体を指定できます。/dev/nvme0n1自動的にESPを見つけて記録しますgrubx64.efiUEFI NVRAMファームウェア変数に登録してください。(ビューが利用可能ですefibootmgr -v)。

リムーバブルフラッシュディスクにインストールする場合は、--removableオプションも指定する必要がありますgrub-install。ディスク自体は削除できませんが、別のシステムに移動または複製する場合は、--force-extra-removableこのオプションを使用する必要があります。

grub-mkconfigGRUBまたはDebian関連のupdate-grubラッパーがインストールされたら、それを使用してGRUB構成ファイルを生成できます。

Debianでは、ESPの標準マウントポイントはです/boot/efi。他のディストリビューションではこれを異なる方法で実行できます。


システムが UEFI モードで起動すると、ファームウェアはまず NVRAM ブート変数で起動順序を確認します。 UEFIスタイルの起動変数は、デバイス、デバイスのESPパーティション(主にESPの一意のPARTUUIDとして識別されます)、およびそのESPで使用される起動ファイルを指定します。永久にインストールされたDebianディストリビューションの場合、起動ファイルのパス名は(ファームウェアが通常表すWindowsスタイル)、またはセキュアブート\EFI\debian\grubx64.efi互換\EFI\debian\shimx64.efi性も必要で、パッケージがインストールされている場合ですshim-signedgrub-efi-amd64-signed

ブート変数がない場合(たとえば、ブート用にリムーバブルメディアを選択したため)、64ビットx86 UEFIシステムはパス名(Windowsスタイル)を見つけます\EFI\BOOT\BOOTx64.efi。 GRUBがまたは--removableオプションを使用してインストールされている場合、--force-extra-removable実際にはgrubx64.efi

したがって、ファームウェアはGRUBを起動し、GRUBは\EFI\debian\grub.cfgESPからデータを読み取ります。通常、searchGRUBにUUIDを使用して含まれているパーティションを見つけるように指示する単一のコマンドと、そこから/boot/grub読み取るために必要なコマンドが含まれます。/boot/grub/grub.cfg(システムの設定方法によっては、ルートファイルシステムを参照することも、別の/bootファイルシステムを参照することもできます。どちらも機能します。)

実際の構成を読み取ると、/boot/grub/grub.cfgGRUBはカーネルファイルとinitramfsファイルを見つけることができる場所と、ユーザーに表示するメニュー項目を知ることができます。その後、GRUBは選択したカーネルファイルとinitramfsファイルをロードし、指定されたカーネル起動オプションをカーネルコマンドラインに渡してカーネルを起動します。この時点で、GRUB、ESP、およびディレクトリ/bootの起動操作が完了しました。- この時点からは該当項目なしでスタートアップを進行することができます。

カーネルは、root=カーネルブートオプションと initramfs のすべてのスクリプトに基づいてルートファイルシステムを探します。ルートファイルシステムを見つけてスキャンし(必要な場合)、マウントすると、起動プロセスは物理ファイルシステムにアクセスできます。/etcそしてそこから得た情報に基づいて。

起動時のカーネルは絶対に必要ESPにアクセスする方法はありません/boot。カーネルが起動すると、ブートローダとファームウェアはすでにそこから必要なものをすべて読みます。 ESPは、/boot/efiブートローダとその設定の更新を容易にするためにのみインストールされます。これを実行しない予定の場合(たとえば、イメージ全体の再インストールを通じてアップデートを受信する組み込みデバイスシステムから)、ESPを完全に削除できます。

おすすめ記事