无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: hilsonma

[分享] grub2的自动菜单和多功启动(以cfg文件的方式仿造g4d的run/siso)

    [复制链接]
发表于 2020-1-13 17:08:00 | 显示全部楼层
hilsonma 发表于 2020-1-13 16:53
现在设定的是显示所有文件,所以这类隐藏文件也显示的
要屏蔽$开头的文件需要添加筛选功能
你可以使用n ...

好的 谢谢指导,我试一下,另外能不能把 仿真和slic也加进去呢

点评

仿真是不是指map? 我的run程序已经使用map了,你看run.cfg中runx函数,其中的iso文件就是用map来仿真启动的。 slic是指查看oemid吧,这个你到grub2命令行输入相关语句或把语句写到某项菜单即可。当然,编译efi文  详情 回复 发表于 2020-1-13 19:00
回复

使用道具 举报

发表于 2020-1-13 17:38:40 | 显示全部楼层
hilsonma 发表于 2020-1-13 16:53
现在设定的是显示所有文件,所以这类隐藏文件也显示的
要屏蔽$开头的文件需要添加筛选功能
你可以使用n ...

已解决,但是还有一个system文件,估计是分区中的System Volume Information文件夹,但不知怎么屏蔽。再有就是返回上一层时,总是回到根目录,还望再次指导
录制_2020_01_13_17_29_00_721.gif
回复

使用道具 举报

 楼主| 发表于 2020-1-13 19:00:45 | 显示全部楼层
wangziqiang 发表于 2020-1-13 17:08
好的 谢谢指导,我试一下,另外能不能把 仿真和slic也加进去呢

仿真是不是指map?
我的run程序已经使用map了,你看run.cfg中runx函数,其中的iso文件就是用map来仿真启动的。

slic是指查看oemid吧,这个你到grub2命令行输入相关语句或把语句写到某项菜单即可。当然,编译efi文件时要加上acpi模块。详见wintoflash的贴子

点评

返回上一层时,总是回到根目录,还望再次指导.图见63楼  详情 回复 发表于 2020-1-13 19:09
回复

使用道具 举报

发表于 2020-1-13 19:09:40 | 显示全部楼层
hilsonma 发表于 2020-1-13 19:00
仿真是不是指map?
我的run程序已经使用map了,你看run.cfg中runx函数,其中的iso文件就是用map来仿真启 ...

返回上一层时,总是回到根目录,还望再次指导.图见63楼

点评

第一个菜单项是回设备表的,也就是回根目录 后面的文字是提示,意思是要回上一层目录就按ESC键,当前的目录是xxx 经过你的反馈,我确实也发现了问题,比如System Volume Infomation 这一类带空格的目录,现在我  详情 回复 发表于 2020-1-13 20:19
菜单上写了,按ESC返回上一层。  详情 回复 发表于 2020-1-13 19:39
回复

使用道具 举报

发表于 2020-1-13 19:39:39 | 显示全部楼层
wangziqiang 发表于 2020-1-13 19:09
返回上一层时,总是回到根目录,还望再次指导.图见63楼

菜单上写了,按ESC返回上一层。
回复

使用道具 举报

 楼主| 发表于 2020-1-13 20:19:11 | 显示全部楼层
本帖最后由 hilsonma 于 2020-1-13 20:32 编辑
wangziqiang 发表于 2020-1-13 19:09
返回上一层时,总是回到根目录,还望再次指导.图见63楼

第一个菜单项是回设备表的,也就是回根目录
后面的文字是提示,意思是要回上一层目录就按ESC键,当前的目录是xxx

经过你的反馈,我确实也发现了问题,比如System Volume Infomation 这一类带空格的目录,现在我将menuentry后面的参数变量都加上了双引号,但还是有问题,一时还排查不出原因,等我找到原因我会更新。
但我的更新也是不带筛选功能的,你需要的话还是要自己加上筛选语句。如果带筛选的话就不如直接筛选出可启动的文件,也就是支持引导的文件就列自动菜单,不支持的就忽略。因为我想要看的是所有文件,所以我不加筛选功能。

