![장치를 사용할 수 없을 때 grub 메뉴의 항목을 숨기시겠습니까?](https://linux55.com/image/221522/%EC%9E%A5%EC%B9%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%9D%84%20%EB%95%8C%20grub%20%EB%A9%94%EB%89%B4%EC%9D%98%20%ED%95%AD%EB%AA%A9%EC%9D%84%20%EC%88%A8%EA%B8%B0%EC%8B%9C%EA%B2%A0%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
내 메뉴에는 여러 항목이 있습니다.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
변수가 실제로 필요하지 않고 코드를 단순화할 수도 있지만 만일의 경우에...