无忧启动论坛

标题: 静默过安检及Grub2 [打印本页]

作者: hhh333    时间: 2020-1-29 00:53
标题: 静默过安检及Grub2
本帖最后由 hhh333 于 2020-2-8 18:42 编辑

一、先说一下静默绕过Secure Boot
网上找了多个,有这样或那样的毛病,最后选用adef (http://bbs.wuyou.net/forum.php?m ... tra=page%3D1&page=1)发的那个问题较少
1、基本原理及启动过程
bootx64.efi(位于 /efi/boot下,能够过安检的,我理解这个是获得了MS授权的)-->fde_ld.efi(这个用来装配置文件的,与bootx64.efi位于同一位置不能改名)-->grub.cfg(固定在/boot/grub/,不能改名,但可以改内容)-->grubx64.efi(这个是一个跳转用的头文件,可以用来跳转其他启动器,因为是由grub.cfg来调用的,所以可以改名、改内容、改位置)-->其他各种不能过安检的启动器
可见,实际上的核心文件就前面两个,思路就是用能够过安检的二传一下到不能过安检的启动器。以下是我的配置文件grub.cfg的内容:
  1. # Configuration file for Kaspersky GRUB fd_ldr.efi
  2. # Remove embedded chainloader module, insert patched module with internal PE loader
  3. set timeout=10
  4. rmmod chain
  5. insmod /efi/grub/chain.mod

  6. function ldrpe {
  7. if [ "$root" == "cd0" ]; then
  8.         set ldr=$1bootx64.efi
  9. else
  10.         set ldr=fde2$1.efi
  11. fi
  12. #search -n -f -s /efi/boot/$ldr
  13. chainloader /efi/boot/$ldr
  14. boot
  15. }
  16. menuentry "1-Xorboot Secure Boot" {ldrpe xor;}
  17. menuentry "2-rEFInd Secure Boot" {ldrpe ref;}
  18. menuentry "3-Grub2 Secure Boot" {ldrpe g2;}
  19. menuentry "4-MS" {ldrpe ms;}
复制代码
其中fde2xor fde2ref 等都用grubx64.efi改名字和内容而来,分别用来启动xorboot rEFInd等,原文件是要求启动grubx64_real.efi,可以用winhex找到这个字串改成你想启动的启动器的名称,如我的xorboot启动器的名字为xorbootx64.efi,如下图,在偏移8588的位置,文件名长度不够的,后面全部改00(注意改左边):

如此这般把另外三个也改好,对应关系如下:
fde2xor--xorbootx64.efi--xorboot启动器
fde2ref--refbootx64.efi--rEFInd启动器
fde2g2--g2bootx64.efi--grub2启动器
fde2ms--msbootx64.efi--ms的原版启动器

2、测试
以上准备工作做好了,可以进行测试,我是在VM15最新的虚拟机上测试的,安全启动可开闭。本地盘格式为GPT模式,前面建立ESP分区,用来安装PE和一揽子启动器,我的ESP分区为FAT32-5G大小
结果:
A、以上菜单均成功启动,如下图:

B、各菜单项基本都能够正常启动,说明过安检是成功的。但grub2确实差,无论是官方的2.04还是W大的2.05都不能直接启动bootx64.efi,直接黑屏不知道在什么的干活,这一直是它的老毛病,但以前似乎测试过从U盘启动时,直接装bootx64.efi的是可以启动(第一菜单项),大概是放GPT磁盘中它找不到北了。但W大的run和文件管理器可以启动PE,利用的是wimboot或ntboot功能,不能算正宗的启动PE的方式。这里rEFInd不错,把能够启动的EFI都扫出来了,并且可以启动。
C、实际上有些启动器不需要跳转器,可以直接在grub.cfg菜单中chainloader,但rEFInd不行,xorboot要多试几次才成功,g2可以直接装载。但总的来讲,有跳转器更稳定。
3、光盘启动测试
把两个核心文件做到ISO打包用的启动映像中,fde_ld.efi可以优先找到光盘中的grub.cfg,但对光盘是有限制的:即不支持UDF也不支持Joliet,这两个都是MS当家的光盘格式,因此bootx64.efi将找不到bcd文件,更找不到bcd指向的文件,更不好弄的是那个由grub.cfg调用的跳转器更加找不到它对应的启动器,尽管放在同一个目录,这就是我为什么菜单中光启时不用跳转器的原因。经测试,grub.cfg中不调用跳转器直接启动,xorboot先出一个错,按ESC后再次回车可进入;rEFInd不能进入;grub2没有压力直接进入;xor和g2进入后都是不能装载ms的启动器进而启动pe的,又试了W大的run和FM,也不能启动PE,但关了SB就可以启动,说明这个安检还在起作用。
4、关于wimboot的测试
  1. function WimPeEfi {
  2.   wimboot @:bootmgfw.efi:/efi/grub/boot/$1 \
  3.           @:bcd:/efi/microsoft/boot/$2 \
  4.           @:boot.sdi:/BOOT/boot.sdi \
  5.           @:$3:/BOOT/$3
  6. }
  7. if [ "${grub_platform}" == "efi" ]; then
  8.         insmod /efi/grub/${grub_cpu}-${grub_platform}/wimboot.mod
  9.   if [ "${grub_cpu}" == "x86_64" ]; then
  10.           # 此处可添加EFI64工具
  11.                 if [ "$root" == "cd0" ]; then
  12.                         set ldrwinpe=shellx64.efi
  13.                 else
  14.                         set ldrwinpe=msbootx64.efi
  15.                 fi
  16.           menuentry "Windows 8/81/10 X64_EFI" --class windows --class os {
  17.                   search --no-floppy --file --set=root /efi/boot/$ldrwinpe
  18.                   chainloader /efi/boot/$ldrwinpe
  19.           }
  20.           menuentry "Windows 8 X64_EFI by Wimboot" --class windows --class os {
  21.                   WimPeEfi msbootx64.efi b64 H3_864.WIM
  22.           }
复制代码
用W大的2.05出现badfile,用官方的2.04想加入W大的wimboot.mod,谁知又要map组件,map组件可能又需要其他组件,没继续试了。
总的来讲,grub2的wimboot似乎并不好用,也许是我不知道用法。我觉得EFI中用winboot应该和BIOS中一样,不要mod直接装wimboot(已知现在是不能像IPXE一样直接装的,会提示出错,这大概就是做wimboot.MOD的原因吧),使用wimboot的语法也尽量与iPXE一致。正确的逻辑应该是grub2要尽量去适应wimboot,而不是根据源码去改造wimboot来适应grub2。我看iPXE不论是在bios下还是EFI下都使用一个wimboot文件,而且语法也是一样的,grub2也应该可以做到吧。


小结:
1、静默过安检的第三方启动器的光盘不好做,还是老老实实用证书方式或干脆关了SB;
2、GTP硬盘下grub2还是不能直接启动bootx64.efi;
3、建议W大优化wimboot的使用。
======================

1、经过与“从此消失”讨论,发现卡巴的那个并不是不认UDF和Joliet,而是要求boot\grub\grub.cfg必须要小写字母
2、经仔细分析,wimboot命令中路径与文件也要写对大小写
提供一个模板: H3CD.7z (2.39 MB, 下载次数: 243) ,bios与efi双启的,都是grub2。


作者: zgj    时间: 2020-1-29 07:31
方法不错,值得一试
作者: 曾经沧海    时间: 2020-1-29 07:42
不好意思!误会了,我以为过海关检查冠状病毒呢?
作者: 2010sya    时间: 2020-1-29 07:59
谢谢分享
作者: qxhdly    时间: 2020-1-29 08:10
谢谢分享
作者: 江南一根葱    时间: 2020-1-29 16:40
绕过安全启动套装还是用乌邦图的Grub2来管理各种启动比较好
反正乌邦图的grub2也是通过认证的,除了在surface这类硬件上也要改过,而且现在efi下也有wimboot
作者: hhh333    时间: 2020-1-29 22:57
江南一根葱 发表于 2020-1-29 16:40
绕过安全启动套装还是用乌邦图的Grub2来管理各种启动比较好
反正乌邦图的grub2也是通过认证的,除了在sur ...

拿ubt看了一下,虽支持joliet,但不能装其他启动器,一装就提示double free 0xXXXX,不知道么意思。
作者: my9823    时间: 2020-1-30 10:34
我也说一句github上有w大的新版,1个小时前更新的,试试看能行不,俺们就静候佳音了!
作者: my9823    时间: 2020-1-30 10:40
fde_ld是卡巴斯基定制的有签名的grub2吧?
作者: 窄口牛    时间: 2020-1-30 11:00
研究这些不如把从文件启动的bios启动项加到bios文件里刷主板,也就是白名单功能集成到bios里。
作者: hhh333    时间: 2020-1-30 11:00
应该是,W大的说明似乎与这个无关吧,我这段时间天天看更新。万一W大又憋大招
作者: zgj    时间: 2020-1-30 16:53
善举天成
作者: zhxy9804    时间: 2020-1-30 18:10
大佬,放出启动ISO啊,我等学习一下菜单怎么写,依样葫芦
作者: hhh333    时间: 2020-1-30 19:21
zhxy9804 发表于 2020-1-30 18:10
大佬,放出启动ISO啊,我等学习一下菜单怎么写,依样葫芦

http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1
应有尽有
作者: zhxy9804    时间: 2020-1-30 23:20
hhh333 发表于 2020-1-30 19:21
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=370573&extra=&page=1
应有尽有

看了一下,bootmgr加载grub2貌似没有啊,嘿嘿
作者: hhh333    时间: 2020-1-31 08:17
本帖最后由 hhh333 于 2020-1-31 08:21 编辑
zhxy9804 发表于 2020-1-30 23:20
看了一下,bootmgr加载grub2貌似没有啊,嘿嘿

g2在bios下不擅长,只在g4d中有转g2的菜单项。efi下MS似乎转不了其他,要么作一启。xorboot可转g2
作者: zhxy9804    时间: 2020-1-31 08:25
hhh333 发表于 2020-1-31 08:17
g2在bios下不擅长,只在g4d中有转g2的菜单项。efi下MS似乎转不了其他,要么作一启。xorboot可转g2

嗯嗯,总感觉用起来憋屈,
不过开发理念之类的都是很好的,
作者: hhh333    时间: 2020-1-31 09:01
zhxy9804 发表于 2020-1-31 08:25
嗯嗯,总感觉用起来憋屈,
不过开发理念之类的都是很好的,

linux世界都用它来作装载器啊
作者: 2012kwy    时间: 2020-1-31 18:43
hhh333 发表于 2020-1-29 22:57
拿ubt看了一下,虽支持joliet,但不能装其他启动器,一装就提示double free 0xXXXX,不知道么意思。

换用ubt签名文件好像只能过第一道门,若想加载自己未经签名的efi文件照样出错,而且试过无法安装sbspolicy,不知H3大有没有遇到?在ubt的签名文件下如何安装sbpolicy并生效,可能还得请W大出手。
作者: hhh333    时间: 2020-1-31 18:53
2012kwy 发表于 2020-1-31 18:43
换用ubt签名文件好像只能过第一道门,若想加载自己未经签名的efi文件照样出错,而且试过无法安装sbspolic ...

我也是两眼一摸黑,ubt弄不成。目前卡巴就是在光启上不好使,其他还凑合。
作者: 2012kwy    时间: 2020-1-31 20:28
呵呵,看来无望,权当一梦
作者: liuzhaoyzz    时间: 2020-2-1 10:14
很详细的经验分享!感觉secure boot以后只会越来越难以越过,微软太霸道了,到处收保护费啊!我也感觉grub2-wimboot还有改进的空间,grub2-map感觉挺好的,wintoflash一个人搞定了UEFI-map,已经很了不起了!      
作者: 江南一根葱    时间: 2020-2-1 11:57
不用wimboot的话,一个bootmgfw.efi就够了吧,还要其他启动器做甚?
作者: hhh333    时间: 2020-2-1 20:59
江南一根葱 发表于 2020-2-1 11:57
不用wimboot的话,一个bootmgfw.efi就够了吧,还要其他启动器做甚?

目前不太清楚为什么g2直接调用bootmgfw.efi会黑屏卡死,其他的启动器调用这个文件基本没有压力。
作者: 江南一根葱    时间: 2020-2-1 21:03
hhh333 发表于 2020-2-1 20:59
目前不太清楚为什么g2直接调用bootmgfw.efi会黑屏卡死,其他的启动器调用这个文件基本没有压力。

好像不能调用ntfs分区的bootmgfw.efi,
作者: hhh333    时间: 2020-2-1 21:12
匿名者 发表于 2020-2-1 21:03
terminal_output console

意思是调用之前,要用这个命令?
作者: hhh333    时间: 2020-2-1 21:20
匿名者 发表于 2020-2-1 21:03
terminal_output console

确实可以了,这个有什么讲究?
作者: hhh333    时间: 2020-2-1 21:46
匿名者 发表于 2020-2-1 21:29
bios/uefi下 都是有两套显示的系统.
第一套是基本的,bios内置的,只能显示ascii字符.(console)
第二套相 ...

哦,感谢解惑!
刚才试了一下光启g2作一启,还是要经过efi shell二传再启动,否则找不到光盘上的BCD。如果硬盘上有,可以找到硬盘上的启动,把硬盘上的删了就找不到光盘上的了。xorboot与rEFInd不需要二传。

作者: hhh333    时间: 2020-2-8 18:44
反映的问题基本解决,见首页。
作者: wintoflash    时间: 2020-3-4 15:39
hhh333 发表于 2020-2-1 21:46
哦,感谢解惑!
刚才试了一下光启g2作一启,还是要经过efi shell二传再启动,否则找不到光盘上的BCD。如 ...

光盘上,现在可以统一用wimboot启动wim,wimboot也能过安全启动了。想"正宗"地启动wim,加上 --rawwim --rawbcd 参数就好了。

作者: hhh333    时间: 2020-3-5 09:06
本帖最后由 hhh333 于 2020-3-5 09:10 编辑
wintoflash 发表于 2020-3-4 15:39
光盘上,现在可以统一用wimboot启动wim,wimboot也能过安全启动了。想"正宗"地启动wim,加上 --rawwim -- ...

所谓正宗与不正宗如何理解?
那两个参数是加上好还是不加
  1. #EFI环境用wimboot来启动PE
  2. function wimbootpefi {
  3. wimboot @:bootmgfw.efi:/EFI/BOOT/$1 \
  4.         @:bcd:/EFI/Microsoft/BOOT/$2 \
  5.         @:boot.sdi:/BOOT/BOOT.SDI \
  6.         @:$3:/BOOT/$3
  7. }
复制代码
加上是这么用吗:wimboot --rawwim --rawbcd @:.....



作者: 江南一根葱    时间: 2020-3-5 09:18
记得正宗的概念是楼主提出来的啊
作者: hhh333    时间: 2020-3-5 11:14
江南一根葱 发表于 2020-3-5 09:18
记得正宗的概念是楼主提出来的啊

是吗?我确实不清楚了。还有就是刚才测试了一下,wimboot确实是可以了,安全启动下也可以用了,以上代码不作任何改动。
作者: hilsonma    时间: 2020-3-5 12:18
hhh333 发表于 2020-3-5 11:14
是吗?我确实不清楚了。还有就是刚才测试了一下,wimboot确实是可以了,安全启动下也可以用了,以上代码 ...

我也不明白,
正宗的启动PE的方式 指的是什么方式?是不是指直接bootmgfw.efi+bcd+pe.wim这样的?

wintoflash的--rawbcd --rawwim 是不是指@:NAME:FILE 直接使用FILE文件名,不改名为NAME?
中文手册里说 --rawbcd 禁用BCD自动修改( .exe 改为 .efi ) 是不是指winload.exe改winload.efi?如果禁用的话UEFI启动可以使用winload.exe引导吗?



作者: 青青草    时间: 2020-3-5 12:29
hilsonma 发表于 2020-3-5 12:18
我也不明白,
正宗的启动PE的方式 指的是什么方式?是不是指直接bootmgfw.efi+bcd+pe.wim这样的?

等W大解惑吧!
作者: wintoflash    时间: 2020-3-5 14:46
hilsonma 发表于 2020-3-5 12:18
我也不明白,
正宗的启动PE的方式 指的是什么方式?是不是指直接bootmgfw.efi+bcd+pe.wim这样的?

这有啥难以理解的东西吗?
默认情况下 wimboot 会自动搜索 bcd 里面的宽字符串 '.exe',替换为 '.efi'。使用 --rawbcd 就不自动替换。
默认情况下 wimboot 会自动把除了 boot.sdi bcd 以外的所有文件射入 wim,这样可以修改wim内部启动脚本之类的东西。 使用 --rawwim 就不射入了。
wimboot的原理就是内部有一个 2TB 的 mbr 分区表单 FAT32 分区硬盘。@:boot.wim:/abcd.wim 就相当于在这个虚拟盘里面创建了一个快捷方式。你把所有启动wim必需的文件都在虚拟盘里创建好对应的快捷方式,然后启动虚拟盘里的bootmgfw.efi/bootx64.efi 就行了。
跟 map 差不多,没有对 微软的启动文件本身做什么奇怪的事情。
作者: hilsonma    时间: 2020-3-5 21:28
wintoflash 发表于 2020-3-5 14:46
这有啥难以理解的东西吗?
默认情况下 wimboot 会自动搜索 bcd 里面的宽字符串 '.exe',替换为 '.efi'。 ...

感谢讲解。
作者: hhh333    时间: 2020-3-7 17:34
wintoflash 发表于 2020-3-5 14:46
这有啥难以理解的东西吗?
默认情况下 wimboot 会自动搜索 bcd 里面的宽字符串 '.exe',替换为 '.efi'。 ...

这么一解释明白了总原理。但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件越大复制的时间越长,如果是快捷方式的话与文件大小是没关系的。既然是复制的当然可以改名称,当然对原文件也没影响。
那两个参数,我的理解就是保持BCD和WIM文件不需要改,实际上只要文件的名称对应,是不需要改的,如BCD中已经正确指向了EFI文件,PE的wim一般在BCD里面是用的启动设备,因此也不用改,但如果具体指向某个盘,这个时候估计wimboot就要改了。改BCD是比较好理解的,但WIM本身一般本来就不用改吧?所谓的射入或WIM内部启动脚本之类没听说过。是不是装载了WIM这个盘占的内存也就释放了,如果能够射入WIM中还可以在内存中起作用。但什么时候需要这些东西呢?
作者: wintoflash    时间: 2020-3-7 18:42
hhh333 发表于 2020-3-7 17:34
这么一解释明白了总原理。但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件 ...
但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件越大复制的时间越长,如果是快捷方式的话与文件大小是没关系的。既然是复制的当然可以改名称,当然对原文件也没影响。

没有复制。如果是复制,那么复制到了哪里?

作者: hhh333    时间: 2020-3-7 18:47
wintoflash 发表于 2020-3-7 18:42
没有复制。如果是复制,那么复制到了哪里?

不是说有个内存虚拟盘吗?譬如说网启,这些文件都要到本地吧
作者: 江南一根葱    时间: 2020-3-7 18:50
hhh333 发表于 2020-3-7 17:34
这么一解释明白了总原理。但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件 ...

类似mklink的快捷方式吧
射脚本很好用啊,我前些年发现的,
可以只需要一个空wim内核,把外面的驱动包啊软件包啊等文件射进去,然后使用。
可以模块化pe,随意增删组件并不用解包wim来修改pe
作者: wintoflash    时间: 2020-3-7 18:56
hhh333 发表于 2020-3-7 18:47
不是说有个内存虚拟盘吗?譬如说网启,这些文件都要到本地吧

没有。
虚拟盘不在内存里占据任何空间。就像 grub4dos "map" 和 "map --mem" 的区别。
作者: 从此消失    时间: 2020-3-8 13:56
wintoflash 发表于 2020-3-4 15:39
光盘上,现在可以统一用wimboot启动wim,wimboot也能过安全启动了。想"正宗"地启动wim,加上 --rawwim -- ...

wimboot启动加载内核会比shell慢不少,这个有什么讲究
作者: wintoflash    时间: 2020-3-8 14:08
从此消失 发表于 2020-3-8 13:56
wimboot启动加载内核会比shell慢不少,这个有什么讲究

Shell是指什么?内核是指什么?
作者: 从此消失    时间: 2020-3-8 14:11
就是启动同一PE,在PE加载文件过程中,就是走白条进度过程,PE大概500M,如果用shell模块加载的话挺快,如果用wimboot模块加载,就有点慢,在vm15.5中测试的
作者: 从此消失    时间: 2020-3-8 14:21
同一PE,boot.wim有485M,就是载boot.bim过程时间差,用shell模块加载的话用时约5秒,用wimboot模块加载的话用时约20秒,难道这里还有什么说法
作者: wintoflash    时间: 2020-3-8 14:25
从此消失 发表于 2020-3-8 14:21
同一PE,boot.wim有485M,就是载boot.bim过程时间差,用shell模块加载的话用时约5秒,用wimboot模块加载的 ...

wimboot读条底层是grub2的驱动,比windows自己的慢.
作者: 从此消失    时间: 2020-3-8 14:26
wintoflash 发表于 2020-3-8 14:25
wimboot读条底层是grub2的驱动,比windows自己的慢.

原来是这个原因,明白了
作者: hilsonma    时间: 2020-3-8 14:45
从此消失 发表于 2020-3-8 14:21
同一PE,boot.wim有485M,就是载boot.bim过程时间差,用shell模块加载的话用时约5秒,用wimboot模块加载的 ...
用shell模块加载的话用时约5秒

具体是怎样操作?可不可以将引导的语句分享一下?我看不明白。
作者: wintoflash    时间: 2020-3-8 14:50
从此消失 发表于 2020-3-8 14:11
就是启动同一PE,在PE加载文件过程中,就是走白条进度过程,PE大概500M,如果用shell模块加载的话挺快,如 ...

一般没啥特殊需求可以用ntboot.
作者: hilsonma    时间: 2020-3-8 15:01
wintoflash 发表于 2020-3-8 14:50
一般没啥特殊需求可以用ntboot.

我现在用的就是ntboot,比wimboot快。
他说的用shell模块加载又是什么呢?
在你的wimboot和ntboot模块之前我就只会chainload bootmgfw.efi来引导,不知还有什么方法。
作者: 从此消失    时间: 2020-3-8 15:08
hilsonma 发表于 2020-3-8 14:45
具体是怎样操作?可不可以将引导的语句分享一下?我看不明白。

shell模块加载方式:
shell --delay=0 --startup

wimboot模块加载方式:
        wimboot -b -w @:bootmgfw.efi:($root)/JRPE/EFI64/MS64EFI.EFI \
                      @:bcd:($root)/JRPE/EFIBCD \
                      @:boot.sdi:($root)/JRPE/10PE.SDI \
                      @:boot.wim:($root)/JRPE/64B.WIM
作者: 从此消失    时间: 2020-3-8 15:09
wintoflash 发表于 2020-3-8 14:50
一般没啥特殊需求可以用ntboot.

这个倒是给忽略了,这个正适合其实
作者: 从此消失    时间: 2020-3-8 15:13
从此消失 发表于 2020-3-8 15:09
这个倒是给忽略了,这个正适合其实

才看见后面的内容,只能是磁盘,我需要在光盘上,这就不行了
作者: hilsonma    时间: 2020-3-8 15:57
本帖最后由 hilsonma 于 2020-3-8 16:02 编辑
从此消失 发表于 2020-3-8 15:08
shell模块加载方式:
shell --delay=0 --startup

意思是进入uefi shell,执行startup.nsh,是吗?
那startup.nsh的内容又是怎样呢?

作者: 从此消失    时间: 2020-3-8 16:04
hilsonma 发表于 2020-3-8 15:57
意思是进入uefi shell,执行startup.nsh,是吗?
那startup.nsh的内容又是怎样呢?

就是这么个意思,startup.nsh的内容如下,一看就明白
echo -off

set efiname64 "jr64befi"
set efiname32 "jr32befi"
echo Seach for "%efiname64%.efi"...
for %b in fs0 fs1 fs2 fs3 fs4 fs5 fs6 fs7 fs8 fs9
echo Seaching %b ...
if exist %b:\%efiname64%.efi then
echo %efiname64% found in %b:!
%b:
%efiname64%
if not %lasterror% == 0 then
%efiname32%
endif
exit
endif
endfor

作者: 从此消失    时间: 2020-3-8 16:05
startup.nsh文件要放在efi启动文件的根目录下,shell才可用
作者: hilsonma    时间: 2020-3-8 16:12
从此消失 发表于 2020-3-8 16:04
就是这么个意思,startup.nsh的内容如下,一看就明白
echo -off

明白了,感谢分享。
作者: hhh333    时间: 2020-3-8 22:11
我以前是直接调用shell.efi外置文件的,后面看到g2中也有mod,实际是一个东西,大小都差不多。用这个来与wimboot来比是没有可比性的。shell是直接启动bootmgr.efi,而wimboot是做前期工作,后期还不也是boomgr.efi,是为bootmgr营造一个启动环境的,环境准备好了与原文件就没关系了。譬如网启,没有比wimboot更优秀的了。本地启动NTBOOT、WIMBOOT主要是用于直接用bootmgr不好使的时候,但ntboot一直是不能用于光盘的,在g4d的时候就是这样,也不能用于网启吧,而wimboot本地启、光启与网启是通吃的。
作者: wintoflash    时间: 2020-3-9 09:15
WIM本身一般本来就不用改吧?所谓的射入或WIM内部启动脚本之类没听说过。是不是装载了WIM这个盘占的内存也就释放了,如果能够射入WIM中还可以在内存中起作用。但什么时候需要这些东西呢?

启动 pe 一般不用改 WIM。启动原版系统 ISO 需要向 boot.wim 内部注入 iso 挂载驱动。
wimboot  .....  @:abc.txt:/xxx.txt @:boot.wim:/xxx.wim 启动之后你可以在X盘的Windows\System32下看到这个注入的 abc.txt
作者: 江南一根葱    时间: 2020-3-9 20:18
efishell下有没有人找到http.efi之类的,我试过shell下用tftp.efi是可以网启的。
作者: qingyi78    时间: 2020-3-12 02:31
dell inspiron II 77472 过安检无效,进不了任何菜单,直接报错
之前有个WINTOFLASH大发的通过修改GRUBFMX64.EFI来过安检的方式可行。其他的都不行。
作者: hhh333    时间: 2020-3-12 11:26
qingyi78 发表于 2020-3-12 02:31
dell inspiron II 77472 过安检无效,进不了任何菜单,直接报错
之前有个WINTOFLASH大发的通过修改GRUBFMX ...

那个是shim证书方式
作者: qingyi78    时间: 2020-3-12 17:15
hhh333 发表于 2020-3-12 11:26
那个是shim证书方式

是的,需要导入证书。不过一次导入,再用任何启动器都可通过安全启动。
作者: wintoflash    时间: 2020-3-22 20:22
有人反馈 Lenovo B40 30 Notebook 用了这套东西之后就再也进不去BIOS设置界面了,也没法U盘启动了。
https://github.com/a1ive/grub2-filemanager/issues/140
作者: ksafei    时间: 2020-3-22 22:09
wintoflash 发表于 2020-3-22 20:22
有人反馈 Lenovo B40 30 Notebook 用了这套东西之后就再也进不去BIOS设置界面了,也没法U盘启动了。
https: ...

这里也有个对联想个别机型UEFI安全启动的反馈
http://bbs.wuyou.net/forum.php?m ... 573&pid=3990856
作者: yzw92    时间: 2020-3-23 06:08
方法不错,值得一试
作者: hhh333    时间: 2020-3-23 07:28
ksafei 发表于 2020-3-22 22:09
这里也有个对联想个别机型UEFI安全启动的反馈
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findp ...

这个是用来阻shim方式的,因为文件名固定,所以直接检测文件名就可阻止
作者: 9695    时间: 2020-4-21 23:12
黄老师能告诉我怎样用xorboot引导grub2吗?
作者: szmsys    时间: 2020-5-9 10:05
太复杂了
作者: 110654    时间: 2020-5-23 23:46
经过测试 发现surface pro7设备  还是绕不过。。。。
作者: 2011wind5win    时间: 2020-5-25 02:03
你好,有个问题困惑着我,找了很久都没有找到原因以及解决方法,因此在这里特向大神请教,请指点指点,谢谢。

bcd中填加了win7~10的共5个wim镜像,结果启动后只显示win7vhd一个,这些镜像都是从别的pe里复制出来,别的pe中开机菜单是可正常显未多个系统列表的,我一直找不到问题原因,我怀疑是bootmgfw.efi、bootmgr.efi等文件的问题,但卡壳了,不知道方向对不对也不知下一步如何进行,请大神指导下。

1.jpg (23.72 KB, 下载次数: 266)

图1 开机系统列表少了几个

图1 开机系统列表少了几个

2.jpg (18.08 KB, 下载次数: 257)

图2 BCD中列表

图2 BCD中列表

作者: hhh333    时间: 2020-5-25 15:13
2011wind5win 发表于 2020-5-25 02:03
你好,有个问题困惑着我,找了很久都没有找到原因以及解决方法,因此在这里特向大神请教,请指点指点,谢谢 ...

应该是另一个BCD,或者是EFI不会启动32位
作者: 2011wind5win    时间: 2020-5-25 21:36
hhh333 发表于 2020-5-25 15:13
应该是另一个BCD,或者是EFI不会启动32位

32位和64位的都试过,列表只显示了win7 vhd的
作者: 2011wind5win    时间: 2020-5-25 21:56
本帖最后由 2011wind5win 于 2020-5-25 23:00 编辑
hhh333 发表于 2020-5-25 15:13
应该是另一个BCD,或者是EFI不会启动32位

最新:bootice1.3.4升级为bootice1.4解决了问题


64位的读了boot下的bcd,32位的读了bootia32下的bcd,但是开机列表中就是不显示,我截了图如下







作者: linglongx    时间: 2020-8-14 00:30
本帖最后由 linglongx 于 2020-8-14 00:41 编辑

本人编译了一个 GRUB2加载SLIC证书的 EFI启动器  用来直接替换ESP:\EFI\boot下的Bootx64.efi.然后这个改名为Bootx64.efi GRUB2启动器直接启动ESP:\Microsoft\Boot\ 目录中的 微软系统引导文件 bootmgfw.efi 完美实现SLIC证书加载 注意这两个目录结构,  bootx64.efi文件的作用其实就是个一传加载器,真正引导微软系统的还是 bootmgfw.efi ,所以ESP:\EFI\boot目录下原来的Bootx64.efi不是必要. 另外我记得当时测试时如果把这个原来的Bootx64.efi文件改为其它名称再用GRUB2来加载也是不行的.
下面是集成到 GRUB2引导器 Bootx64.efi 这个文件中的引导菜单

echo "**************  test  *****************"
echo "****  start load dell slic 2.3     ****"
echo "****  bbs.wuyou.net && linglongx   ****"
echo "***************************************"
echo "***************************************"
sleep -v 5
acpi --v2 --slic=dell
sleep 2

set timeout="60"
set default="0"

insmod all_video
insmod video_bochs
insmod video_cirrus
insmod efi_gop
insmod efi_uga
insmod font
insmod gfxterm
insmod gfxmenu
insmod gettext
insmod jpeg
insmod png

#加载unicode字体显示中文
font=(memdisk)/boot/grub/fonts/unicode.pf2
if loadfont ${font}; then
set gfxmode=1366x768
set locale_dir=(memdisk)/boot/grub/locale
set lang=zh_CN
fi

#设置分辨率
set gfxmode=auto
terminal_output gfxterm

#设置主题或背景图片
if search --no-floppy -f /boot/grub/themes/StylishDark/theme.txt; then
        set theme=/boot/grub/themes/StylishDark/theme.txt
else
        background_image /boot/grub/background.png
        set color_normal=red/black
        set color_highlight=magenta/black
fi



menuentry "Microsoft Windows 10 企业版64" --class windows --class os {
        echo "正在启动 Microsoft Windows 10..."
        insmod part_gpt
        insmod ntfs
        insmod fat
        insmod search_fs_file
        insmod chain
        search --no-floppy --set=root -f /EFI/Microsoft/boot/bootmgfw.efi
        chainloader (${root})/EFI/Microsoft/boot/bootmgfw.efi
}

menuentry "重启计算机" --class reboot {
        reboot
}
menuentry "关闭计算机" --class shutdown {
        halt
}



作者: 2013mqqdg    时间: 2021-4-29 01:31
研究得真深入,感谢分享
作者: tdsskiller    时间: 2022-4-3 13:40
已经不行了吧,这个是卡巴斯基的有漏洞的急救盘,BOOTKIT常用漏洞过SecureBoot,还是实现内核隔离下内核代码任意执行的后门,已经被拉黑了
作者: hanchi123    时间: 2023-4-27 10:59
感谢分享




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