私のメニューにはいくつかの項目があります。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
変数は実際には必要なくコードを単純化するかもしれませんが、もしそうなら...