无忧启动论坛

标题: 巧用Grub2文件管理器配置grub2菜单启动wim、vhd、ISO [打印本页]

作者: 王乐2518    时间: 2020-7-9 19:57
标题: 巧用Grub2文件管理器配置grub2菜单启动wim、vhd、ISO
本帖最后由 王乐2518 于 2020-7-9 19:57 编辑

小白一只,第一次发帖。
请重点看第一句话,对于grub2的命令我是完全不懂的,小白一只,希望大神勿喷。首先说明一下我想法的诞生以及实践过程。
最近几个月才接触到grub2,论坛的资料不算少,当然也不算多,对于菜鸡入门还是不简单的,玩了几天慢慢就淡了,也就没在弄了。
最近上论坛看到一根葱大佬发布的几篇帖子,感觉极好,于是研究了一下,然后和wintoflash大佬请教了一下config文件的作用以及我想借此给grub2文件管理器加上一级grub2菜单的想法(从grub2进如grub2菜单易实现,此处非如此,而是借用了config文件,具体好处见下文),在大佬的帮助下,我成功实现了此功能,还收获了意外之喜,分享一下。
对于菜鸡来说Grub2的配置比grub4dos不是难了一截,从efi文件生成到cfg的书写,模块的调用、主题的配置个个都不是简单的。
但是grub2文件管理器却是功能强大,拿来即用,模块和主题也很完善,稍加修改就是极好的grub2菜单文件。(这里可能有人问为啥不直接用grub2文件管理器呢,加啥菜单。回答这个问题,这是我的一个群友认为grub2文件管理器还要找wim或者vhd,不直接不方便)。好了要说的说完了上文件。

根据大佬的讲解,config文件主要是为了调用自定义设置如分辨率和语言,grub2文件管理器会自动搜索全部盘符下的/boot/grubfm/config然后执行,执行后跳回到grub2文件管理器,所以可以在其中指向其他的cfg文件也就是grub2文件管理器的上级grub2菜单。这种情况下用的主题是grub2文件管理器的主题免除配置的烦恼,grub2直接用。这样配置好的grub2对于64位efi文件来说只有bootx64.efi(grubfmx64.efi改名而来),config和grub.cfg三个文件。

大家都知道,不管是grub4dos还是grub2,都不能空手直接启动wim或者系统,而是需要借助启动微软的efi进而启动系统,所以加了grub2文件管理器再配置grub2的菜单不是很麻烦吗?因此,我就想直接用grub2文件管理器的环境配置grub2,这样只需要这三个文件就可以启动任意wim、vhd、以及ISO文件。

此处我共试验了三种方法:
第一种,仅使用grub2文件管理器的模块,这是我最早想到的方法:

