を実行すると、grub-install /dev/sdY
アクティブシステムのブートローダ(/ dev / sdX#をrootとしてマウントしたと仮定)をsdYに必要なEFIとマザーボードのNVRAMに転送するようです。
- {
/dev/sdX#
install to/
; andgrub-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/
?
ありがとうございます。
その他の研究ノート:
答え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