无忧启动论坛

标题: 分享我现在使用的Grub2菜单 [打印本页]

作者: gamelife    时间: 2013-12-9 22:27
标题: 分享我现在使用的Grub2菜单
本帖最后由 gamelife 于 2013-12-9 23:15 编辑

我现在使用的Grub2启动菜单,以后也不打算添加功能了。
没使用主题,也不保证兼容性。以后也不打算浪费时间在这个上了。

config中tools.cfg是工具函数。

bin存放到是一些外部引用程序 如ramdisk、grub4dos等

没有加入mac os启动菜单,想添加到可以参考config/windows.cfg写写。

---------------------------------------------------------

grub到资料实在太少了。除非去肯源码,不然只能使用几个有限到功能。
我惭愧,找了很久,都不知道到底有没有类似管道符的功能。
最后还是在super_grub2_disk_hybrid中看到了个regexp的星号*通配符用法。
这才写出自动查找和文件浏览。

感觉这玩意没啥前景了~~~

---------------------------------------------------------
一些文档上找不到的用法


insmod regexp   启用正则表达式
        *星号可以当作通配符用
        如: echo *   #列出所有可用驱动器
                echo (*)  #列出所有可以用分区
                echo /*   #列出所有当前root下所有文件和目录
                echo /a*  #列出所有小写a开头到文件和目录
                for aa in (*)/bootmgr; do ... done #循环处理 所有分区下的bootmgr


“”双引号可以把如空格星号等当作普通字符处理。包括*也会被当普通字符处理。
‘’单引号代表除了一些特殊符号外(如:转意字符\),都当作普通字符处理。

test 命令:
        格式:test 表达式
        返回值:在$?中,0=true\1=false
        表达式:
                1)判断表达式 (注意空字符串和空格)
                        表达式                                        为真
                        ! 表达式                                        为假
                        表达式1 -a 表达式2                表达式1 AND 表达式2
                        表达式1 -o 表达式2                表达式1 OR 表达式2
                2)判断字符串
                        -n 字符串                                字符串的长度非零
                        -z 字符串                                字符串的长度为零
                        字符串1 = 字符串2                字符串相等
                        字符串1 != 字符串2                字符串不等
                3)判断整数
                        整数1 -eq 整数2                        整数相等
                        整数1 -ge 整数2                        整数1大于等于整数2
                        整数1 -gt 整数2                        整数1大于整数2
                        整数1 -le 整数2                        整数1小于等于整数2
                        整数1 -lt 整数2                        整数1小于整数2
                        整数1 -ne 整数2                        整数1不等于整数2
                4)判断文件
                        -r File                                        文件存在并且可读
                        -w File                                        文件存在并且可写
                        -e File                                        文件存在
                        -d File                                        文件存在并且是目录
                        -f File                                        文件存在并且是文件

条件循环:
        if command; then commands; [elif command; then commands;] ... [else commands;] fi

        for var in word+1 word+2 ... word+n; do commands; done

        while command; do commands; done

        until command; do commands; done

声明函数:
        function name { commands; ... }


---------------------------------------------------------


没有使用默认路径!如果想安装到默认路径请自行修改配置文件和core.img

注意,自动搜索win启动项有bug。无法识别包含大写的ntldr和bootmgr

Grub2自身有个奇怪到BUG----读取exfat的文件会出错。具备表现在如果文件大于1簇时,就会报错。(一直也没见到修复)























---------------------------------------------------------
     百度云共享


Grub2模板.part1.rar (950 KB, 下载次数: 1118)           Grub2模板.part2.rar (950 KB, 下载次数: 1082)           Grub2模板.part3.rar (804 KB, 下载次数: 1502)
---------------------------------------------------------
作者: lthao    时间: 2013-12-10 16:26
谢谢分享。。

题外话:移动硬盘能安装上PE系统吗? U盘手头只有4G的,容量少点  移动硬盘有1T的 可以放不少软件 系统 ghost
作者: shan    时间: 2013-12-11 00:48
多谢楼主分享,上午学习。
作者: devilma    时间: 2013-12-11 20:45
不错,楼主提供的东西受益匪浅,谢谢了!
作者: 2012eye    时间: 2013-12-13 22:01
谢谢谢谢谢谢谢谢
作者: 2012列兵    时间: 2013-12-27 09:32
受益了,谢谢!
作者: 北海    时间: 2014-1-29 07:44
受益匪浅,谢谢了
作者: qj_tzy    时间: 2014-1-29 09:12
感谢楼主分享的菜单,我一直想仔细学习一下GRUB2,但很多操作要在linux系统下进行,因对linux没去学习过,感觉很难。

grub2的资料确实太少,楼主若有它的资料,是否也一并分享下?
作者: sxpzp    时间: 2014-2-7 08:30
谢谢分享,正在学习中。
作者: zx7jy    时间: 2014-2-24 22:30
楼主高手呢,谢谢分享资料
作者: suangsuang    时间: 2014-3-15 18:43
这个真的很好
作者: wuyouhou    时间: 2014-4-3 19:56
①shutdown.exe -s -t 00关机,重启,这两种情况有彻底关机状态,其它都是快速关机。
②在efiBIOS里打开从外部装置引导启动(即允许),就只能在彻底关机或重启情况下才能进入grub2启动工具盘。
③在efiBIOS里关闭从外部装置引导启动(即禁用),也就是出厂的默认设置,在全部形式的关机情况下,用急救键启动机器,都能进入grub2启动工具盘。简单说就是,用“关机”按钮关闭电脑后,用急救键从usb盘启动机器。
经验是,凡是看到睡眠关机重启等多个按钮在一起的关机,都是快速关机啊。
作者: wuyouhou    时间: 2014-4-3 19:57
efiBIOS允许由外接设备启动,并且系统处于彻底关机状态,插进usb盘,按开机键开机,就将以usb启动盘启动电脑机器。此是正规启动工具盘。
在系统里用“重启”按钮重新启动电脑,等于彻底关机连着冷开机。所以,若前efiBIOS允许由外接设备启动,此时正处在系统或正常开机进入系统,点击“重启”按钮重新启动电脑,快要关机时插进USB盘,就从usb盘启动啦,此亦是正规启动工具盘。
若efiBIOS允许由外接设备启动,但系统处于快速关机(即核心休眠关机)状态(用“关机”按钮关闭电脑),由此,用急救键或者用开机键开机,都将不能进入工具盘。
如果只想按急救键开机来从usb启动盘启动电脑,此前就可以不用重新设置efiBIOS状态,保持其默认设置,这样方便更好最妥善。
作者: wuyouhou    时间: 2014-4-3 20:05
一直在寻求这种功能性的菜单,原来在这里。谢谢楼主,万般辛苦啦。
用起来真爽啊,好东西,好东西。楼主是行家,我们菜鸟赞叹不已啊。
作者: wuyouhou    时间: 2014-4-4 08:43
如果只想按急救键开机来从usb启动盘启动电脑,此前就可以不用重新设置efiBIOS状态,保持其默认设置,这样方便快捷。其中如果,快速关机后,在维护环境里,于C盘即原系统区,随便取读,莫做写存。
④快速关机后,在维护环境里,于C盘即原系统区,随便取读,莫做写存。因为,此时新存进到其中的文件,在重新开机回到正常系统时,就全部是废品或丢失,其所占用的空间还得用分区的驱动器属性里的工具晃一遍才能回来。
作者: dave496    时间: 2014-4-12 13:20
又学习啦 谢谢
作者: wuyouhou    时间: 2014-4-16 22:01
一个小小的学习体会,与菜鸟大众分享,请专业们莫笑话。
#一个小小提示也是曾经遇到的情况

menuentry "[Esc] Return to main menu"  --hotkey="ESC" {
  configfile ${prefix}/grub.cfg
  configfile ${prefix}/grub2.cfg
  configfile ${prefix}/grub3.cfg
}

submenu "[Esc] Return to main menu"  --hotkey="ESC" {
menuentry "[Esc] Return to main menu"  --hotkey="ESC" {
  configfile ${prefix}/grub.cfg
  configfile ${prefix}/grub2.cfg
  configfile ${prefix}/grub3.cfg
}
}

#此二菜项的Esc热键应该只是个提示,不是真正的热键。
#这种返回菜项是两种途径混用。
#按Esc键是真正地返回原来根据地的环境和菜单。
#选中回车则是链接式以新环境再次加载原菜单,没有返回根据地,仍需多用Esc键回撤返回到根据地。
#因为Esc键没允许用来作菜单热键,而是grub2系统里回撤退出返回等功能的专用键。
#用Esc键作为热键的菜单项,在按Esc键后菜单本身不会被执行,但执行Esc键的功能。若选择该菜项按回车键,则该菜项就被执行。

#可以用下示菜单来测试:

menuentry "[Esc] Return to main menu"  --hotkey="ESC" {
echo -e "\n\n\n\n\n\a";
echo "    press Esc key, return to main menu"
echo "    请按Esc键,返回主菜单,或根据地菜单。"
echo "    runing this menu 菜单执行中。。。"
echo "    等待9秒看清屏幕,按Esc键立即唤醒本屏幕以继续。哈哈,Esc键有许多用途!";
sleep --verbose --interruptible 9; #唯Esc键能唤醒
  #configfile ${prefix}/grub.cfg
  #configfile ${prefix}/grub2.cfg
  #configfile ${prefix}/grub3.cfg
}

submenu "[Esc] Return to main menu"  --hotkey="ESC" {
menuentry "[Esc] Return to main menu"  --hotkey="ESC" {
echo -e "\n\n\n\n\n\a";
echo "    press Esc key, return to main menu"
echo "    请按Esc键,返回主菜单,或根据地菜单。"
echo "    runing this menu 菜单执行中。。。"
echo "    等待9秒看清屏幕,按Esc键立即唤醒本屏幕以继续。哈哈,Esc键有许多用途!";
sleep --verbose --interruptible 9; #唯Esc键能唤醒
  #configfile ${prefix}/grub.cfg
  #configfile ${prefix}/grub2.cfg
  #configfile ${prefix}/grub3.cfg
}
}

#如此实现,就给出一个纯提示的返回菜单,唯有按Esc键一条正确路径。同时,不涉及具体的菜单设置等文件,让菜单具有独立性,通用方便实用。最后,一般的菜单里无需设立此菜项
作者: jneny    时间: 2014-4-19 15:36
wuyouhou 发表于 2014-4-16 22:01
一个小小的学习体会,与菜鸟大众分享,请专业们莫笑话。
#一个小小提示也是曾经遇到的情况

menuentry或submenu后面的--hotkey=f1 这应该小写不要引号。
而ESC键是被占用的,用来返回,比如在menuentry 后设置esc,这项并不会因为按esc而进入。
sleep --verbose --interruptible 9这个可以实现类似legacy grub的hiddenmenu作用
作者: wuyouhou    时间: 2014-4-25 06:56
又学习了,增长技能了。谢谢楼主的关注,谢谢楼主回复!
作者: wuyouhou    时间: 2014-5-8 09:51
仅有Android和Windows两个菜单里引用了Grub.cfg这个名称。
作者: wuyouhou    时间: 2014-5-19 21:12
submenu "+ langule。。" {。。。}
请教啦,有谁知道,这样菜单是什么意思?
+号是干什么呢?其后的字符串如何处理?
作者: wuyouhou    时间: 2014-6-11 00:38
grub2是如何加载运行我们通常见到的shellx64.efi等efi应用的呢?用chainloader命令就是行不通啊!请教大侠啦!
作者: change_sh    时间: 2014-6-27 11:08
楼主提供的东西受益匪浅,谢谢
作者: 青青草    时间: 2014-9-25 12:43
楼主,你好!我把grub2安装在u盘,菜单要如何书写,才能达到如下效果?
电脑中如果有windows 8系统,则显示启动windows 8的菜单,否则不显示。
电脑中如果有windows XP系统,则显示启动windows XP的菜单,否则不显示。
请楼主赐教!谢谢了!
作者: ludun    时间: 2014-11-4 23:16
学习了,高手就是高手。
能告诉我一下source ${prefix}/Config/Windows.cfg;与
                  configfile ${prefix}/Config/Windows.cfg;这两种用法的区别吗?
作者: ludun    时间: 2014-11-5 21:17
楼主,运行windows.cfg文件后,不能启动本地硬盘的WinXP,而且,在运行过程中出现错误提示,请您帮助一下,分析一下错误的原因。电脑上的系统确实是ntfs文件格式。

捕获111.PNG (3.85 KB, 下载次数: 211)

捕获111.PNG

作者: ludun    时间: 2014-11-6 22:05
ludun 发表于 2014-11-5 21:17
楼主,运行windows.cfg文件后,不能启动本地硬盘的WinXP,而且,在运行过程中出现错误提示,请您帮助一下, ...

找到这个毛病的所在了。是在Windows.cfg菜单中,有个Settimeot=15,应该在Set和Timeout之间有个空格。

作者: hymif    时间: 2014-11-8 22:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: wuyu12315    时间: 2014-12-8 23:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: devilma    时间: 2016-1-25 11:54
学习了,这贴好,顶了
作者: kyvi    时间: 2016-6-10 19:02
楼主提供的这些命令很实用啊,谢谢分享
作者: gigqp    时间: 2016-7-12 11:08
谢谢提供,继续努力!
作者: XH无忧    时间: 2016-12-6 19:34
继续学习中
作者: zcex1986    时间: 2018-2-11 22:44
这个菜单不会用啊!菜单文件位置好像不对啊!
作者: 冰海之龙    时间: 2020-2-6 15:20

不错,楼主提供的东西受益匪浅,谢谢了!
作者: smod14    时间: 2020-4-3 03:51
thank you
作者: 创新科技2015    时间: 2020-7-18 07:22
很给力!
作者: yuaie    时间: 2020-10-4 08:47
感谢分享
作者: 2012bc    时间: 2021-4-7 09:25
感谢分享?
作者: lpsyuntao    时间: 2021-5-25 20:44
多谢楼主分享,收藏学习。
作者: snaca    时间: 2021-5-31 12:20
新手学习,感谢分享。
作者: lpsyuntao    时间: 2021-6-2 09:11
受益了,谢谢!
作者: zyy    时间: 2021-6-6 10:54
多谢楼主分享,收藏学习
作者: 365天的思念    时间: 2021-6-24 11:15

学习了,这贴好,顶了
作者: javawg    时间: 2023-10-16 10:56
楼主高手呢,谢谢分享资料
作者: myes001    时间: 2024-5-21 16:13
这个好,轻量级的菜单实现




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