menuentry "启动winPE" --class wim {
search -f /boot/win10.wim -s root;
loopback wimboot ${prefix}/wimboot.gz;
wimboot @:bootmgfw.efi:(wimboot)/bootmgfw.efi \
          @:bcd:(wimboot)/bcd \
          @:boot.sdi:(wimboot)/boot.sdi \
          @:boot.wim:($root)/boot/win10.wim \


第二种,调用grub2的sh文件,这是第二个想到的方法,启动方式仅有一种,实验成功

menuentry "启动winPE" --class wim {
search -f /boot/win10.wim -s root;
set grubfm_file=($root)/boot/win10.wim
configfile ${prefix}/rules/wim/wimboot.sh
}


第三种是我翻阅和wintoflash大佬的聊天记录过程中发现的,应该是最好的,但是我不会代码,有点缺陷,希望大佬斧正:
(在聊天过程中大佬说,grubfm /xxx可以跳到指定的目录,grubfm_open /xxx.wim可以跳到指定的打开方式)
menuentry "启动winPE" --class wim {
search -f /boot/win10.wim -s root;
grubfm_open ($root)/boot/win10.wim
}

我是个菜鸡,只有这些水平了,剩下的就靠大佬们完善了,如果可以这样配置grub2,那就可以非常便利了。最后传上我做的第二个的附件,直接解压放入fat分区即可。上一张图:

权限问题无法传大附件,下载链接:https://wwa.lanzous.com/iZzHeegmqsb




作者: wintoflash    时间: 2020-7-9 20:57
支持一下
作者: sairen139    时间: 2020-7-9 23:11
很好很用心的技术贴,看起来非常方便,感谢分享!
作者: 青青草    时间: 2020-7-10 10:10
支持一下
作者: chairmansu    时间: 2020-7-11 09:00
真是不錯的想法
作者: newswan    时间: 2020-7-13 14:29
请问,grubfm ,对 mbr efi 都支持吗
作者: Blan77    时间: 2020-7-13 16:58
挺有趣的
作者: 王乐2518    时间: 2020-7-14 17:49
newswan 发表于 2020-7-13 14:29
请问,grubfm ,对 mbr efi 都支持吗

下好的grubfm有四个文件,两个efi,一个iso一个loadfm的文件,两个efi分别是64位和32位,改名后可以直接用,iso需要用其他的启动方式调用或者loadfm调用,我发的只是64位efi的,32位和这个一样,传统启动的没实验,不过传统启动还是grub4dos用的比较多
作者: newswan    时间: 2020-7-15 10:53
王乐2518 发表于 2020-7-14 17:49
下好的grubfm有四个文件,两个efi,一个iso一个loadfm的文件,两个efi分别是64位和32位,改名后可以直接 ...

谢谢,有空了试一下,如果 grub2 能完全代替 grub4dos 简单一些。
作者: artour    时间: 2020-8-23 21:50
这个模板本身就可以启动吗? 用什么方式写入U盘呢?
作者: 王乐2518    时间: 2020-8-24 11:18
artour 发表于 2020-8-23 21:50
这个模板本身就可以启动吗? 用什么方式写入U盘呢?

efi启动识别fat分区的efi文件,只要文件对,路径对放进去就行,不需要什么写入方式
作者: artour    时间: 2020-8-24 16:00
王乐2518 发表于 2020-8-24 11:18
efi启动识别fat分区的efi文件,只要文件对,路径对放进去就行,不需要什么写入方式

U盘主引导记录都不管吗? 你说的比较太笼统,我现在还很迷糊, 我就想把grub2文件管理器放在启动菜单项上,你说的只有文件对,是不是还得修改文件才行啊?能不能具体说下修改文件哪里?不然在BISO下引导时,肯定会说找不到设备等错误

作者: 王乐2518    时间: 2020-8-24 18:23
artour 发表于 2020-8-24 16:00
U盘主引导记录都不管吗? 你说的比较太笼统,我现在还很迷糊, 我就想把grub2文件管理器放在启动菜单项上 ...

这里只有uefi启动的,对于bios传统启动并不适用,传统启动直接用grub4dos即可达到效果,这里是uefi启动的,uefi启动过程中不需要引导文件也不需要什么引导信息,对于64位机子电脑会自动查找\fat分区的efi\boot\bootx64.efi 文件,然后启动它,你可以把bootx64.efi看作引导文件,什么主引导,分区引导在uefi启动过程中并不需要
作者: 王乐2518    时间: 2020-8-24 18:27
artour 发表于 2020-8-24 16:00
U盘主引导记录都不管吗? 你说的比较太笼统,我现在还很迷糊, 我就想把grub2文件管理器放在启动菜单项上 ...

解释几百句不如试一下,你找一个空U盘,格式化为fat32格式,然后下载我的附件,把efi文件夹复制过去,不要复制boot文件夹,uefi启动一看就知道了
作者: artour    时间: 2020-8-24 20:48
王乐2518 发表于 2020-8-24 18:27
解释几百句不如试一下,你找一个空U盘,格式化为fat32格式,然后下载我的附件,把efi文件夹复制过去,不 ...

刚试了,挺好。
不过发现你这个模板第一项不能启动本机windows,另外,说是带grub2 文件管理器功能的,怎么没有?
作者: 王乐2518    时间: 2020-8-25 10:09
artour 发表于 2020-8-24 20:48
刚试了,挺好。
不过发现你这个模板第一项不能启动本机windows,另外,说是带grub2 文件管理器功能的, ...

启动本机的没写,自己加吧,在这里grub2文件管理器就是bootx64.efi,bootx64.efi就是grub2文件管理器,不存在带不带的说法,是借grub2文件管理器来启动wim,我是加了grub2的选项的,如果没加那你按f2就行,最下面横着的一行,自己操作试试
作者: Michael2008    时间: 2020-9-6 11:52
巧用Grub2文件管理器配置grub2菜单启动wim、vhd、ISO
作者: coffeecat2016    时间: 2021-12-8 18:03
链接打不开了
作者: loka    时间: 2021-12-29 09:59
coffeecat2016 发表于 2021-12-8 18:03
链接打不开了

www.lanzoux.com/iZzHeegmqsb不知道什么原因导致的个别字母错误

作者: DILLION99    时间: 2022-1-22 19:15
wintoflash 发表于 2020-7-9 20:57
支持一下

请教W大,使用grubfm,EFI环境下可以自定义主题及菜单,成功加载;BIOS环境试图加载自定义主题及菜单,加载自定义主题及菜单失败。BIOS环境下,U盘UD区成功加载grubfm.iso并进入界面,如何加载自定义主题及菜单呢?
作者: wintoflash    时间: 2022-1-22 19:51
DILLION99 发表于 2022-1-22 19:15
请教W大,使用grubfm,EFI环境下可以自定义主题及菜单,成功加载;BIOS环境试图加载自定义主题及菜单,加 ...

你是怎么自定义主题及菜单并加载的?
作者: DILLION99    时间: 2022-1-23 02:27
wintoflash 发表于 2022-1-22 19:51
你是怎么自定义主题及菜单并加载的?

按照楼主UEFI说的方法定制,即通过config及grub.cfg定制,UEFI下可以实现,bios实现不了。
作者: wintoflash    时间: 2022-1-23 10:42
DILLION99 发表于 2022-1-23 02:27
按照楼主UEFI说的方法定制,即通过config及grub.cfg定制,UEFI下可以实现,bios实现不了。

config内容是什么?
grub.cfg内容是什么?
U盘分区结构是什么?
config和grub.cfg位于什么分区?
作者: youarebest22    时间: 2022-1-24 17:33
这个不错,灵活diy
作者: youarebest22    时间: 2022-1-25 10:43
这个可以学习下
作者: 481416322    时间: 2022-1-31 08:16
wintoflash 发表于 2022-1-23 10:42
config内容是什么?
grub.cfg内容是什么?
U盘分区结构是什么?

谢谢分享
作者: siyanmao    时间: 2022-5-2 08:48
很好的学习环境。谢谢。
作者: yxcocn    时间: 2022-5-19 22:19
可以启动vhd里的deepini
作者: rhinomax    时间: 2022-6-29 20:53
winboot启动wim格式文件,出现花屏,不爽。改位ntboot启动,wim格式正常。
ntboot无法启动vhd格式文件。

另外,如果wim,iso,vhd文件不放在efi分区,路径如何编写?
作者: 王乐2518    时间: 2022-6-30 20:24
rhinomax 发表于 2022-6-29 20:53
winboot启动wim格式文件,出现花屏,不爽。改位ntboot启动,wim格式正常。
ntboot无法启动vhd格式文件。
...

ntboot应该是支持vhd的吧,至于分区这个问题,这个是全盘搜索的,只要名字对可以搜到,也可以指定路径,所以不太明白这个不在efi分区具体是什么问题,应该不存在分区问题才对,在哪是不重要的。
作者: rhinomax    时间: 2022-7-1 23:14
本帖最后由 rhinomax 于 2022-7-1 23:16 编辑
王乐2518 发表于 2022-6-30 20:24
ntboot应该是支持vhd的吧,至于分区这个问题,这个是全盘搜索的,只要名字对可以搜到,也可以指定路径, ...

第二种,调用grub2的sh文件,这是第二个想到的方法,启动方式仅有一种,实验成功

menuentry "启动winPE" --class wim {
search -f /boot/win10.wim -s root;
set grubfm_file=($root)/boot/win10.wim
configfile ${prefix}/rules/wim/wimboot.sh
}

你提供的代码里的这个win10.wim,不是必须放置在EFI分区里的boot目录下吗?我测试这样是成功的。
但是如果win10.wim是放置在非EFI分区,这个路径该如何写?
我完全小白,如有说得不对的地方请别见怪。
作者: 王乐2518    时间: 2022-7-2 19:37
rhinomax 发表于 2022-7-1 23:14
第二种,调用grub2的sh文件,这是第二个想到的方法,启动方式仅有一种,实验成功

menuentry "启动winP ...

search -f /boot/win10.wim -s root
这一行代码的意思是搜索 boot目录下面的win10.wim这个文件,并没有指定分区和路径,只要文件目录和名字对,能搜到就可以启动,不必须是efi的分区
作者: tyab00    时间: 2022-7-29 11:39
哥们,您好!麻烦您能留个联系方式吗?链接无法打开,感谢!tyab@163.com
作者: mrzhonghb    时间: 2022-7-29 11:48
tyab00 发表于 2022-7-29 11:39
哥们,您好!麻烦您能留个联系方式吗?链接无法打开,感谢!

https://wwa.lanzoux.com/iZzHeegmqsb
作者: kingscl    时间: 2022-8-30 16:02
链接失效还是需要vpn
作者: zyx07    时间: 2022-9-11 12:44
谢谢分享···
作者: smmxlsq    时间: 2022-9-12 11:26
https://wwa.lanzoux.com/iZzHeegmqsb
作者: 青青草    时间: 2022-11-7 08:18
DILLION99 发表于 2022-1-22 19:15
请教W大,使用grubfm,EFI环境下可以自定义主题及菜单,成功加载;BIOS环境试图加载自定义主题及菜单,加 ...

加载自定义菜单:
config:
configfile (hd0)/boot/grubfm/grub.cfg
加载自定义主题,你是怎么做的?
作者: minru    时间: 2022-12-21 08:48
👍👍👍👍👍
作者: ZMLoveLH    时间: 2023-1-14 09:51
看看这款教程,学习如何配置grub2菜单
作者: wuhuai    时间: 2023-6-15 21:16
学习了,能启动VHD,谢谢
作者: vyuha    时间: 2023-6-20 04:07
支持一下
作者: ganlian_6666    时间: 2023-7-4 23:13
启动ISO文件应该怎么写呢?ISO放在另一个分区,也是FAT分区
作者: wintoflash    时间: 2023-7-5 15:06
本帖最后由 wintoflash 于 2023-7-5 15:10 编辑
gues1688 发表于 2023-7-5 14:42
@wintoflash
花了点时间,试着折腾 GrubFM 的config,玩玩自定义菜单,如下图所示。
不幸的 ...

你要先从自己身上找原因。
grub能识别你的硬盘吗?能识别你的分区吗?
你的菜单有问题吗?

在grub看来,硬盘和u盘是分不出区别的。
作者: wintoflash    时间: 2023-7-5 15:31
gues1688 发表于 2023-7-5 15:24
感谢W大大回复!
Grub可以从我的2块硬盘所有分区启动各种wim、iso、vhd(x),也可以识别我的2块硬盘及所 ...

自己逐句调试。
作者: wintoflash    时间: 2023-7-5 18:39
本帖最后由 wintoflash 于 2023-7-5 18:41 编辑
gues1688 发表于 2023-7-5 17:14
请W大大指导,我的调试过程:

1、从硬盘启动grubfm.efi,并且不插U盘

那就说明不是它的问题。是/boot/grubfm/config写的内容不对。
还可以写其它代码吗?比如,改变分辨率?背景颜色之类的?

你太死板了。
根据大佬的讲解,config文件主要是为了调用自定义设置如分辨率和语言,grub2文件管理器会自动搜索全部盘符下的/boot/grubfm/config然后执行,执行后跳回到grub2文件管理器,所以可以在其中指向其他的cfg文件也就是grub2文件管理器的上级grub2菜单。

楼主的帖子里面有介绍的。你应该根据自己的实际情况来写。
作者: pda8888    时间: 2023-7-28 11:41
看此帖受益良多,特别是W大亲临指导。
再请教一下W大:如何给WIM文件指定分辨率(也许我问法不正确),就是让WIM启动的PE,用上指定的分辨率,不然默认的640X480也太难看了。




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