无忧启动论坛

 找回密码
 注册
搜索

(6.30更新)三启GRUB2单文件(rc2)

查看数: 30542 | 评论数: 88 | 收藏 28
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-6-22 15:18

正文摘要:

本帖最后由 phyuzhoukai 于 2018-6-30 23:59 编辑 2018.6.30更新: 【1】删除了说明 【2】留下了文件 【3】不再更新 grub.cfg目录: /efi/grub2/grub.cfg或/grub2/grub.cfg或/efi/boot/grub.cfg或/boo ...

回复

OHMCFXG 发表于 2020-1-17 00:00:25
感谢分享!!
nivigo 发表于 2020-1-10 09:13:50
怎么实现grub.cfg目录自动搜索 /efi/grub2/grub.cfg或/grub2/grub.cfg或/efi/boot/grub.cfg或/boot/grub/grub.cfg呢?
sjm009 发表于 2019-12-18 14:17:12
谢谢分享,收藏备用了。。。
sjm009 发表于 2019-12-18 14:14:58
谢谢分享
创新科技2015 发表于 2019-12-17 11:49:56
赞一个!
残光丶沫影 发表于 2019-8-13 01:10:26
试试...刚好在弄
2013clark 发表于 2019-8-6 10:24:10
感謝分享~~
試試~~
netmjwork 发表于 2019-7-25 23:32:39
本帖最后由 netmjwork 于 2019-7-25 23:36 编辑

反馈下,win10系统更新后,原来正常的grub2启动项没有了……
是不是需要更新grub2才能使用?(如果是的话,希望楼主更新下,非常感谢!  )

要不然希望通过这个GRUB2来引导PE的功能就无法实现了……

因为系统补丁更新后自动修改了ESP分区里的两个BCD文件(查看最新修改的就这两个BCD文件),恢复原来系统更新前的系统备份也没有用……(没有备份BCD文件),但是BCD启动项的菜单内容并没有改变

有变化的两个BCD文件是:EFI\Microsoft\boot\BCD        EFI\Microsoft\Recovery\BCD

yzbtdiy 发表于 2018-8-30 18:19:50
支持楼主
xj888xj 发表于 2018-8-23 15:35:06
又对grub2有兴趣了。来更新硬盘里的文件
phyuzhoukai 发表于 2018-7-27 18:56:18
Roczhang 发表于 2018-7-27 17:50
那个工具在哪呢?是过去版本中的文件吗?这几天在研究我电脑的安全启动,希望能下载到并期望给予帮助


