![システムがどのGRUB2メニューエントリで起動されたかを検出する](https://rvso.com/image/1316134/%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%8C%E3%81%A9%E3%81%AEGRUB2%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%A8%E3%83%B3%E3%83%88%E3%83%AA%E3%81%A7%E8%B5%B7%E5%8B%95%E3%81%95%E3%82%8C%E3%81%9F%E3%81%8B%E3%82%92%E6%A4%9C%E5%87%BA%E3%81%99%E3%82%8B.png)
私は 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
ため、そこに一意の識別子を入力できます。