点评

是我没有留意esc的提示,你的想法很好啊,筛选出可启动的文件,也好啊。看着比较整洁舒服。  详情 回复 发表于 2020-1-13 22:47
回复

使用道具 举报

发表于 2020-1-13 22:47:41 | 显示全部楼层
hilsonma 发表于 2020-1-13 20:19
第一个菜单项是回设备表的,也就是回根目录
后面的文字是提示,意思是要回上一层目录就按ESC键,当前的 ...

是我没有留意esc的提示,你的想法很好啊,筛选出可启动的文件,也好啊。看着比较整洁舒服。

点评

已更新。 但是没有筛选,如要筛选可自行添加。 仿照之前筛选$开头文件一样,改成比对扩展名,不符合第二参数的就忽略。 run后面定义第二参数,有第二参数就筛选,没有第二参数就不筛选。 第二参数如:.wim.iso.v  详情 回复 发表于 2020-1-15 12:39
回复

使用道具 举报

发表于 2020-1-14 09:06:19 | 显示全部楼层
太强大了,期待已久。
回复

使用道具 举报

发表于 2020-1-15 08:44:36 | 显示全部楼层
PM里面没法发图。补图。
深度截图_选择区域_20200115084300.png

点评

感谢。之前因为变量没有加引号限定,导致带空格的目录名文件名出错,解决后又因为不知这个文件夹是硬链接而一直排查不到原因,经你解释才明白。  发表于 2020-1-15 12:48
回复

使用道具 举报

 楼主| 发表于 2020-1-15 12:39:39 | 显示全部楼层
wangziqiang 发表于 2020-1-13 22:47
是我没有留意esc的提示,你的想法很好啊,筛选出可启动的文件,也好啊。看着比较整洁舒服。

已更新。
但是没有筛选,如要筛选可自行添加。
仿照之前筛选$开头文件一样,改成比对扩展名,不符合第二参数的就忽略。
run后面定义第二参数,有第二参数就筛选,没有第二参数就不筛选。
第二参数如:.wim.iso.vhd.vhdx.cfg.efi 这样的扩展名序列
可能需要将提取的扩展名大写转小写以便比对
附上从别人处抄来的大写转小写代码供参考(不知是super grub2 boot disk 还是别的启动模板,记不清了。)
lowercase.7z (1.21 KB, 下载次数: 39)

点评

tr命令可以转换大小写.要加tr模块.  详情 回复 发表于 2020-1-15 12:54
回复

使用道具 举报

发表于 2020-1-15 12:54:43 | 显示全部楼层
hilsonma 发表于 2020-1-15 12:39
已更新。
但是没有筛选,如要筛选可自行添加。
仿照之前筛选$开头文件一样,改成比对扩展名,不符合第 ...

tr命令可以转换大小写.要加tr模块.

点评

感谢,先下了收藏 忙过这两天再仔细研究下. 同时也感谢W大师,他之前的很多东西,坛子上都找不到了, 最近跟你们学到了。谢谢!我基础不行,只能硬肯代码,之前是一窍不通,现在能看懂一点点。  详情 回复 发表于 2020-1-15 23:15
感谢指导。原先没有留意tr模块。  详情 回复 发表于 2020-1-15 13:08
回复

使用道具 举报

 楼主| 发表于 2020-1-15 13:08:12 | 显示全部楼层
wintoflash 发表于 2020-1-15 12:54
tr命令可以转换大小写.要加tr模块.

感谢指导。原先没有留意tr模块。
回复

使用道具 举报

发表于 2020-1-15 23:15:02 | 显示全部楼层
wintoflash 发表于 2020-1-15 12:54
tr命令可以转换大小写.要加tr模块.

感谢,先下了收藏 忙过这两天再仔细研究下.

同时也感谢W大师,他之前的很多东西,坛子上都找不到了,

最近跟你们学到了。谢谢!我基础不行,只能硬肯代码,之前是一窍不通,现在能看懂一点点。
回复

使用道具 举报

发表于 2020-1-18 11:46:43 | 显示全部楼层
这个适用于BIOS还是EFI?