参考(可能需要科学上网)
https://blog.hansenpartnership.c ... ot-system-released/
附上文件吧。
Signature.7z (285.41 KB, 下载次数: 18)
Roczhang 发表于 2018-7-27 17:50:18
phyuzhoukai 发表于 2018-6-22 17:16
那个工具里的bootx64.efi默认引导loader.efi(可以用这个引导器来引导自己的grub2,配置文件在loader文 ...

那个工具在哪呢?是过去版本中的文件吗?这几天在研究我电脑的安全启动,希望能下载到并期望给予帮助

点评

参考(可能需要科学上网) https://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/ 附上文件吧。  详情 回复 发表于 2018-7-27 18:56
netmjwork 发表于 2018-7-27 08:11:48
本帖最后由 netmjwork 于 2018-7-27 08:27 编辑
phyuzhoukai 发表于 2018-7-26 22:15
1.cfg就是几行代码,改成适合自己的就行。我菜单没有中文也没在意,如果内容相同出现问题,那可能是编码 ...


多谢指点!

确实是编码的问题,您最后一个版本编码是ANSI,这个编码不能显示中文;开始也没注意这个问题,就是突然中文不能用了,找不到原因,才来回换文件确定是grub.cfg的问题。
花屏也是编码的问题,必须用 utf-8编码才可以 。

您这个版本确实很实用,也学习了不少用法,再次感谢!
phyuzhoukai 发表于 2018-7-26 22:15:09
netmjwork 发表于 2018-7-26 12:47
最后一个版本问题反馈:最后一个版本 06.30 ,这个版本有些问题:

1、菜单不能正常加载字体:反复测试 ...

1.cfg就是几行代码,改成适合自己的就行。我菜单没有中文也没在意,如果内容相同出现问题,那可能是编码格式问题吧,改成UTF-8的试试。
2.我已经默认开启了大部分常用模块了,insmod font\ntldr这种语句完全可以删了。
3.bios下的花屏跟terminal_output gfxterm有关,改成terminal_output console一般就不会花屏了,引导应该也没问题,就是不能用主题。
4.研究问题是好事,不用太钻牛角尖,很多问题理解都有偏差。不过终究只是一个引导而已,能用就行吧。

点评

多谢指点! 确实是编码的问题,您最后一个版本编码是ANSI,这个编码不能显示中文;开始也没注意这个问题,就是突然中文不能用了,找不到原因,才来回换文件确定是grub.cfg的问题。 您这个版本确实很实用,也  详情 回复 发表于 2018-7-27 08:11
netmjwork 发表于 2018-7-26 12:47:53
本帖最后由 netmjwork 于 2018-7-26 15:59 编辑

最后一个版本问题反馈:最后一个版本 06.30 ,这个版本有些问题:

1、菜单不能正常加载字体:反复测试确认是 “grub.cfg”新旧版本的问题,附件是上一个版本的grub.cfg (那个版本的grub2.exe是固定在根目录下的boot目录)
测试一:替换上一个版本的grub.cfg文件(菜单内容不变),然后菜单里的中文就正常加载了,换0630的grub.cfg中文就不显示,成乱码
              grub2.exe试过两个版本没有区别

所有文件都在 /EFI/BOOT/ 目录下,grub2.exe 、grub.cfg、unicode.pf2

insmod font
loadfont /EFI/BOOT/unicode.pf2

2、grub2的菜单最近的两个版本都无法正常返回grub4dos菜单并正常显示(g4d 版本 0.4.6a),点击菜单一直返回不了,花屏之后又退回grub2的菜单;
      以前同样的菜单不变,成功返回过grub4dos菜单,显示也正常,但覆盖文件之后原来文件找不到了……

title   切换g2菜单
find --set-root /EFI/BOOT/grub2
kernel /EFI/BOOT/grub2

menuentry "转换 G4 菜单" --unrestricted  {
search --file /grldr --set=root
insmod ntldr
ntldr /grldr
}

grubcfg.rar

510 Bytes, 下载次数: 7, 下载积分: 无忧币 -2

上一个版本

unicode.rar

702.28 KB, 下载次数: 5, 下载积分: 无忧币 -2

字体文件

点评

1.cfg就是几行代码,改成适合自己的就行。我菜单没有中文也没在意,如果内容相同出现问题,那可能是编码格式问题吧,改成UTF-8的试试。 2.我已经默认开启了大部分常用模块了,insmod font\ntldr这种语句完全可以删  详情 回复 发表于 2018-7-26 22:15
netmjwork 发表于 2018-7-25 21:43:06
phyuzhoukai 发表于 2018-7-25 19:18
1.bios下一个bootmgr对应一个BCD,你要调用多个BCD,只能生成多个bootmgr分别引导启动了,或者一个BCD ...

多谢指点!

基本上实现了自定义的效果~
phyuzhoukai 发表于 2018-7-25 19:18:36
本帖最后由 phyuzhoukai 于 2018-7-25 19:28 编辑
netmjwork 发表于 2018-7-25 11:00
多谢指点! 可以运行了,找不到是切换到EFI模式会提示……

那个工具专门测试了,昨天杀毒删除一个 ...


1.bios下一个bootmgr对应一个BCD,你要调用多个BCD,只能生成多个bootmgr分别引导启动了,或者一个BCD多个启动项。
2.grub4dos启动比grub2简单多了啊,一个ntboot走遍天下都不怕,BCD和sdi都不用。
你可以去下个单文件版的ntboot,然后grub4dos菜单:
title balabala
ntboot nt6=(位置)/winpe.wim
完事儿
具体功能去找说明吧,有些pe可能用nt5,其他的模块自己研究吧

点评

多谢指点! 基本上实现了自定义的效果~  详情 回复 发表于 2018-7-25 21:43
netmjwork 发表于 2018-7-25 16:49:26
bjlbjl 发表于 2018-7-25 16:39
使用g2ldr来从grub4dos转换到grub2
title G2LDR
find --set-root /g2ldr

谢谢!
楼主这个grub2是定制的,不需要g2ldr,grub4dos菜单直接把g2ldr换成grub2就可以,后来才知道
bjlbjl 发表于 2018-7-25 16:39:57
netmjwork 发表于 2018-7-25 11:00
多谢指点!

那个工具专门测试了,昨天杀毒删除一个文件,今天禁用杀毒软件测试;

使用g2ldr来从grub4dos转换到grub2
title G2LDR
find --set-root /g2ldr
kernel /g2ldr

点评

谢谢! 楼主这个grub2是定制的,不需要g2ldr,grub4dos菜单直接把g2ldr换成grub2就可以,后来才知道  详情 回复 发表于 2018-7-25 16:49
netmjwork 发表于 2018-7-25 11:00:27
本帖最后由 netmjwork 于 2018-7-25 17:07 编辑
phyuzhoukai 发表于 2018-7-25 09:55
我看了一下那个软件的帖子,下面有个按钮是make bootmgr,可以试一下,没有测试。

找不到ntldr?应该 ...



多谢指点! 可以运行了,找不到是切换到EFI模式会提示……

那个工具专门测试了,昨天杀毒删除一个文件,今天禁用杀毒软件测试;
我只用BCD的路径修改,确实很牛,突破了您提出的只能一级目录的限制,生成的bootmgr测试直接放到PE的目录里就可以(目前是放在三级目录下),但是我的几个PE也只有WEPE10能够正常启动,其他的都没有启动起来,可能其他PE只支持UEFI(都是64位)



想实现效果:目录结构及文件不变,能实现BIOS或UEFI下都能通过菜单直接调用相应目录的多个PE;
                     现在由于没有实现BIOS下通过grub4dos菜单来直接启动目录下的多个PE(EFI已经可以通过grub2实现),所以才想着通过grub4dos转grub2的菜单再来调用多个.wim格式的PE
            
请教下,grub4dos下直接用grldr的菜单,想实现启动下面目录结构里的几个PE,容易做到吗?(都是“.wim”格式,不是.iso);必须哪些文件及目录才行?
                   多个PE启动的话,bootmgr、BCD的位置及改名怎么处理?两个以上的PE菜单怎么写?


目前觉得grub4dos转grub2来启动“.wim”格式的PE的话,用上面那个软件是可行的,前提是PE必须同时支持UEFI和BIOS
===================================================================

现在的目录结构(只想最简效果、最简目录及文件):

/EFI/BOOT/...                                                    文件 :bootx64.efi、grub2、grub.cfg、theme.txt 及其他.efi启动文件
/ALLPE/...        目录:7PE、8PE、10PE            文件:相应PE里面对应的 boot.sdi、BCD、boot.wim、pe.efi 这几个文件(UEFI下通过grub2可正常启动)
/grldr      根目录的grub4dos文件

/bmgr/...    这个目录之前没有添加,现在把您第一次分享的那个目录里的bmgr32.efi、bmgr64.efi、bootmgr三个文件添加上了

疑问:1、多个PE的情况下,BCD的位置及名称应该是可以改变的,关键是放哪里、如何调用不会……
                比如:/ALLPE/10wePE/BCD (有的PE中BCD名称是其他的名字,如USM,这种是只改名BCD就行,还是关联的其他哪些文件也需要修改?)
                BIOS模式下是不是BCD必须放在根目录 /BOOT/ 目录下?

           2、关于 bootmgr
                您这个grub2版本,/bmgr/bootmgr 这个文件是必须相应版本的原版文件吗?
                是不是通过修改 bootmgr 来添加上多个PE的BCD文件名及路径?是的话现在就卡壳在这里不会操作了……
                或者说修改版的 bootmgr 可以通用启动不同版本及位置的BCD?

           3、BIOS模式用grub2的话,在U盘根目录是不是必须单独建立一个“boot”文件夹?
                 微软原版的bootmgr默认指向\boot\BCD,那么我有几个PE目录需要用,就算能启动的话,总不能老通过来换BCD文件来实现启动吧?

点评

1.bios下一个bootmgr对应一个BCD,你要调用多个BCD,只能生成多个bootmgr分别引导启动了,或者一个BCD多个启动项。 2.grub4dos启动比grub2简单多了啊,一个ntboot走遍天下都不怕,BCD和sdi都不用。 你可以去下个单  详情 回复 发表于 2018-7-25 19:18
使用g2ldr来从grub4dos转换到grub2 title G2LDR find --set-root /g2ldr kernel /g2ldr  详情 回复 发表于 2018-7-25 16:39
netmjwork 发表于 2018-7-25 10:57:31
bjlbjl 发表于 2018-7-25 08:52
最基本的bootmgr启动都不知道
不需要ntldr

接受批评~     也谢谢指点!



phyuzhoukai 发表于 2018-7-25 09:55:02
本帖最后由 phyuzhoukai 于 2018-7-25 09:56 编辑
netmjwork 发表于 2018-7-24 21:56
不是bootmgr,大小只有38K,也不是菜单,notepad2和bootice都无法打开,还不是很明白,如果这个工具能简 ...

我看了一下那个软件的帖子,下面有个按钮是make bootmgr,可以试一下,没有测试。

找不到ntldr?应该不会啊,我已经集成了这个模块了,insmod ntldr都不需要。
你的整个菜单发出来看一下。

点评

多谢指点! 新手问题有点儿多,以下是情况和一些疑惑,帮忙看下怎么解决,非常感谢! 也查过很多资料,我现在想实现的效果不是一个PE,而是多个PE,目录也是自定义的,所以和普通的启动有些不一样,这个没找到  详情 回复 发表于 2018-7-25 11:00
bjlbjl 发表于 2018-7-25 08:52:42
本帖最后由 bjlbjl 于 2018-7-25 10:00 编辑
netmjwork 发表于 2018-7-24 21:56
不是bootmgr,大小只有38K,也不是菜单,notepad2和bootice都无法打开,还不是很明白,如果这个工具能简 ...


最基本的bootmgr启动都不知道

想学不想研究,哪有那么美的事。

点评

接受批评~ 也谢谢指点!  详情 回复 发表于 2018-7-25 10:57
netmjwork 发表于 2018-7-24 21:56:56
本帖最后由 netmjwork 于 2018-7-24 22:35 编辑
phyuzhoukai 发表于 2018-7-24 21:40
没用过这个工具,可能生成的.ldr就是bootmgr?


不是bootmgr,大小只有38K,也不是菜单,notepad2和bootice都无法打开,还不是很明白,如果这个工具能简易修改bootmgr的话那就方便多了……


对了,bios菜单如下,用您的模板也没有能够运行成功一个,您第一次分享的“bmgr”目录复制到U盘根目录,将用到的BCD复制到“bmgr”目录,
          grub2所有文件都在“/EFI/BOOT/”目录下;PE目录在根目录下“wepe”,如下菜单提示找不到“ntldr”,哪里的问题?是需要复制一个ntldr到U盘里吗?

menuentry "[1] Windows BIOS" --hotkey=1 {ntldr /bmgr/bootmgr}   

点评

找不到ntldr? 应该不会啊,我已经集成了这个模块了,insmod ntldr都不需要。 你的整个菜单发出来看一下。  详情 回复 发表于 2018-7-25 09:55
最基本的bootmgr启动都不知道 不需要ntldr bootmgr启动: bootmgr —>boot文件夹下的bcd—>wim 根据你写的grub2 BIOS启动菜单,把bootmgr文件放在bmgr文件夹下, 在根目录建立boot文件夹,放入bcd文件,boo  详情 回复 发表于 2018-7-25 08:52
phyuzhoukai 发表于 2018-7-24 21:40:08
netmjwork 发表于 2018-7-24 19:50
见笑了,新手,开始只想着调用grub2菜单就行,没想那么多……

明白一些了,那就是bootmgr和BCD文件 ...

没用过这个工具,可能生成的.ldr就是bootmgr?

点评

不是bootmgr,大小只有38K,也不是菜单,notepad2和bootice都无法打开,还不是很明白,如果这个工具能简易修改bootmgr的话那就方便多了……  详情 回复 发表于 2018-7-24 21:56
netmjwork 发表于 2018-7-24 19:50:13
本帖最后由 netmjwork 于 2018-7-24 19:51 编辑
phyuzhoukai 发表于 2018-7-24 17:58
你居然在BIOS下用efi文件启动...
bootmgr这个文件已经指向了特定位置的BCD,微软原版的bootm ...


见笑了,新手,开始只想着调用grub2菜单就行,没想那么多……

明白一些了,那就是bootmgr和BCD文件只放在一级目录内,需要先修改相应版本的“bootmgr”路径,然后修改BCD的路径及设置,下面的描述不知道对不对:

文件目录:只把改名的bootmgr和bcd挪到一个一级目录里,其他PE目录文件不变(在二级或三级目录)
/bmgr/bootmgr、BCD   (bmgr这个目录可以自定义名称,目录里这两个文件应该都可以改名使用吧?)
/wepe/pe的其他文件,如 boot.sdi、pe.wim 等

现在一个关键问题是怎么修改bootmgr?查有限的资料,好像修改很复杂,还要用到winhex这工具,有没有简便的修改工具?

找到一个工具,但不知道怎么用,生成的文件是“bootmgr.ldr”,不会用……
http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1

点评

没用过这个工具,可能生成的.ldr就是bootmgr?  详情 回复 发表于 2018-7-24 21:40
phyuzhoukai 发表于 2018-7-24 17:58:32
本帖最后由 phyuzhoukai 于 2018-7-24 17:59 编辑
netmjwork 发表于 2018-7-23 21:02
提醒了我,估计还是菜单的问题……  我应该只写了UEFI的菜单,好像BIOS的菜单也得单独写……
由于不太 ...


你居然在BIOS下用efi文件启动...
bootmgr这个文件已经指向了特定位置的BCD,微软原版的bootmgr默认指向\boot\BCD,这个BCD与EFI下的BCD虽然通用,但是启动项是不同的,系统路径里的winload.efi需改成winload.exe。
路径可以定制,但最多只能有一级目录,也就是根目录或者根目录下的某个文件夹内。
启动菜单{ntldr /bmgr/bootmgr}(bootmgr需为实际路径),关键在于与BCD的位置和内容。

点评

见笑了,新手,开始只想着调用grub2菜单就行,没想那么多…… 明白一些了,那就是bootmgr和BCD文件只放在一级目录内,需要先修改相应版本的“bootmgr”路径,然后修改BCD的路径,下面的描述不知道对不对: 文  详情 回复 发表于 2018-7-24 19:50
netmjwork 发表于 2018-7-23 21:02:44
本帖最后由 netmjwork 于 2018-7-24 06:46 编辑
phyuzhoukai 发表于 2018-7-23 19:05
所以你在bios下grub2启动pe的菜单是怎么写的?bootmgr是用自带的还是修改过的?BCD目录改过么?


提醒了我,估计还是菜单的问题……  我应该只写了UEFI的菜单,好像BIOS的菜单也得单独写……
由于不太懂您的菜单模板,所以,我菜单里只保留了“#64位菜单”这一种,其他的IF条件判断语句及“#32位菜单”“#bios菜单”“#全平台通用菜单”“#其他菜单”全部给删除了,因为那样在纯UEFI的环境下也能运行……



请教如下的情况,BIOS菜单该怎么修改,多谢!

示例:win10x64 wepe,所有文件及目录都在U盘上,通过U盘启动笔记本或PC
PE目录最简洁的保留了基本的4个文件:bcd、boot.sdi、bootx64.efi、pe.wim ( /123/wepe/ 这个目录下),这种情况下在UEFI的情况下可以启动。
我把原来的PE目录改变了,BCD文件路径也修改为响应的“/123/wepe/”
【grub2的全部文件放在“\EFI\BOOT\”目录下,目前保留的有grub2、grub.cfg、bootx64.efi ;  
    是不是要用BIOS模式启动grub2的话还要在这个目录添加 bmgr32.efi 和 bmgr64.efi ?】



我菜单只有这一种形式……
menuentry "[1]   we PE"  --unrestricted  {chainloader /123/wepe/wepex64.efi}

BIOS模式下是不是只需要在刚才的目录添加一个文件“bootmgr”就可以了?
下面的理解不知道对不对:看其他帖子说需要原版的才能启动,但原版的路径必须固定,修改版本也是在修改的固定路径才能正常启动,像我这种自己又想修改自定义路径的话就没法启动了?

#bios菜单(您的模板)
menuentry "[1] Windows BIOS" --hotkey=1 {ntldr /bmgr/bootmgr}   

如果只通过U盘来启动 “/123/wepe/wepe64.wim”,假如这个PE支持UEFI也支持BIOS的方式启动的话,那么我转移的这个目录“/123/wepe/”里面除了刚那四个文件外,再添加一个bootmgr文件,还有其他必须的文件需要添加吗?菜单该怎么写?

点评

你居然用在BIOS下用efi文件启动... bootmgr这个文件已经指向了特定位置的BCD,原版的BCD默认在\boot\BCD,这个BCD与EFI下的BCD虽然通用,但是启动项是不同的,系统路径里的winload.efi需改成winload.exe。  详情 回复 发表于 2018-7-24 17:58
2010wxky6688 发表于 2018-7-23 20:35:17
路过,顺便学习一下,谢谢楼主分享!
phyuzhoukai 发表于 2018-7-23 19:05:31
netmjwork 发表于 2018-7-23 18:32
谢谢!可能我描述的不够清楚:

前提:全部文件都不变的情况下

所以你在bios下grub2启动pe的菜单是怎么写的?bootmgr是用自带的还是修改过的?BCD目录改过么?

点评

提醒了我,估计还是菜单的问题…… 我应该只写了UEFI的菜单,好像BIOS的菜单也得单独写…… 由于不太懂您的菜单模板,所以,我菜单里只保留了“#64位菜单”这一种,其他的IF条件判断语句及“#32位菜单”“#bios菜  详情 回复 发表于 2018-7-23 21:02

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

闽公网安备 35020302032614号

GMT+8, 2024-11-29 05:00

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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