特定のブートローダ(例:/ dev / sdX#)を他のEFIシステムパーティション(例:/ dev / sdY)やNVRAMにインストールする方法は?

特定のブートローダ(例:/ dev / sdX#)を他のEFIシステムパーティション(例:/ dev / sdY)やNVRAMにインストールする方法は?

を実行すると、grub-install /dev/sdYアクティブシステムのブートローダ(/ dev / sdX#をrootとしてマウントしたと仮定)をsdYに必要なEFIとマザーボードのNVRAMに転送するようです。

  • { /dev/sdX#install to /; and grub-install /dev/sdY} --> sdX#で定義されたブートローダは、EFIシステムパーティション(ESP)/dev/sdYとNVRAMの起動順序(mobo NVRAMに)をインストールします。

/dev/sdYディスクに障害が発生した場合は、代替パーティションとして別のパーティション(/dev/sdZ#など)からブートローダをインストールするにはどうすればよいですか。

具体的には、私が実行すると正確に何が起こりますかgrub-install?私の考えでは、さまざまなファイル(どのファイルが現在グルーブを構成しているのか、現在コンパイルされてgrub.cfgいるのか)から構成情報をコンパイルし、出力をディレクトリに書き込んで/boot/grub(および/または別のファイルをエクスポートしますか?ディレクトリも/boot/efi?)追加できるようです。 ESPにアップロードし(特にsdX基本的にどのように見えるかを知っていますか?)、最終的にNVRAMブート優先順位リストにリンクするステップですか?

可能なオプションには以下がinstall-grub含まれているようです--bootloader-id(おそらく未使用のオプションを指定してから再配布順序を使用efiupdatemgr)。オプションもありますが、-d使用する構成ファイルをどのように知ることができますか?それでは、chrootを実行する必要があるか、起動する必要があるのですか? -22 現在は起動しないからです。 grubにすべての有効な設定を認識させることができない場合は/boot/

ありがとうございます。

その他の研究ノート:

https://help.ubuntu.com/community/Grub2/インストール中

答え1

(ユースケース:nvmeドライブを起動できません)

あなた自身の質問に答えてください:

ついに調べました。grub-installer.EFIシステムパーティション(ESP)に直接作成して作成します/boot/efi。したがって、実際のESPの上に代替ESPをインストールするか、他の場所にインストールし、コマンドライン引数を使用して上書きします。

mkdir -p /mnt/boot/efi
mount /dev/FALLBACK /mnt/boot/efi

これが発生する前に、我々は正常に実行する必要があり、grub-installこれは選択された一部(任意であると仮定)EFIに記録されます。私たちはこのディスクを「マスターディスク」と呼びます。マザーボードのNVRAMエントリが最初の主要EFIインストールを正しく指していることを再確認してください。

efibootmgr -v
ls -l /dev/disk/by-partuuid  # confirm that your first grub-install made an entry pointing to the UUID of /dev/PRIMARY

(これはデバイスです。たとえば、nvmeデバイスの場合は、デバイスレベルのプレフィックスnvme0n1(ではないnvme0)が必要ですsda。)

これで準備ができました。

grub-install --efi-directory=/mnt/boot/efi --bootloader-id=my-fallback-grub

次に、2つの異なるEFIパーティションに2つのエントリがあることを確認します。

efibootmgr -v

順序を適切に調整してくださいefibootmgr --bootorder 3,1,2,etc

関連情報