感谢分享!! |
怎么实现grub.cfg目录自动搜索 /efi/grub2/grub.cfg或/grub2/grub.cfg或/efi/boot/grub.cfg或/boot/grub/grub.cfg呢? |
谢谢分享,收藏备用了。。。 |
谢谢分享 |
赞一个! |
试试...刚好在弄 |
感謝分享~~ 試試~~ |
本帖最后由 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 |
支持楼主 |
又对grub2有兴趣了。来更新硬盘里的文件 |
Roczhang 发表于 2018-7-27 17:50 参考(可能需要科学上网) https://blog.hansenpartnership.c ... ot-system-released/ 附上文件吧。 |
phyuzhoukai 发表于 2018-6-22 17:16 那个工具在哪呢?是过去版本中的文件吗?这几天在研究我电脑的安全启动,希望能下载到并期望给予帮助 |
本帖最后由 netmjwork 于 2018-7-27 08:27 编辑 phyuzhoukai 发表于 2018-7-26 22:15 多谢指点! 确实是编码的问题,您最后一个版本编码是ANSI,这个编码不能显示中文;开始也没注意这个问题,就是突然中文不能用了,找不到原因,才来回换文件确定是grub.cfg的问题。 花屏也是编码的问题,必须用 utf-8编码才可以 。 您这个版本确实很实用,也学习了不少用法,再次感谢! |
netmjwork 发表于 2018-7-26 12:47 1.cfg就是几行代码,改成适合自己的就行。我菜单没有中文也没在意,如果内容相同出现问题,那可能是编码格式问题吧,改成UTF-8的试试。 2.我已经默认开启了大部分常用模块了,insmod font\ntldr这种语句完全可以删了。 3.bios下的花屏跟terminal_output gfxterm有关,改成terminal_output console一般就不会花屏了,引导应该也没问题,就是不能用主题。 4.研究问题是好事,不用太钻牛角尖,很多问题理解都有偏差。不过终究只是一个引导而已,能用就行吧。 |
本帖最后由 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 } |
510 Bytes, 下载次数: 7, 下载积分: 无忧币 -2
上一个版本
702.28 KB, 下载次数: 5, 下载积分: 无忧币 -2
字体文件
phyuzhoukai 发表于 2018-7-25 19:18 多谢指点! 基本上实现了自定义的效果~ |
本帖最后由 phyuzhoukai 于 2018-7-25 19:28 编辑 netmjwork 发表于 2018-7-25 11:00 1.bios下一个bootmgr对应一个BCD,你要调用多个BCD,只能生成多个bootmgr分别引导启动了,或者一个BCD多个启动项。 2.grub4dos启动比grub2简单多了啊,一个ntboot走遍天下都不怕,BCD和sdi都不用。 你可以去下个单文件版的ntboot,然后grub4dos菜单: title balabala ntboot nt6=(位置)/winpe.wim 完事儿 具体功能去找说明吧,有些pe可能用nt5,其他的模块自己研究吧 |
bjlbjl 发表于 2018-7-25 16:39 谢谢! 楼主这个grub2是定制的,不需要g2ldr,grub4dos菜单直接把g2ldr换成grub2就可以,后来才知道 |
netmjwork 发表于 2018-7-25 11:00 使用g2ldr来从grub4dos转换到grub2 title G2LDR find --set-root /g2ldr kernel /g2ldr |
本帖最后由 netmjwork 于 2018-7-25 17:07 编辑 phyuzhoukai 发表于 2018-7-25 09:55 多谢指点! 可以运行了,找不到是切换到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文件来实现启动吧? |
bjlbjl 发表于 2018-7-25 08:52 接受批评~ 也谢谢指点! |
本帖最后由 phyuzhoukai 于 2018-7-25 09:56 编辑 netmjwork 发表于 2018-7-24 21:56 我看了一下那个软件的帖子,下面有个按钮是make bootmgr,可以试一下,没有测试。 找不到ntldr?应该不会啊,我已经集成了这个模块了,insmod ntldr都不需要。 你的整个菜单发出来看一下。 |
本帖最后由 bjlbjl 于 2018-7-25 10:00 编辑 netmjwork 发表于 2018-7-24 21:56 最基本的bootmgr启动都不知道 想学不想研究,哪有那么美的事。 |
本帖最后由 netmjwork 于 2018-7-24 22:35 编辑 phyuzhoukai 发表于 2018-7-24 21:40 不是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} |
netmjwork 发表于 2018-7-24 19:50 没用过这个工具,可能生成的.ldr就是bootmgr? |
本帖最后由 netmjwork 于 2018-7-24 19:51 编辑 phyuzhoukai 发表于 2018-7-24 17:58 见笑了,新手,开始只想着调用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 |
本帖最后由 phyuzhoukai 于 2018-7-24 17:59 编辑 netmjwork 发表于 2018-7-23 21:02 你居然在BIOS下用efi文件启动... bootmgr这个文件已经指向了特定位置的BCD,微软原版的bootmgr默认指向\boot\BCD,这个BCD与EFI下的BCD虽然通用,但是启动项是不同的,系统路径里的winload.efi需改成winload.exe。 路径可以定制,但最多只能有一级目录,也就是根目录或者根目录下的某个文件夹内。 启动菜单{ntldr /bmgr/bootmgr}(bootmgr需为实际路径),关键在于与BCD的位置和内容。 |
本帖最后由 netmjwork 于 2018-7-24 06:46 编辑 phyuzhoukai 发表于 2018-7-23 19:05 提醒了我,估计还是菜单的问题…… 我应该只写了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文件,还有其他必须的文件需要添加吗?菜单该怎么写? |
路过,顺便学习一下,谢谢楼主分享! |
netmjwork 发表于 2018-7-23 18:32 所以你在bios下grub2启动pe的菜单是怎么写的?bootmgr是用自带的还是修改过的?BCD目录改过么? |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.