点评

适用于UEFI. BIOS下我会使用SISO.  详情 回复 发表于 2020-1-18 11:57
回复

使用道具 举报

 楼主| 发表于 2020-1-18 11:57:14 | 显示全部楼层
hhh333 发表于 2020-1-18 11:46
这个适用于BIOS还是EFI?

适用于UEFI.
BIOS下我会使用SISO.
回复

使用道具 举报

发表于 2020-1-19 08:17:57 | 显示全部楼层
列兵无法下载

点评

http://hilsonma.ys168.com/  详情 回复 发表于 2020-1-19 23:39
回复

使用道具 举报

发表于 2020-1-19 23:18:24 | 显示全部楼层
正是需要的功能
回复

使用道具 举报

 楼主| 发表于 2020-1-19 23:39:40 | 显示全部楼层

评分

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

查看全部评分

回复

使用道具 举报

发表于 2020-1-26 11:44:14 | 显示全部楼层
你好,我看了一下,boot.sdi很迷你,bootmgfw.efi也是2015年的,这个有讲究吗?还是你所选的版本启动兼容性比较好呢? 如果是的话,能说一下从那个adk提取的吗?我最近遇到你的BIOS挑启动盘的现象

点评

纯粹是个人偏好。 我优先使用体积小的。 我把我下载过的PE的都试用了,发现有体积更小的就选用更小的,当然,兼容有问题的就淘汰掉,然后结果就是现在用的这两个文件。目前我个人用没有问题,不能保证在其他电脑有  详情 回复 发表于 2020-1-26 12:51
回复

使用道具 举报

 楼主| 发表于 2020-1-26 12:51:04 | 显示全部楼层
zhxy9804 发表于 2020-1-26 11:44
你好,我看了一下,boot.sdi很迷你,bootmgfw.efi也是2015年的,这个有讲究吗?还是你所选的版本启动兼容性比较 ...

纯粹是个人偏好。
我优先使用体积小的。
我把我下载过的PE的都试用了,发现有体积更小的就选用更小的,当然,兼容有问题的就淘汰掉,然后结果就是现在用的这两个文件。目前我个人用没有问题,不能保证在其他电脑有没有问题。
一般来说,应该是高版本的兼容性会更好吧。

我选用PE的方式原先也是优先体积小的,后来才改成选用启动速度快的。

轻度小体积强迫症

点评

据说,如果用这个体积比较小的boot.sdi,启动某些有多个卷的wim,会出问题。  详情 回复 发表于 2020-1-26 15:49
好的,我也有强迫症.我想把你的这个boot.sdi跟bootmgr的用一个, 你这个配置文件应该怎么写 就是变量该怎么写,bootmgr的boot.sdi在根目录boot目录里面  详情 回复 发表于 2020-1-26 14:39
回复

使用道具 举报

发表于 2020-1-26 14:39:21 | 显示全部楼层
hilsonma 发表于 2020-1-26 12:51
纯粹是个人偏好。
我优先使用体积小的。
我把我下载过的PE的都试用了,发现有体积更小的就选用更小的, ...

好的,我也有强迫症.我想把你的这个boot.sdi跟bootmgr的用一个,
你这个配置文件应该怎么写
就是变量该怎么写,bootmgr的boot.sdi在根目录boot目录里面

点评

先 search -n -s -f /boot/boot.sdi 然后使用 $root/boot/boot.sdi 不想改变root变量的话就先 search -n -s sdidev -f /boot/boot.sdi 然后使用 $sdidev/boot/boot.sdi sdidev这个变量名可以改成其他的你喜欢  详情 回复 发表于 2020-1-26 16:00
回复

使用道具 举报

发表于 2020-1-26 15:49:06 | 显示全部楼层
hilsonma 发表于 2020-1-26 12:51
纯粹是个人偏好。
我优先使用体积小的。
我把我下载过的PE的都试用了,发现有体积更小的就选用更小的, ...

据说,如果用这个体积比较小的boot.sdi,启动某些有多个卷的wim,会出问题。

点评

