无忧启动论坛

标题: GRUB2 进入菜单时,加载mod再加载主题菜单显示异常 [打印本页]

作者: dsfgamesky    时间: 2019-11-24 20:43
标题: GRUB2 进入菜单时,加载mod再加载主题菜单显示异常
本帖最后由 dsfgamesky 于 2019-11-24 20:44 编辑

GRUB2 安装 mod 再安装主题显示的菜单后面会有一个控制台,而且 timeout 也无法启用
这样子怎么办?



菜单:
insmod cat
cat  --dos --set=modlist $prefix/insmod.lst
for module in ${modlist} ; do
        insmod ${module}
done
set gfxmode=auto
set theme=${prefix}/themes/default/theme.txt
set gfxterm_font=Unifont\ Regular\ 16
terminal_output gfxterm
loadfont ${prefix}/fonts/unifont-regular-16.pf2

menuentry "menu 1" --unrestricted {
        echo 1
}

menuentry "menu 2" --unrestricted {
        echo 2
}

insmod.lst:

  1. efi_gop
  2. efi_uga
  3. font
  4. png
  5. jpeg
  6. gfxterm
  7. terminal
  8. regexp
  9. efiload
  10. chain
  11. boot
  12. search
  13. wimboot
  14. progress
  15. linux
  16. lua
  17. read
  18. echo
  19. commandline
  20. shell
  21. efifwsetup
  22. reboot
  23. halt
复制代码





作者: wintoflash    时间: 2019-11-24 21:11
先关掉进度显示
  1. export enable_progress_indicator=0
复制代码

有需要的时候再打开。

另外我看到你是在UEFI下,只要模块是grub-mkimage在生成grub.efi的时候加入的,就没必要再加载一遍。


作者: 江南一根葱    时间: 2019-11-25 19:11
本帖最后由 江南一根葱 于 2019-11-25 19:18 编辑

这主题好像有点创意


不过总觉得会爬出什么东西来。。

作者: dsfgamesky    时间: 2019-11-29 18:26
江南一根葱 发表于 2019-11-25 19:11
这主题好像有点创意

Breeze的菜单框,Vimix的背景。。。。觉得混搭还挺好看的
放心食用,爬不出来贞子小姐姐的~~

作者: dsfgamesky    时间: 2019-11-29 21:10
本帖最后由 dsfgamesky 于 2019-11-29 21:12 编辑
wintoflash 发表于 2019-11-24 21:11
先关掉进度显示

有需要的时候再打开。

再问一个问题
menuentry "${a}" --unrestricted {
        if [ "2" == ${a} ]; then
                set a=1
        elif [ "1" == ${a} ]; then
                set a=2
        fi
        pop_env a
}

怎么让它执行完之后让菜单项的值也变呢(就是刷新菜单)?

作者: wintoflash    时间: 2019-11-29 21:21
dsfgamesky 发表于 2019-11-29 21:10
再问一个问题
menuentry "${a}" --unrestricted {
        if [ "2" == ${a} ]; then

自己调用自己吧

menuentry "${a}" --unrestricted {
    if [ "2" == ${a} ]; then
        set a=1
    elif [ "1" == ${a} ]; then
        set a=2
    fi
    pop_env a
    configfile /boot/grub/grub.cfg
}
作者: dsfgamesky    时间: 2019-11-29 21:40
wintoflash 发表于 2019-11-29 21:21
自己调用自己吧

menuentry "${a}" --unrestricted {

如果这个菜单项是在子菜单里,那么就没法子更改了吗(不返回到父菜单)?

作者: wintoflash    时间: 2019-11-29 21:54
一旦载入菜单,菜单的title就是定死的
不如submenu "" {
if ... ; then
menuentry "1"
else
menuentry "2"
fi
}
作者: dsfgamesky    时间: 2019-11-29 22:15
wintoflash 发表于 2019-11-29 21:54
一旦载入菜单,菜单的title就是定死的
不如submenu "" {
if ... ; then

嗯,看来是不能改了那您知道怎样一进入grub2自动引导第一个菜单吗?

作者: wintoflash    时间: 2019-11-29 22:48
dsfgamesky 发表于 2019-11-29 22:15
嗯,看来是不能改了那您知道怎样一进入grub2自动引导第一个菜单吗?

timeout和default
作者: dsfgamesky    时间: 2019-11-29 22:56
本帖最后由 dsfgamesky 于 2019-11-29 22:57 编辑
wintoflash 发表于 2019-11-29 22:48
timeout和default

这个for循环代码有问题吗?一直显示“error: disk 'hd0,gpt1' not found!”
insmod regexp
for module in ${prefix}/${grub_cpu}-${grub_platform}/*.mod ; do
        regexp --set=1:module '.*/(.*)\.mod' "${module}"
        insmod ${module}
done
还有,timeout=0不管用啊。



作者: wintoflash    时间: 2019-11-29 23:04
dsfgamesky 发表于 2019-11-29 22:56
这个for循环代码有问题吗?一直显示“error: disk 'hd0,gpt1' not found!”
insmod regexp
for module  ...

timeout最小值为1
设为0本身不合理,你都不显示,还要菜单干啥
作者: wintoflash    时间: 2019-11-29 23:16
dsfgamesky 发表于 2019-11-29 22:56
这个for循环代码有问题吗?一直显示“error: disk 'hd0,gpt1' not found!”
insmod regexp
for module  ...

前面说了,不要瞎用insmod
你这是加载了不该加载的模块(比如ehci),导致不能访问磁盘了




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