无忧启动论坛

标题: (6.30更新)三启GRUB2单文件(rc2) [打印本页]

作者: phyuzhoukai    时间: 2018-6-22 15:18
标题: (6.30更新)三启GRUB2单文件(rc2)
本帖最后由 phyuzhoukai 于 2018-6-30 23:59 编辑

2018.6.30更新:
【1】删除了说明
【2】留下了文件
【3】不再更新
grub2.part1.rar (1000 KB, 下载次数: 622)
grub2.part2.rar (906.73 KB, 下载次数: 569)
grub.cfg目录:
/efi/grub2/grub.cfg或/grub2/grub.cfg或/efi/boot/grub.cfg或/boot/grub/grub.cfg
bios模式安装:
bootice导入主引导记录grub2.mbr

BOOT.jpg (145.94 KB, 下载次数: 200)

BOOT.jpg

作者: zhangmi    时间: 2018-6-22 16:01
能够详细讲一下hashtool、keytool怎么用吗?是不是用这个给xorboot集成ubuntu的grub2证书?
作者: 2010sya    时间: 2018-6-22 16:36
谢谢分享
作者: phyuzhoukai    时间: 2018-6-22 17:16
本帖最后由 phyuzhoukai 于 2018-6-22 17:20 编辑
zhangmi 发表于 2018-6-22 16:01
能够详细讲一下hashtool、keytool怎么用吗?是不是用这个给xorboot集成ubuntu的grub2证书?


