无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 21699|回复: 46
打印 上一主题 下一主题

[教程] 巧用Grub2文件管理器配置grub2菜单启动wim、vhd、ISO

  [复制链接]
跳转到指定楼层
1#
发表于 2020-7-9 19:57:52 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 王乐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



评分

参与人数 2无忧币 +10 收起 理由
edison_2008 + 5 用心了,值得表扬
某些人 + 5 赞一个!

查看全部评分

2#
 楼主| 发表于 2020-7-14 17:49:28 | 显示全部楼层
newswan 发表于 2020-7-13 14:29
请问,grubfm ,对 mbr efi 都支持吗

下好的grubfm有四个文件,两个efi,一个iso一个loadfm的文件,两个efi分别是64位和32位,改名后可以直接用,iso需要用其他的启动方式调用或者loadfm调用,我发的只是64位efi的,32位和这个一样,传统启动的没实验,不过传统启动还是grub4dos用的比较多

点评

谢谢,有空了试一下,如果 grub2 能完全代替 grub4dos 简单一些。  详情 回复 发表于 2020-7-15 10:53
回复

使用道具 举报

3#
 楼主| 发表于 2020-8-24 11:18:46 | 显示全部楼层
artour 发表于 2020-8-23 21:50
这个模板本身就可以启动吗? 用什么方式写入U盘呢?

efi启动识别fat分区的efi文件,只要文件对,路径对放进去就行,不需要什么写入方式

点评

U盘主引导记录都不管吗? 你说的比较太笼统,我现在还很迷糊, 我就想把grub2文件管理器放在启动菜单项上,你说的只有文件对,是不是还得修改文件才行啊?能不能具体说下修改文件哪里?不然在BISO下引导时,肯定会说  详情 回复 发表于 2020-8-24 16:00
回复

使用道具 举报

4#
 楼主| 发表于 2020-8-24 18:23:41 | 显示全部楼层
artour 发表于 2020-8-24 16:00
U盘主引导记录都不管吗? 你说的比较太笼统,我现在还很迷糊, 我就想把grub2文件管理器放在启动菜单项上 ...

这里只有uefi启动的,对于bios传统启动并不适用,传统启动直接用grub4dos即可达到效果,这里是uefi启动的,uefi启动过程中不需要引导文件也不需要什么引导信息,对于64位机子电脑会自动查找\fat分区的efi\boot\bootx64.efi 文件,然后启动它,你可以把bootx64.efi看作引导文件,什么主引导,分区引导在uefi启动过程中并不需要
回复

使用道具 举报

5#
 楼主| 发表于 2020-8-24 18:27:04 | 显示全部楼层
artour 发表于 2020-8-24 16:00
U盘主引导记录都不管吗? 你说的比较太笼统,我现在还很迷糊, 我就想把grub2文件管理器放在启动菜单项上 ...

解释几百句不如试一下,你找一个空U盘,格式化为fat32格式,然后下载我的附件,把efi文件夹复制过去,不要复制boot文件夹,uefi启动一看就知道了

点评

刚试了,挺好。 不过发现你这个模板第一项不能启动本机windows,另外,说是带grub2 文件管理器功能的,怎么没有?  详情 回复 发表于 2020-8-24 20:48
回复

使用道具 举报

6#
 楼主| 发表于 2020-8-25 10:09:12 | 显示全部楼层
artour 发表于 2020-8-24 20:48
刚试了,挺好。
不过发现你这个模板第一项不能启动本机windows,另外,说是带grub2 文件管理器功能的, ...

启动本机的没写,自己加吧,在这里grub2文件管理器就是bootx64.efi,bootx64.efi就是grub2文件管理器,不存在带不带的说法,是借grub2文件管理器来启动wim,我是加了grub2的选项的,如果没加那你按f2就行,最下面横着的一行,自己操作试试
回复

使用道具 举报

7#
 楼主| 发表于 2022-6-30 20:24:12 | 显示全部楼层
rhinomax 发表于 2022-6-29 20:53
winboot启动wim格式文件,出现花屏,不爽。改位ntboot启动,wim格式正常。
ntboot无法启动vhd格式文件。
...

ntboot应该是支持vhd的吧,至于分区这个问题,这个是全盘搜索的,只要名字对可以搜到,也可以指定路径,所以不太明白这个不在efi分区具体是什么问题,应该不存在分区问题才对,在哪是不重要的。
回复

使用道具 举报

8#
 楼主| 发表于 2022-7-2 19:37:39 | 显示全部楼层
rhinomax 发表于 2022-7-1 23:14
第二种,调用grub2的sh文件,这是第二个想到的方法,启动方式仅有一种,实验成功

menuentry "启动winP ...

search -f /boot/win10.wim -s root
这一行代码的意思是搜索 boot目录下面的win10.wim这个文件,并没有指定分区和路径,只要文件目录和名字对,能搜到就可以启动,不必须是efi的分区
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-11 12:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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