感谢分享。 我没有试过启动多卷的wim。有你这个提示,如果碰到相关情形我就有数了。  详情 回复 发表于 2020-1-26 16:07
回复

使用道具 举报

 楼主| 发表于 2020-1-26 16:00:11 | 显示全部楼层
本帖最后由 hilsonma 于 2020-1-26 16:01 编辑
zhxy9804 发表于 2020-1-26 14:39
好的,我也有强迫症.我想把你的这个boot.sdi跟bootmgr的用一个,
你这个配置文件应该怎么写
就是变量该怎 ...

先 search -n -s -f /boot/boot.sdi
然后使用 $root/boot/boot.sdi

不想改变root变量的话就先 search -n -s sdidev -f /boot/boot.sdi
然后使用 $sdidev/boot/boot.sdi
sdidev这个变量名可以改成其他的你喜欢的变量名。不指定变量名就默认搜到的分区写入root (修改root变量)

建议放在grub.cfg同一个目录或其下的子目录中,这样就可以不搜索直接使用 prefix 变量
如:$prefix/boot.sdi 或 $preifx/boot/boot.sdi 这样的
prefix变量是指grub.cfg所在目录

bootmgr 使用的boot.sdi 并不一定是在 \boot 的
bootmgr 默认使用 \boot\bcd
bootmgr 使用的boot.sdi的位置在 \boot\bcd 这个配置文件中指定。
回复

使用道具 举报

 楼主| 发表于 2020-1-26 16:07:15 | 显示全部楼层
本帖最后由 hilsonma 于 2020-1-26 16:28 编辑
wintoflash 发表于 2020-1-26 15:49
据说,如果用这个体积比较小的boot.sdi,启动某些有多个卷的wim,会出问题。

感谢分享。
我没有试过启动多卷的wim。有你这个提示,如果碰到相关情形我就有数了。
我还是继续使用小体积的sdi. 如果有人提出问题我会建议他改用单卷wim或自行替换较大那个sdi.
为了大众化傻瓜化使用,现在的软件是越来越大型,我的手机16G -> 32G -> 64G 总是跟不上,没有米啊
所以我一直有小体积强迫症

grub207.jpg

点评

嗯,多谢指导,还是继续向你提问 我下载了几个主题文件,怎么都提示不支持? 主题有论坛的,有你推荐的外国网站下载的. [attachimg]410307[/attachimg]  详情 回复 发表于 2020-1-26 16:26
回复

使用道具 举报

发表于 2020-1-26 16:26:21 | 显示全部楼层
本帖最后由 zhxy9804 于 2020-1-26 16:27 编辑
hilsonma 发表于 2020-1-26 16:07
感谢分享。
我没有试过启动多卷的wim。有你这个提示,如果碰到相关情形我就有数了。
我还是继续使用小 ...

嗯,多谢指导,还是继续向你提问
我下载了几个主题文件,怎么都提示不支持?
主题有论坛的,有你推荐的外国网站下载的.
2020-01-26_162405.png
光盘测试的,
#### For Bios+EFI64/32 edit by H3 ####
#set default=0
#set fallback=0
set gfxmode=1024x768,auto
set gfxterm_font=unicode
set lang=zh_CN
set locale_dir=$prefix/locale
set pager=1
set timeout=30
set enable_progress_indicator=0

#激活图形模式的输出终端,以允许使用中文和背景图
terminal_output gfxterm
#设置背景图片或颜色
#background_image $prefix/themes/winly/wallpaper.png
#if [ $? != 0 ]; then background_color "#003345"
#fi
#加载字体文件($prefix/fonts/unicode.pf2)
loadfont unicode
#加载主题
set theme=$prefix/themes/theme.txt
#export theme

点评

要使用jpg图片,在定制efi文件时需要包含jpeg模块  详情 回复 发表于 2020-1-26 16:34
回复

使用道具 举报

 楼主| 发表于 2020-1-26 16:34:27 | 显示全部楼层
本帖最后由 hilsonma 于 2020-1-26 16:49 编辑
zhxy9804 发表于 2020-1-26 16:26
嗯,多谢指导,还是继续向你提问
我下载了几个主题文件,怎么都提示不支持?
主题有论坛的,有你推荐的外国 ...

