GRUBでIDまたはタイトルに代替アイテムを設定するには?

GRUBでIDまたはタイトルに代替アイテムを設定するには?

IDで代替項目を設定したり、サブメニューから項目を選択したりするにはどうすればよいですか?現在有効な唯一のオプションは、番号付きの項目(たとえばset fallback=0)を使用することです。

背景

私たちのチームは、Debianを実行しているデバイスをリモートで更新します。これらのデバイスはリモートでデプロイされ、物理的または KVM アクセスがほとんどないため、実行可能なソリューションではありません。新しいシステムイメージを同じパーティション(この場合は/ dev / sda2)にコピーします。

root@widget:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    1 186.3G  0 disk
├─sda1   8:1    1   953M  0 part /boot
├─sda2   8:2    1  23.3G  0 part /
├─sda3   8:3    1  23.3G  0 part /alt 

パーティションを再マウントした後、イメージが破損していないことを/alt確認したいと思います。これをテストするためにカスタム項目を作成します(例newimg:)/etc/grub.d/40_custom。 ()で始まるUUIDはxxxxxxxxマウントされたパーティション、()で始まるUUIDはマウントされたパーティションです。/bootdev/sda1yyyyyyyy//dev/sda3

menuentry 'Debian 10 (buster) newimg' --id newimg {
        insmod part_msdos
        insmod ext2
        search --no-floppy --fs-uuid --set=root xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        linux /vmlinuz-4.2 root=UUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy ro nomodeset panic=5 quiet
        initrd /initrd.img-4.2
}
set fallback='1>2'

次に、再起動を実行してupdate-grub実行します。grub-reboot newimgイメージが破損した場合、端末へのアクセス権を失わないように代替イメージが必要です。過去には、最初のgrubメニュー項目を置換(set fallback=0)として使用していました。ただし、new は/vmlinuz-4.2最新またはアイテム内で使用されるため、0無意味に置き換えられます。破損した画像を使用して代替をテストしてきましたvmlinuz-4.2。 ~によるとGRUBドキュメント

項目は、数値(階層の各レベルで0から始まる)、タイトル、またはIDで識別できます。

しかし、私が見た唯一の方法は数字を使用することです(サブメニュー項目も機能しません)。他のすべてのオプションについては、次のエラーメッセージが表示されますFailed to boot both default and fallback entries

私が試したこと:

  • フォールバックを()40_customに変更すると項目が選択されますが、代わりに...同じ破損したvmlinuzイメージが選択されます。set fallback='1>2'Advanced options for Debian GNU/Linux > Debian GNU/Linux, with Linux 4.111>01>21>0
  • defaultimgまた、以前のカーネル()を使用して別のカスタムブートエントリを追加しようset fallback=defaultimgとしましたdefaultimg
  • set一重引用符と二重引用符なしで最初の2つのオプションを変更してみました。

GRUBバージョン:2.02+dfsg1-20

ベストアンサー1

おすすめ記事