デバイスが利用できない場合は、グルーブメニューの項目を非表示にしますか?

デバイスが利用できない場合は、グルーブメニューの項目を非表示にしますか?

私のメニューにはいくつかの項目があります。GRUB2メニューの一部はリムーバブルデバイス(Ventoy、Windowsなど)を指しています。ポイントするデバイス/パーティション/ラベルに使用できないメニュー項目を自動的に一時的に非表示にするか、灰色で表示するようにGrubを設定する方法はありますか?

これに関する情報が得られないので「絶対」と答えることができるようですが...

答え1

アイテムを動的に追加するためのArtemの提案を使用してこれが私がしたことです(私のgrub.cfgで動作するようにケース/esacを取得できません)。

for dev in LIVEBOOT VTOYEFI ESP; do
  set preroot=""
  search --no-floppy --label "$dev" --set preroot
  if [ "$preroot" != "" ]; then
    if [ "y$dev" == "yLIVEBOOT" ]; then
        menuentry "Fedora KDE Live [EFI] ($dev)" $preroot $dev --class fedora --class gnu-linux --class gnu --class os {
            set root=$2
            linuxefi /images/pxeboot/vmlinuz root=live:CDLABEL=$3 rd.live.image quiet rhgb
            initrdefi /images/pxeboot/initrd.img
        }
    fi
    if [ "y$dev" == "yESP" ]; then
        menuentry "Ruindows [SSD] ($dev)" $preroot --class windows --class os {
            insmod fat
            set root=$2
            chainloader /efi/Microsoft/Boot/bootmgfw.efi
        }
    fi
    if [ "y$dev" == "yVTOYEFI" ]; then
        menuentry "Ventoy [256GB pendrive] ($dev)" $preroot --class lubuntu --class os {
            insmod fat
            set root=$2
            chainloader /EFI/BOOT/BOOTX64.EFI
        }
    fi
  fi
done

たぶんpreroot変数は実際には必要なくコードを単純化するかもしれませんが、もしそうなら...

関連情報