那个工具里的bootx64.efi默认引导loader.efi(可以用这个引导器来引导自己的grub2,配置文件在loader文件夹下)。如果loader.efi的Hash还没被enroll,则会引导到hashtool.efi,通过这个工具可以enroll你需要的efi文件,比如你需要引导你的grub2(grubx64.efi),则用hashtool来注册loader.efi和grubx64.efi这两个文件,然后在loader\entries下增加一个grub2.conf,内容为title grub2(换行)linux /efi/boot/grubx64.efi,然后修改loader\loader.conf,改成default grub2*,timeout也可以设置成0,这样你就能在这台电脑上安全模式启动你的grub2了。如果换电脑,那么再enroll一遍就可以了。keytool工具可以管理enroll记录,包括添加和删除。
作者: zhangmi    时间: 2018-6-22 17:27
phyuzhoukai 发表于 2018-6-22 17:16
那个工具里的bootx64.efi默认引导loader.efi(可以用这个引导器来引导自己的grub2,配置文件在loader文 ...

感谢解答,我貌似懂了一点,试试看
作者: wdtx    时间: 2018-6-23 01:05
谢谢分享,收藏备用了。。。
作者: bestyyb    时间: 2018-6-23 09:43
菜鸟表示看不懂
作者: phyuzhoukai    时间: 2018-6-23 10:00
bestyyb 发表于 2018-6-23 09:43
菜鸟表示看不懂

emmm...需要会一点grub2吧,这个解压到根目录直接就能EFI启动grub2了
作者: 醉翁    时间: 2018-6-24 01:21
谢谢!!!!!!!
作者: wyqd831    时间: 2018-6-24 09:20
谢谢分享
作者: phyuzhoukai    时间: 2018-6-24 14:54
wintoflash 发表于 2018-6-24 09:32
请问这是怎么做到的?

BIOS转UEFI:bios下引导clover.img,可以模拟64/32位的UEFI,据说可以实现在64位主板下启动32位系统,不过没试过,但确实能启动32位EFI
UEFI转BIOS:UEFI下引导rEFInd,可以扫描并启动legacy下的引导,实测能启动grub4dos,能进入系统,缺陷好像会往主板写入uefi启动项,我重刷bios才清除掉的,不过好像影响不大
作者: 窄口牛    时间: 2018-6-25 07:25
efi转bios有意义,bios转efi没用。
作者: devilma    时间: 2018-6-25 11:42
不错。给力了。。。。。顶起。。
作者: pnhws    时间: 2018-6-25 17:27

作者: phyuzhoukai    时间: 2018-6-25 19:07
本帖最后由 phyuzhoukai 于 2018-6-25 19:11 编辑
窄口牛 发表于 2018-6-25 07:25
efi转bios有意义,bios转efi没用。


之前模拟器实验的差不多了用实机测试,经常要去主板改模式很烦,还是能直接互转比较省力,感觉像打通了任督二脉哈哈哈
还有bios能模拟出32位的EFI,也可以方便某些只有64位EFI的人做系统实机测试吧(什么32位win8、win10balabala),大概,我猜,emmm....
作者: 2012kwy    时间: 2018-6-26 11:45
楼主好人做到底,麻烦给grub.cfg和bcd增加Wim镜像引导菜单,试了一下好像无法加载。另外请问纯EFI 64下ISO文件能不能引导?有说可以有说不可以,搞糊涂了。
作者: phyuzhoukai    时间: 2018-6-26 22:53
2012kwy 发表于 2018-6-26 11:45
楼主好人做到底,麻烦给grub.cfg和bcd增加Wim镜像引导菜单,试了一下好像无法加载。另外请问纯EFI 64下ISO ...


无法加载是无法启动还是不能加wim菜单?如果只是说要在BCD中加WIM启动项的话,直接用bootice这个软件,增加wim启动项就可以了,还要指定boot.sdi文件的位置,以及winload.efi和exe的区分,没别的重点了0.0
EFI可以用loopback引导iso镜像文件,比如linux的安装光盘...大部分可以吧
作者: netmjwork    时间: 2018-6-27 20:07
请教下:bmgr 目录能弄到EFI目录下使用吗?还是必须单独放在根目录?
根目录不想有太多目录,使用也方便,谢谢!
作者: 2013lucky5156    时间: 2018-6-27 20:38
学习了,新手需要这样的简洁的学习魔板
作者: phyuzhoukai    时间: 2018-6-27 20:42
本帖最后由 phyuzhoukai 于 2018-6-27 20:47 编辑
netmjwork 发表于 2018-6-27 20:07
请教下:bmgr 目录能弄到EFI目录下使用吗?还是必须单独放在根目录?
根目录不想有太多目录,使用也方便, ...


如果你只使用EFI模式的话,你只需要把bmgr.efi文件和BCD放在同一个目录下就可以了,随便在哪个子目录都没关系,grub.cfg改一下bmgr.efi的路径就行。
bios下的引导文件bootmgr需要用工具修改才能自定义目录,这是我修改过的boomgr,如果有需求可以看一下论坛里的教程帖子。

顺便说一下,如果不需要32位efi的话,可以把bootia32.efi和bmgr32.efi删了,这是32位启动的文件。
作者: phyuzhoukai    时间: 2018-6-27 20:49
2013lucky5156 发表于 2018-6-27 20:38
学习了,新手需要这样的简洁的学习魔板

谢谢支持
作者: netmjwork    时间: 2018-6-27 21:25
本帖最后由 netmjwork 于 2018-6-27 21:28 编辑
phyuzhoukai 发表于 2018-6-27 20:42
如果你只使用EFI模式的话,你只需要把bmgr.efi文件和BCD放在同一个目录下就可以了,随便在哪个子目录都 ...


我是只用UEFI模式,只用X64,觉得您这个简洁的模板很好~ 实用!



下面这句应该是设置的地方,但是我菜单文件没用这句,用自定义的菜单;加上这句的配置不知道怎么写
menuentry "[1] Windows x64" --hotkey=1 {chainloader /bmgr/bmgr64.efi}


操作:将“bmgr”目录里的 bmgr64.efi、BCD这两个文件拷贝到U盘根目录的“\EFI\BOOT\”目录下

对grub2不懂,以下菜单为测试可用的全部菜单内容,删掉不少,其他都可以用,但有个问题,KON老是不能用,应该就和上句的配置有关系,如果是下面的菜单,在哪里配置下bmgr64.efi的路径?

set timeout=10
set default=0

#全平台通用菜单
menuentry "[1] wei PE" --hotkey=1 --class windows --class os {
search --no-floppy --file --set=root /EFI/BOOT/wepex64.efi
chainloader /EFI/BOOT/wepex64.efi
}
menuentry "[Q] KON " --hotkey=q --class windows --class os {
search --no-floppy --file --set=root /EFI/BOOT/Konbootx64.efi
chainloader /EFI/BOOT/Konbootx64.efi
}
menuentry "[S] HALT" --hotkey=s {halt}
#其他菜单
if [ ${grub_platform} = efi ] ;then menuentry '[F] go to UEFI SETUP '  --hotkey=f {fwsetup} ;fi

作者: phyuzhoukai    时间: 2018-6-27 22:24
netmjwork 发表于 2018-6-27 21:25
我是只用UEFI模式,只用X64,觉得您这个简洁的模板很好~ 实用!

下载的KON工具里应该有自带的bootx64.efi和KonBootDxeX64.efi吧?你把这个bootx64.efi重名成其他(比如konboot.efi),然后把konboot.efi和KonBootDxeX64.efi两个文件复制到efi/boot/下,用grub2引导konboot.efi

另外,我集成的grub2的EFI已经把根目录指定成有/grub2/grub.cfg这个文件的分区了,所以不需要再用search --no-floppy --file --set=root 这个来指定根目录了,可以删掉。
作者: netmjwork    时间: 2018-6-27 23:23
本帖最后由 netmjwork 于 2018-6-28 00:02 编辑
phyuzhoukai 发表于 2018-6-27 22:24
下载的KON工具里应该有自带的bootx64.efi和KonBootDxeX64.efi吧?你把这个bootx64.efi重名成其他(比如ko ...


又明白点儿菜单的写法了,非常感谢!

另外有个问题请教您:
grub2  能不能只针对单一菜单设置 md5密码的加密选项?(像grub4dos里那样操作)
作者: phyuzhoukai    时间: 2018-6-28 09:19
本帖最后由 phyuzhoukai 于 2018-6-28 09:22 编辑
netmjwork 发表于 2018-6-27 23:23
又明白点儿菜单的写法了,非常感谢!

另外有个问题请教您:


首先需要设定一个superusers,任何编辑操作(e)都需要superusers和密码才能进行。可以设定不同的用户和密码。
set superusers="超级用户名字"
password 超级用户名字 超级用户密码
如果需要类似MD5的密文加密,可以用password_pbkdf2模块(我集成的已内置,不需要insmod)
password_pbkdf2 用户名 用户密码
密文密码可以用下面的附件生成,解压后运行passwd.bat即可。
passwd.7z (44.09 KB, 下载次数: 9)
需要密码的菜单:
menuentry "balbalabala" --users 用户名 {}
不需要密码的菜单:
menuentry "balbalabala" --unrestricted {}
作者: netmjwork    时间: 2018-6-28 09:39
phyuzhoukai 发表于 2018-6-28 09:19
首先需要设定一个superusers,任何编辑操作(e)都需要superusers和密码才能进行。可以设定不同的用户 ...

感谢!

新手不太明白,这里的用户名是在哪里自定义呢?看网上资料说集成比较麻烦,单独改 grub.cfg 没有用

还得麻烦举例说明下,谢谢!比如将下面的一个菜单项修改成加密和不加密两种形式,分别该怎么修改?有了例子就更容易理解了
menuentry "[1] wei PE"  --class windows --class os {chainloader /EFI/BOOT/wepex64.efi}

menuentry "balbalabala" --users 用户名 {}                这个格式新手不会套用……

生成的密码:
grub.pbkdf2.sha512.10000.FCB1B243E2C9045ED14067238C86F80E05D9F1EA4AF926599AC941E722DEA0C442BE01B26CF4D7C78C42BD708B2B92E342FCFC725EFBE4B4D7FBC8CB77F3E03D.AE2EB023FB0C8F9F5245931D95363DA907E6193641CA5193786952F78369857D2400441F0E74C60EAED8954972926B7B3D23AC428175C412DC814E4E7D6259E4

作者: phyuzhoukai    时间: 2018-6-28 09:57
本帖最后由 phyuzhoukai 于 2018-6-28 10:03 编辑
netmjwork 发表于 2018-6-28 09:39
感谢!

新手不太明白,这里的用户名是在哪里自定义呢?看网上资料说集成比较麻烦,单独改 grub.cfg 没 ...


#用户名:abc
set superusers="abc"
password_pbkdf2 abc grub.pbkdf2.sha512.10000.FCB1B243E2C9045ED14067238C86F80E05D9F1EA4AF926599AC941E722DEA0C442BE01B26CF4D7C78C42BD708B2B92E342FCFC725EFBE4B4D7FBC8CB77F3E03D.AE2EB023FB0C8F9F5245931D95363DA907E6193641CA5193786952F78369857D2400441F0E74C60EAED8954972926B7B3D23AC428175C412DC814E4E7D6259E4
(此处abc和密文之间只有一个空格,不是换行)
set timeout=10
set default=0
#加密菜单
menuentry "[1] wei PE" --users abc --class windows --class os {chainloader /EFI/BOOT/wepex64.efi}
#不加密菜单
menuentry "[1] wei PE" --unrestricted --class windows --class os {chainloader /EFI/BOOT/wepex64.efi}

--class windows --class os 这个class参数一般在美化主题的时候用的,没有主题的话可以去掉。
作者: netmjwork    时间: 2018-6-28 10:13
phyuzhoukai 发表于 2018-6-28 09:57
#用户名:abc
set superusers="abc"
password_pbkdf2 abc grub.pbkdf2.sha512.10000.FCB1B243E2C9045 ...

非常感谢详细指点!

我需要的就是简洁的功能,您这个很适合!

按您的指点,已经改造好需要的UEFI极简启动功能。
作者: netmjwork    时间: 2018-6-28 10:24
phyuzhoukai 发表于 2018-6-28 09:57
#用户名:abc
set superusers="abc"
password_pbkdf2 abc grub.pbkdf2.sha512.10000.FCB1B243E2C9045 ...

谢谢!

注意到了,复制过去的就是一个空格,还说不行的话再改换行呢~
作者: netmjwork    时间: 2018-6-28 11:45
phyuzhoukai 发表于 2018-6-28 09:57
#用户名:abc
set superusers="abc"
password_pbkdf2 abc grub.pbkdf2.sha512.10000.FCB1B243E2C9045 ...

还有个小问题请教下,您这个模板里根目录下“grub2”目录只能放根目录吗?(减少根目录下的目录)
能不能把它挪到EFI目录里面,比如\EFI\BOOT里,看您其他的模板好像都没有这个目录名字,如果可以的话需要修改哪些地方?
作者: phyuzhoukai    时间: 2018-6-28 13:33
netmjwork 发表于 2018-6-28 11:45
还有个小问题请教下,您这个模板里根目录下“grub2”目录只能放根目录吗?(减少根目录下的目录)
能不 ...

晚上有时间再更新一下,设置成依次找寻以下目录:
/efi/grub2/grub.cfg
/grub2/grub.cfg
/efi/boot/grub.cfg
/boot/grub/grub.cfg
只要其中一个目录有cfg就能启动。
作者: netmjwork    时间: 2018-6-28 15:17
phyuzhoukai 发表于 2018-6-28 13:33
晚上有时间再更新一下,设置成依次找寻以下目录:
/efi/grub2/grub.cfg
/grub2/grub.cfg

感谢!
这样就更方便些~
作者: netmjwork    时间: 2018-6-28 15:56
phyuzhoukai 发表于 2018-6-28 09:57
#用户名:abc
set superusers="abc"
password_pbkdf2 abc grub.pbkdf2.sha512.10000.FCB1B243E2C9045 ...

再请教一个问题:您这个模板能实现直接引导iso、img的镜像吗?网上看的资料说能实现,不过效率比grub4dos低一些,如果能实现的话,麻烦写个具体的示例菜单,如此进入PE前就可以方便的使用工具了。

感觉您对grub2很熟悉,折腾的也很顺溜~
通过这些问题也学习不少,再次感谢!
作者: lm0006    时间: 2018-6-30 07:09
感谢分享了 ,如果要引导PE,可以添加引导ISO的代码么?要怎么写文件呢
作者: phyuzhoukai    时间: 2018-7-1 00:01
lm0006 发表于 2018-6-30 07:09
感谢分享了 ,如果要引导PE,可以添加引导ISO的代码么?要怎么写文件呢

如果不是必须用iso,可以提取出iso中的wim文件,然后用用BCD引导这个wim文件即可启动。
作者: 2012kwy    时间: 2018-7-1 08:16
过不了CSM这关,不知最新版行不行(大概是未认证的设备)。大家实机测试怎么样?还是我这台电脑个例?
作者: tops    时间: 2018-7-1 09:51
谢谢分享!
作者: phyuzhoukai    时间: 2018-7-2 09:07
2012kwy 发表于 2018-7-1 08:16
过不了CSM这关,不知最新版行不行(大概是未认证的设备)。大家实机测试怎么样?还是我这台电脑个例?

UEFI with CSM么?没问题呀...
作者: shan    时间: 2018-7-2 10:11
感谢大神,简洁好用
作者: 2012kwy    时间: 2018-7-2 10:29
6.30版还没试,大侠之前打包的Grub2单文件版会出现好像是“未经认证的镜像”提示,换用本坛其他大侠制作的单文件载入也一样,但改为非单文(不打包)件则正常。惠普机上测的,很奇怪的说。也麻烦其他人多试试打开及关闭CSM情况下是否正常。
作者: phyuzhoukai    时间: 2018-7-2 12:51
2012kwy 发表于 2018-7-2 10:29
6.30版还没试,大侠之前打包的Grub2单文件版会出现好像是“未经认证的镜像”提示,换用本坛其他大侠制作的 ...

6.30就删除了几个冗余的文件,体积小几百KB,没什么重要的更新。
我自己在好多电脑上用过都没问题,自己的微星csm开不开都一样……
不清楚什么原因。
作者: 江南一根葱    时间: 2018-7-2 16:07
要是有人能弄个efi版的csm就好了,,直接模拟bios。。。。。。。。。。
作者: 2012kwy    时间: 2018-7-2 16:48
把几个老大都惊动了!电脑不在身边,不知关没关,只知道这货除了微软原版bootx64.efi,再就是不打包的Grub2可以,只要做成单文件就显示“未经认证的映像”之类提示,不知打包后触碰微软那根神经就不认了(打不打包区别何在?多了虚拟盘?)。也许如江南大所说的,弄个efi版的csm就好了。
作者: phyuzhoukai    时间: 2018-7-2 17:53
本帖最后由 phyuzhoukai 于 2018-7-2 18:44 编辑
江南一根葱 发表于 2018-7-2 16:07
要是有人能弄个efi版的csm就好了,,直接模拟bios。。。。。。。。。。


啊刚才说错了,clover是模拟EFI的,模拟bios的是rEFInd...基本refind已经能很好的模拟bios了。。。如果有人能提取出模拟bios的模块的话...

作者: phyuzhoukai    时间: 2018-7-2 17:57
2012kwy 发表于 2018-7-2 16:48
把几个老大都惊动了!电脑不在身边,不知关没关,只知道这货除了微软原版bootx64.efi,再就是不打 ...

我的微星开启csm是默认关闭安全启动的,开不了安启…
你不用单文件的grub2是用ubuntu自带的那个efi引导么?那还真可能是安全启动的原因,自制的应该都过不了安启,除非用hashtool或者sbsigntool。
作者: phyuzhoukai    时间: 2018-7-2 18:45
江南一根葱 发表于 2018-7-2 16:07
要是有人能弄个efi版的csm就好了,,直接模拟bios。。。。。。。。。。

啊刚才说错了,clover是模拟EFI的,模拟bios的是rEFInd...基本refind已经能很好的模拟bios了。。。如果有人能提取出模拟bios的模块的话...
作者: 江南一根葱    时间: 2018-7-2 19:52
phyuzhoukai 发表于 2018-7-2 18:45
啊刚才说错了,clover是模拟EFI的,模拟bios的是rEFInd...基本refind已经能很好的模拟bios了。。。如果有 ...

真能模拟?那能提取出来用到grub2下真是造福世界了。
作者: phyuzhoukai    时间: 2018-7-2 20:14
本帖最后由 phyuzhoukai 于 2018-7-2 20:15 编辑
江南一根葱 发表于 2018-7-2 19:52
真能模拟?那能提取出来用到grub2下真是造福世界了。


嗯嗯。。。我好像忘了一点。。。需要CSM......尴尬...
作者: 新空气    时间: 2018-7-2 23:06
谢谢啦~
作者: yy251833    时间: 2018-7-9 20:57
        赞一个!
作者: netmjwork    时间: 2018-7-11 11:08
本帖最后由 netmjwork 于 2018-7-11 16:29 编辑
phyuzhoukai 发表于 2018-7-2 20:14
嗯嗯。。。我好像忘了一点。。。需要CSM......尴尬...


求助楼主: 怎么才能实现通过菜单加载多个 .wim的PE?

查看其他资料测试,已经解决,谢谢!
作者: wychun    时间: 2018-7-17 10:32
谢谢分享
作者: netmjwork    时间: 2018-7-18 11:53
本帖最后由 netmjwork 于 2018-7-18 20:41 编辑
phyuzhoukai 发表于 2018-7-2 20:14
嗯嗯。。。我好像忘了一点。。。需要CSM......尴尬...


求助楼主:bios模式怎么用grub4dos的grldr菜单调用grub2的菜单来使用?

搜索帖子有说用g2ldr来从grub4dos转换到grub2,菜单如下,但您的模板里没有这个文件,可能是其他文件的改名,指点下怎么实现?多谢!
查其他帖子,看这个g2ldr是需要独立生成的,我找到另一个帖子的g2ldr文件,但是启动不了,提示: error : no such partition  ,    entering rescue mode ...
另一个帖子:http://bbs.wuyou.net/forum.php?m ... &extra=page%3D1
title G2LDR
find --set-root /g2ldr
kernel /g2ldr


(因为grub4dos的方式菜单好像不能调用多个.wim文件,想通过grldr来调用grub2然后通过grub2的菜单调用多个.wim)

================================================

还有个小问题,默认是黑底的,用您的模板,怎么实现隐藏顶部、底部的信息?(应该就是加一个主题,可能一张黑底的图片就可以了,不知道这种极简的需求怎么实现?)
作者: phyuzhoukai    时间: 2018-7-21 19:55
本帖最后由 phyuzhoukai 于 2018-7-21 20:15 编辑
netmjwork 发表于 2018-7-18 11:53
求助楼主:bios模式怎么用grub4dos的grldr菜单调用grub2的菜单来使用?

搜索帖子有说用g2ldr来从gru ...


不需要额外g2ldr,直接能引导。比如把grub2单文件放在根目录
title G2LDR
find --set-root /grub2
kernel /grub2
================================
另外你要极简主题的话,可以给你个参考,屏幕只有菜单几个字了。
grub.cfg配置文件加上以下两行:
terminal_output gfxterm
set theme=/theme.txt(文件位置自己定义)

theme.txt内容如下:
title-text: ""
desktop-color: "#000000"
+ boot_menu {
    left = 25%
    width = 60%
    top = 25%
    height = 50%       
    item_color = "white"
    selected_item_color = "#5454fe"
    item_height = 33
    item_padding = 10
    item_spacing = 1
}
相关参数可以自己修改一下,应该蛮简单的。

作者: netmjwork    时间: 2018-7-21 21:29
本帖最后由 netmjwork 于 2018-7-21 21:34 编辑
phyuzhoukai 发表于 2018-7-21 19:55
不需要额外g2ldr,直接能引导。比如把grub2单文件放在根目录
title G2LDR
find --set-root /grub2


谢谢!

BIOS模式下通过grldr调用grub2还需要哪些文件是必须的呢?(后悔没有单独保存您的说明文字,现在想看时都没有了……,还好之前版本的文件有保存)
现在用到的文件就是您最后一个版本的文件:grub2、bootx64.efi、grub.cfg
刚添加grub2.mbr进去还是没有用,由于没有用32位的PE,所以bootia32.efi没有添加

菜单修改后,在BIOS下显示grub2的菜单了,但是PE无法启动,报错提示:

error: invalid signature.
press any key to continue...
作者: phyuzhoukai    时间: 2018-7-21 23:10
netmjwork 发表于 2018-7-21 21:29
谢谢!

BIOS模式下通过grldr调用grub2还需要哪些文件是必须的呢?(后悔没有单独保存您的说明文字, ...

grub2这个单文件是由自制的grldr或者g2ldr(一般这么称呼吧)+core.img合并而来的,所以这种模式下也不存在说用grldr或者g2ldr来引导grub2这个单文件。我的grub2.mbr并不是grub2专门引导文件,是一个WEE引导器,你可以用Bootice这个软件来把这个文件写入主引导扇区然后编辑配置启动的目录,或者不用我的文件直接用bootice安装WEE也可以,我这个mbr是指向/grub2/grub2,如果你更改了grub2位置当然就不能引导了,可以自己去编辑一下。
PE都无法启动吗?我一般就常用微PE,测试过少数其他PE和其他电脑目前都没有问题。
如果有能启动的PE的话,应该不是电脑和引导的问题。
作者: netmjwork    时间: 2018-7-21 23:34
本帖最后由 netmjwork 于 2018-7-21 23:47 编辑
phyuzhoukai 发表于 2018-7-21 23:10
grub2这个单文件是由自制的grldr或者g2ldr(一般这么称呼吧)+core.img合并而来的,所以这种模式下也不存 ...


是的,UEFI模式下直接用您的grub2可以正常启动,同样的文件、目录结构,在BIOS模式下只能出现菜单,但无法引导,所有的.wim PE都是一样的提示……
菜单里的其它功能,比如关机重启等是可以正常使用的。
(grub2及efi启动文件都放在 efi/boot/目录下,PE文件单独放根目录下的自定义目录;
PE目录最简洁的保留了基本的4个文件:bcd、boot.sdi、bootx64.efi、pe.wim,UEFI模式下可以正常启动,BIOS模式下grldr调用grub2就是无法启动)

可能原理没有研究透,BIOS下尝试过RUN模块、NTBOOT的方式来直接启动“.wim”的PE,但PE正常启动的概率不大,都是mem加载到内存的方式启动PE,且只有部分PE可以启动,部分无法启动……

U盘bootice我已经写入了grub4dos的启动文件,一个设备应该只能写入一种启动方式吧?

作者: phyuzhoukai    时间: 2018-7-23 17:51
netmjwork 发表于 2018-7-21 23:34
是的,UEFI模式下直接用您的grub2可以正常启动,同样的文件、目录结构,在BIOS模式下只能出现菜单,但 ...

用grub4dos也不能正常启动pe?是不是你写的菜单有问题...
试试grub2直接调用bootmgr来启动wim。boot.sdi网上有3M和960KB两个版本的,都试试看。
还可以在别的电脑上用你的菜单启动看看,如果相同条件下别的电脑可以启动,那可能是硬件不兼容吧
作者: netmjwork    时间: 2018-7-23 18:32
本帖最后由 netmjwork 于 2018-7-23 18:48 编辑
phyuzhoukai 发表于 2018-7-23 17:51
用grub4dos也不能正常启动pe?是不是你写的菜单有问题...
试试grub2直接调用bootmgr来启动wim。boot.sdi ...


谢谢!可能我描述的不够清楚:

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

grub4dos:可以正常启动PE,不过调用的是ISO格式的;
                .wim格式的尝试过调用固定路径的bootmgr来启动PE,可以成功启动;但是希望直接通过grldr菜单调用不同目录下的PE(.wim格式),失败的居多,可能是方法不对…… (简单的RUN模块用着方便……)

您的GRUB2:在EFI模式下几个.wim格式的PE通过菜单调用启动完全正常,也就是说您的模板在EFI模式下启动是完全正常的。
                  在BIOS模式下,通过您说的直接grldr调用grub2的方式,grub2菜单显示正常,“开机、关机”这些功能正常,但启动PE的菜单没有一个能成功启动的,都是报错:
error: invalid signature.
press any key to continue...
作者: phyuzhoukai    时间: 2018-7-23 19:05
netmjwork 发表于 2018-7-23 18:32
谢谢!可能我描述的不够清楚:

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

所以你在bios下grub2启动pe的菜单是怎么写的?bootmgr是用自带的还是修改过的?BCD目录改过么?
作者: 2010wxky6688    时间: 2018-7-23 20:35
路过,顺便学习一下,谢谢楼主分享!
作者: netmjwork    时间: 2018-7-23 21:02
本帖最后由 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文件,还有其他必须的文件需要添加吗?菜单该怎么写?
作者: phyuzhoukai    时间: 2018-7-24 17:58
本帖最后由 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的位置和内容。
作者: netmjwork    时间: 2018-7-24 19:50
本帖最后由 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
作者: phyuzhoukai    时间: 2018-7-24 21:40
netmjwork 发表于 2018-7-24 19:50
见笑了,新手,开始只想着调用grub2菜单就行,没想那么多……

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

没用过这个工具,可能生成的.ldr就是bootmgr?
作者: netmjwork    时间: 2018-7-24 21: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}   

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


最基本的bootmgr启动都不知道

想学不想研究,哪有那么美的事。
作者: phyuzhoukai    时间: 2018-7-25 09:55
本帖最后由 phyuzhoukai 于 2018-7-25 09:56 编辑
netmjwork 发表于 2018-7-24 21:56
不是bootmgr,大小只有38K,也不是菜单,notepad2和bootice都无法打开,还不是很明白,如果这个工具能简 ...

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

找不到ntldr?应该不会啊,我已经集成了这个模块了,insmod ntldr都不需要。
你的整个菜单发出来看一下。
作者: netmjwork    时间: 2018-7-25 10:57
bjlbjl 发表于 2018-7-25 08:52
最基本的bootmgr启动都不知道
不需要ntldr

接受批评~     也谢谢指点!




作者: netmjwork    时间: 2018-7-25 11:00
本帖最后由 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文件来实现启动吧?


作者: bjlbjl    时间: 2018-7-25 16:39
netmjwork 发表于 2018-7-25 11:00
多谢指点!

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

使用g2ldr来从grub4dos转换到grub2
title G2LDR
find --set-root /g2ldr
kernel /g2ldr
作者: netmjwork    时间: 2018-7-25 16:49
bjlbjl 发表于 2018-7-25 16:39
使用g2ldr来从grub4dos转换到grub2
title G2LDR
find --set-root /g2ldr

谢谢!
楼主这个grub2是定制的,不需要g2ldr,grub4dos菜单直接把g2ldr换成grub2就可以,后来才知道

作者: phyuzhoukai    时间: 2018-7-25 19:18
本帖最后由 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,其他的模块自己研究吧
作者: netmjwork    时间: 2018-7-25 21:43
phyuzhoukai 发表于 2018-7-25 19:18
1.bios下一个bootmgr对应一个BCD,你要调用多个BCD,只能生成多个bootmgr分别引导启动了,或者一个BCD ...

多谢指点!

基本上实现了自定义的效果~
作者: netmjwork    时间: 2018-7-26 12:47
本帖最后由 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

字体文件


作者: phyuzhoukai    时间: 2018-7-26 22:15
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.研究问题是好事,不用太钻牛角尖,很多问题理解都有偏差。不过终究只是一个引导而已,能用就行吧。
作者: netmjwork    时间: 2018-7-27 08:11
本帖最后由 netmjwork 于 2018-7-27 08:27 编辑
phyuzhoukai 发表于 2018-7-26 22:15
1.cfg就是几行代码,改成适合自己的就行。我菜单没有中文也没在意,如果内容相同出现问题,那可能是编码 ...


多谢指点!

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

您这个版本确实很实用,也学习了不少用法,再次感谢!
作者: Roczhang    时间: 2018-7-27 17:50
phyuzhoukai 发表于 2018-6-22 17:16
那个工具里的bootx64.efi默认引导loader.efi(可以用这个引导器来引导自己的grub2,配置文件在loader文 ...

那个工具在哪呢?是过去版本中的文件吗?这几天在研究我电脑的安全启动,希望能下载到并期望给予帮助
作者: phyuzhoukai    时间: 2018-7-27 18:56
Roczhang 发表于 2018-7-27 17:50
那个工具在哪呢?是过去版本中的文件吗?这几天在研究我电脑的安全启动,希望能下载到并期望给予帮助


参考(可能需要科学上网)
https://blog.hansenpartnership.c ... ot-system-released/
附上文件吧。
Signature.7z (285.41 KB, 下载次数: 18)
作者: xj888xj    时间: 2018-8-23 15:35
又对grub2有兴趣了。来更新硬盘里的文件
作者: yzbtdiy    时间: 2018-8-30 18:19
支持楼主
作者: netmjwork    时间: 2019-7-25 23:32
本帖最后由 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


作者: 2013clark    时间: 2019-8-6 10:24
感謝分享~~
試試~~
作者: 残光丶沫影    时间: 2019-8-13 01:10
试试...刚好在弄
作者: 创新科技2015    时间: 2019-12-17 11:49
赞一个!
作者: sjm009    时间: 2019-12-18 14:14
谢谢分享
作者: sjm009    时间: 2019-12-18 14:17
谢谢分享,收藏备用了。。。
作者: nivigo    时间: 2020-1-10 09:13
怎么实现grub.cfg目录自动搜索 /efi/grub2/grub.cfg或/grub2/grub.cfg或/efi/boot/grub.cfg或/boot/grub/grub.cfg呢?
作者: OHMCFXG    时间: 2020-1-17 00:00
感谢分享!!




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