システムがどのGRUB2メニューエントリで起動されたかを検出する

システムがどのGRUB2メニューエントリで起動されたかを検出する

私は KVM のないリモート サーバーで作業しており、ブート ローダー メニューの内容を変更しています。何か失敗した場合に備えて、フォールバックと「デフォルトの 1 度限りのブート」オプションを有効にしました。

GRUB2 項目リストのどのメニュー エントリが最終的に選択されたかを (起動後に) 知る方法はありますか? そうすれば、フォールバックが発生したかどうか (つまり、「デフォルト ワンス」が失敗したかどうか) がわかります。

私の には次のようなエントリがあります/etc/grub/grub.cfg:

menuentry 'Ubuntu, with Linux 2.6.32-28-generic-pae TEST' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    search --no-floppy --fs-uuid --set f70c6784-490f-4737-8168-cbcce4793b2b
    linux   /vmlinuz-2.6.32-28-generic-pae root=/dev/sda3 ro   panic=5
    initrd  /initrd.img-2.6.32-28-generic-pae
}

そこに何らかの環境変数を設定して、起動後にどのエントリがロードされたかを確認できる方法はありますか? あるいは、GRUB2 にはすでにこれを認識する何らかの方法があるのでしょうか?

答え1

ラインに入力したものはすべてlinux経由で利用可能になる/proc/cmdlineため、そこに一意の識別子を入力できます。

関連情報