无忧启动论坛

标题: 自动检测 EFI 文件的菜单项 [打印本页]

作者: dsfgamesky    时间: 2019-11-2 21:06
标题: 自动检测 EFI 文件的菜单项
本帖最后由 dsfgamesky 于 2019-11-3 12:22 编辑
  1. submenu "检测EFI引导程序" --class=find.efi {
  2.         set efi_found=false
  3.         for efi in (*,gpt*)/efi/*/*.efi (*,gpt*)/efi/*/*/*.efi (*,gpt*)/*.efi (*,gpt*)/efi/*.efi ; do
  4.                 regexp --set=1:efi_device '^\((.*)\)/' "${efi}"
  5.                 if [ -e "${efi}" ]; then
  6.                         efi_found=true
  7.                         menuentry "${efi}" --class=efi {chainloader ${2}${1}}
  8.                 fi
  9.         done
  10.         if [ "${efi_found}" == true ]; then
  11.                 menuentry "返回" --class=canel {configfile ${prefix}/grub.cfg}
  12.         else
  13.                 menuentry "未找到 EFI 文件!" --class=find.none {configfile ${prefix}/grub.cfg}
  14.         fi
  15. }
复制代码

从 Manjaro 的 grub.cfg 里面复制过来的菜单项(进行了一些修改,但是改动不大),但是第一次进入的时候找不到 EFI 文件,但是第二次进入的时候却又可以寻找得到了,这个菜单项有什么问题吗,请帮我指出来
Manjaro 的 grub.cfg里面的菜单项直接用也不可以,还是和我的那个一样
作者: 窄口牛    时间: 2019-11-3 09:29
改改,菜单名字应该显示文件夹名称(/efi/文件夹名字),最好还能按照关键字译成中文。因为绝大部分发行版都是各有各的文件夹,在efi文件夹下,至于起作用的cfg文件,有的在本目录,有的不在。
作者: dsfgamesky    时间: 2019-11-3 09:57
窄口牛 发表于 2019-11-3 09:29
改改,菜单名字应该显示文件夹名称(/efi/文件夹名字),最好还能按照关键字译成中文。因为绝大部分发行版 ...

这个是显示文件夹名称的,我说的问题是这样的(第一次无法显示这些目录里的 .EFI 文件,但是第二次就可以)


作者: wintoflash    时间: 2019-11-3 11:08
我测试了一下,没这个问题啊 (我只把中文的改成了英文,把gpt的限制去掉了)



作者: dsfgamesky    时间: 2019-11-3 11:38
wintoflash 发表于 2019-11-3 11:08
我测试了一下,没这个问题啊 (我只把中文的改成了英文,把gpt的限制去掉了)

能不能贴出来这个菜单的代码?
作者: dsfgamesky    时间: 2019-11-3 12:21
找到问题了,是少了一句
  1. insmod regexp
复制代码





欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3