
目的は debootstrap を使って Debian をインストールすることです。まず、小さな32GBフラッシュドライブにすべてのシステムをインストールしたいと思います。
GPTパーティションテーブルとGRUBの概念は明確です。パーティションテーブルがあるということです。各パーティションには一意のIDがあります。また、各パーティションにファイルシステムが作成されます。 FileSystem自体は、ファイル、ログ、ディレクトリなどを保存する方法です。これはDataSturtureです。
わかりました明確。
今、ESPがあります。 BOOTLoader が保管されるパーティション。そしてFAT32でなければなりません。そうですか?
これでカーネル、RAMディスクをインポートする必要があります。 FlashStickでESPを作成します。 ESPにGRUBをインストールし、適切なカーネルとRamdiskを選択してください。私はここに閉じ込められています。
- ESPの作り方は? FAT32でさらにフォーマットされた単純なパーティションですか?
- 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.efi
。UEFI NVRAMファームウェア変数に登録してください。(ビューが利用可能ですefibootmgr -v
)。
リムーバブルフラッシュディスクにインストールする場合は、--removable
オプションも指定する必要がありますgrub-install
。ディスク自体は削除できませんが、別のシステムに移動または複製する場合は、--force-extra-removable
このオプションを使用する必要があります。
grub-mkconfig
GRUBまたは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-signed
。grub-efi-amd64-signed
ブート変数がない場合(たとえば、ブート用にリムーバブルメディアを選択したため)、64ビットx86 UEFIシステムはパス名(Windowsスタイル)を見つけます\EFI\BOOT\BOOTx64.efi
。 GRUBがまたは--removable
オプションを使用してインストールされている場合、--force-extra-removable
実際にはgrubx64.efi
。
したがって、ファームウェアはGRUBを起動し、GRUBは\EFI\debian\grub.cfg
ESPからデータを読み取ります。通常、search
GRUBにUUIDを使用して含まれているパーティションを見つけるように指示する単一のコマンドと、そこから/boot/grub
読み取るために必要なコマンドが含まれます。/boot/grub/grub.cfg
(システムの設定方法によっては、ルートファイルシステムを参照することも、別の/boot
ファイルシステムを参照することもできます。どちらも機能します。)
実際の構成を読み取ると、/boot/grub/grub.cfg
GRUBはカーネルファイルとinitramfsファイルを見つけることができる場所と、ユーザーに表示するメニュー項目を知ることができます。その後、GRUBは選択したカーネルファイルとinitramfsファイルをロードし、指定されたカーネル起動オプションをカーネルコマンドラインに渡してカーネルを起動します。この時点で、GRUB、ESP、およびディレクトリ/boot
の起動操作が完了しました。- この時点からは該当項目なしでスタートアップを進行することができます。
カーネルは、root=
カーネルブートオプションと initramfs のすべてのスクリプトに基づいてルートファイルシステムを探します。ルートファイルシステムを見つけてスキャンし(必要な場合)、マウントすると、起動プロセスは物理ファイルシステムにアクセスできます。/etc
そしてそこから得た情報に基づいて。
起動時のカーネルは絶対に必要ESPにアクセスする方法はありません/boot
。カーネルが起動すると、ブートローダとファームウェアはすでにそこから必要なものをすべて読みます。 ESPは、/boot/efi
ブートローダとその設定の更新を容易にするためにのみインストールされます。これを実行しない予定の場合(たとえば、イメージ全体の再インストールを通じてアップデートを受信する組み込みデバイスシステムから)、ESPを完全に削除できます。