要使用jpg图片,在定制efi文件时需要包含jpeg模块
如果要测试各项功能,建议定制一个包含所有模块的efi文件专用于测试,这样在测试时可以避免缺少模块问题。
当然,象我这样的强迫症在真正使用时还是要定制一个较小的efi文件的。
如果确认已有jpeg模块,请自行使用图像软件重新转换一次图片格式为jpg,以防原图片使用了不恰当的文件扩展名。

点评

我用的是wintoflash的,直接双击生产的  详情 回复 发表于 2020-1-26 18:39
回复

使用道具 举报

发表于 2020-1-26 18:39:30 | 显示全部楼层
本帖最后由 zhxy9804 于 2020-1-26 18:43 编辑
hilsonma 发表于 2020-1-26 16:34
要使用jpg图片,在定制efi文件时需要包含jpeg模块
如果要测试各项功能,建议定制一个包含所有模块的efi ...

我用的是wintoflash的,直接双击生成的,看样子大神都化简为繁还有,生成文件后,i386-pc,x86_64-efi是否还必须拷贝进去呢?
wintoflash的包含所有模块应该怎么写呢?

点评

用wintoflash的下载包直接双击生成的efi文件是包含jpeg模块的,你自己转换生成一个jpg图片替换到主题中看支持不支持。  详情 回复 发表于 2020-1-26 20:22
生成文件后,直接使用efi文件,不需要拷贝模块文件夹了。 附件是我从wintoflash某个贴子中复制的模块表(不记得是磁盘仿真还是ntboot还是哪个贴子了,总之模块数量比他的下载包中那个arch\x64\builtin.txt 还要多)  详情 回复 发表于 2020-1-26 20:16
回复

使用道具 举报

 楼主| 发表于 2020-1-26 20:16:05 | 显示全部楼层
zhxy9804 发表于 2020-1-26 18:39
我用的是wintoflash的,直接双击生成的,看样子大神都化简为繁还有,生成文件后,i386-pc,x86_64-efi是否还必 ...

生成文件后,直接使用efi文件,不需要拷贝模块文件夹了。
附件是我从wintoflash某个贴子中复制的模块表(不记得是磁盘仿真还是ntboot还是哪个贴子了,总之模块数量比他的下载包中那个arch\x64\builtin.txt 还要多)。
x64all.txt (841 Bytes, 下载次数: 21)
回复

使用道具 举报

 楼主| 发表于 2020-1-26 20:22:12 | 显示全部楼层
zhxy9804 发表于 2020-1-26 18:39
我用的是wintoflash的,直接双击生成的,看样子大神都化简为繁还有,生成文件后,i386-pc,x86_64-efi是否还必 ...

用wintoflash的下载包直接双击生成的efi文件是包含jpeg模块的,你自己转换生成一个jpg图片替换到主题中看支持不支持。

点评

实测,最新版本wintoflash,不包含,我把buildtxt文件 末尾追加了个jpeg,显示ok了!  详情 回复 发表于 2020-1-26 20:33
回复

使用道具 举报

发表于 2020-1-26 20:33:47 | 显示全部楼层
本帖最后由 zhxy9804 于 2020-1-27 10:25 编辑
hilsonma 发表于 2020-1-26 20:22
用wintoflash的下载包直接双击生成的efi文件是包含jpeg模块的,你自己转换生成一个jpg图片替换到主题中看 ...

实测,最新版本wintoflash,不包含,我把buildtxt文件 末尾追加了个jpeg,显示ok了!
run.cfg是否可以修改最后一段,改成这样子,好共用呢
function xntboot {ntboot -e /Efi/Boot/bootmgfw.efi -s /Boot/boot.sdi $1;}
不过貌似没定义bcd位置

点评

bcd 已经在ntboot 模块内置了。 你可以修改xntboot的定义以符合你的部署 如果路径有问题就在前面加设备变量(指定分区)补充完整。  详情 回复 发表于 2020-1-27 17:03
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-18 21:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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