无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5822|回复: 12
打印 上一主题 下一主题

GRUB2 进入菜单时,加载mod再加载主题菜单显示异常

  [复制链接]
跳转到指定楼层
1#
发表于 2019-11-24 20:43:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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
复制代码




2#
发表于 2019-11-24 21:11:49 | 只看该作者
先关掉进度显示
  1. export enable_progress_indicator=0
复制代码

有需要的时候再打开。

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

点评

再问一个问题 怎么让它执行完之后让菜单项的值也变呢(就是刷新菜单)?  详情 回复 发表于 2019-11-29 21:10

评分

参与人数 1无忧币 +5 收起 理由
dsfgamesky + 5 很给力!

查看全部评分

回复

使用道具 举报

3#
发表于 2019-11-25 19:11:36 | 只看该作者
本帖最后由 江南一根葱 于 2019-11-25 19:18 编辑

这主题好像有点创意


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

点评

Breeze的背景,Vimix的主题。。。。觉得混搭还挺好看的 放心食用,爬不出来贞子小姐姐的~~  详情 回复 发表于 2019-11-29 18:26
回复

使用道具 举报

4#
 楼主| 发表于 2019-11-29 18:26:25 | 只看该作者
江南一根葱 发表于 2019-11-25 19:11
这主题好像有点创意

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

使用道具 举报

5#
 楼主| 发表于 2019-11-29 21:10:27 | 只看该作者
本帖最后由 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
}

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

点评

自己调用自己吧 menuentry "${a}" --unrestricted { if [ "2" == ${a} ]; then set a=1 elif [ "1" == ${a} ]; then set a=2 fi pop_env a configfile /boot/grub/gr  详情 回复 发表于 2019-11-29 21:21
回复

使用道具 举报

6#
发表于 2019-11-29 21:21:39 | 只看该作者
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
}

点评

如果这个菜单项是在子菜单里,那么就没法子更改了吗(不返回到父菜单)?  详情 回复 发表于 2019-11-29 21:40
回复

使用道具 举报

7#
 楼主| 发表于 2019-11-29 21:40:24 | 只看该作者
wintoflash 发表于 2019-11-29 21:21
自己调用自己吧

menuentry "${a}" --unrestricted {

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

使用道具 举报

8#
发表于 2019-11-29 21:54:52 | 只看该作者
一旦载入菜单,菜单的title就是定死的
不如submenu "" {
if ... ; then
menuentry "1"
else
menuentry "2"
fi
}

点评

嗯,看来是不能改了那您知道怎样一进入grub2自动引导第一个菜单吗?  详情 回复 发表于 2019-11-29 22:15
回复

使用道具 举报

9#
 楼主| 发表于 2019-11-29 22:15:21 | 只看该作者
wintoflash 发表于 2019-11-29 21:54
一旦载入菜单,菜单的title就是定死的
不如submenu "" {
if ... ; then

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

点评

timeout和default  详情 回复 发表于 2019-11-29 22:48
回复

使用道具 举报

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

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}  详情 回复 发表于 2019-11-29 22:56
回复

使用道具 举报

11#
 楼主| 发表于 2019-11-29 22:56:38 | 只看该作者
本帖最后由 dsfgamesky 于 2019-11-29 22:57 编辑

这个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不管用啊。


点评

前面说了,不要瞎用insmod 你这是加载了不该加载的模块(比如ehci),导致不能访问磁盘了  详情 回复 发表于 2019-11-29 23:16
timeout最小值为1 设为0本身不合理,你都不显示,还要菜单干啥  详情 回复 发表于 2019-11-29 23:04
回复

使用道具 举报

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

timeout最小值为1
设为0本身不合理,你都不显示,还要菜单干啥
回复

使用道具 举报

13#
发表于 2019-11-29 23:16:03 | 只看该作者
dsfgamesky 发表于 2019-11-29 22:56
这个for循环代码有问题吗?一直显示“error: disk 'hd0,gpt1' not found!”
insmod regexp
for module  ...

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

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-29 13:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表