无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: hhh333

[讨论] 静默过安检及Grub2

    [复制链接]
 楼主| 发表于 2020-3-5 09:06:04 | 显示全部楼层
本帖最后由 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:44 | 显示全部楼层
记得正宗的概念是楼主提出来的啊
回复

使用道具 举报

 楼主| 发表于 2020-3-5 11:14:46 | 显示全部楼层
江南一根葱 发表于 2020-3-5 09:18
记得正宗的概念是楼主提出来的啊

是吗?我确实不清楚了。还有就是刚才测试了一下,wimboot确实是可以了,安全启动下也可以用了,以上代码不作任何改动。
回复

使用道具 举报

发表于 2020-3-5 12:18:52 | 显示全部楼层
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引导吗?

wimboot05.jpg
回复

使用道具 举报

发表于 2020-3-5 12:29:28 | 显示全部楼层
hilsonma 发表于 2020-3-5 12:18
我也不明白,
正宗的启动PE的方式 指的是什么方式?是不是指直接bootmgfw.efi+bcd+pe.wim这样的?

等W大解惑吧!
回复

使用道具 举报

发表于 2020-3-5 14:46:14 | 显示全部楼层
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 差不多,没有对 微软的启动文件本身做什么奇怪的事情。

点评

这么一解释明白了总原理。但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件越大复制的时间越长,如果是快捷方式的话与文件大小是没关系的。既然是复制的当然可以改名称,当然对原文件也  详情 回复 发表于 2020-3-7 17:34
感谢讲解。  详情 回复 发表于 2020-3-5 21:28
回复

使用道具 举报

发表于 2020-3-5 21:28:59 | 显示全部楼层
wintoflash 发表于 2020-3-5 14:46
这有啥难以理解的东西吗?
默认情况下 wimboot 会自动搜索 bcd 里面的宽字符串 '.exe',替换为 '.efi'。 ...

感谢讲解。
回复

使用道具 举报

 楼主| 发表于 2020-3-7 17:34:54 | 显示全部楼层
wintoflash 发表于 2020-3-5 14:46
这有啥难以理解的东西吗?
默认情况下 wimboot 会自动搜索 bcd 里面的宽字符串 '.exe',替换为 '.efi'。 ...

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

使用道具 举报

发表于 2020-3-7 18:42:00 | 显示全部楼层
hhh333 发表于 2020-3-7 17:34
这么一解释明白了总原理。但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件 ...
但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件越大复制的时间越长,如果是快捷方式的话与文件大小是没关系的。既然是复制的当然可以改名称,当然对原文件也没影响。

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

点评

不是说有个内存虚拟盘吗?譬如说网启,这些文件都要到本地吧  详情 回复 发表于 2020-3-7 18:47
回复

使用道具 举报

 楼主| 发表于 2020-3-7 18:47:28 | 显示全部楼层
wintoflash 发表于 2020-3-7 18:42
没有复制。如果是复制,那么复制到了哪里?

不是说有个内存虚拟盘吗?譬如说网启,这些文件都要到本地吧
回复

使用道具 举报

发表于 2020-3-7 18:50:47 | 显示全部楼层
hhh333 发表于 2020-3-7 17:34
这么一解释明白了总原理。但你讲快捷方式,我觉得不对,还是把原文件复制到了wimboot创建的盘,因为文件 ...

类似mklink的快捷方式吧
射脚本很好用啊,我前些年发现的,
可以只需要一个空wim内核,把外面的驱动包啊软件包啊等文件射进去,然后使用。
可以模块化pe,随意增删组件并不用解包wim来修改pe
回复

使用道具 举报

发表于 2020-3-7 18:56:07 | 显示全部楼层
hhh333 发表于 2020-3-7 18:47
不是说有个内存虚拟盘吗?譬如说网启,这些文件都要到本地吧

没有。
虚拟盘不在内存里占据任何空间。就像 grub4dos "map" 和 "map --mem" 的区别。
回复

使用道具 举报

发表于 2020-3-8 13:56:34 | 显示全部楼层
wintoflash 发表于 2020-3-4 15:39
光盘上,现在可以统一用wimboot启动wim,wimboot也能过安全启动了。想"正宗"地启动wim,加上 --rawwim -- ...

wimboot启动加载内核会比shell慢不少,这个有什么讲究
回复

使用道具 举报

发表于 2020-3-8 14:08:40 | 显示全部楼层
从此消失 发表于 2020-3-8 13:56
wimboot启动加载内核会比shell慢不少,这个有什么讲究

Shell是指什么?内核是指什么?
回复

使用道具 举报

发表于 2020-3-8 14:11:33 | 显示全部楼层
就是启动同一PE,在PE加载文件过程中,就是走白条进度过程,PE大概500M,如果用shell模块加载的话挺快,如果用wimboot模块加载,就有点慢,在vm15.5中测试的
回复

使用道具 举报

发表于 2020-3-8 14:21:44 | 显示全部楼层
同一PE,boot.wim有485M,就是载boot.bim过程时间差,用shell模块加载的话用时约5秒,用wimboot模块加载的话用时约20秒,难道这里还有什么说法
回复

使用道具 举报

发表于 2020-3-8 14:25:23 | 显示全部楼层
从此消失 发表于 2020-3-8 14:21
同一PE,boot.wim有485M,就是载boot.bim过程时间差,用shell模块加载的话用时约5秒,用wimboot模块加载的 ...

wimboot读条底层是grub2的驱动,比windows自己的慢.

点评

原来是这个原因,明白了  详情 回复 发表于 2020-3-8 14:26
回复

使用道具 举报

发表于 2020-3-8 14:26:18 | 显示全部楼层
wintoflash 发表于 2020-3-8 14:25
wimboot读条底层是grub2的驱动,比windows自己的慢.

原来是这个原因,明白了
回复

使用道具 举报

发表于 2020-3-8 14:45:21 | 显示全部楼层
从此消失 发表于 2020-3-8 14:21
同一PE,boot.wim有485M,就是载boot.bim过程时间差,用shell模块加载的话用时约5秒,用wimboot模块加载的 ...
用shell模块加载的话用时约5秒

具体是怎样操作?可不可以将引导的语句分享一下?我看不明白。
回复

使用道具 举报

发表于 2020-3-8 14:50:23 | 显示全部楼层
从此消失 发表于 2020-3-8 14:11
就是启动同一PE,在PE加载文件过程中,就是走白条进度过程,PE大概500M,如果用shell模块加载的话挺快,如 ...

一般没啥特殊需求可以用ntboot.

点评

这个倒是给忽略了,这个正适合其实  详情 回复 发表于 2020-3-8 15:09
我现在用的就是ntboot,比wimboot快。 他说的用shell模块加载又是什么呢? 在你的wimboot和ntboot模块之前我就只会chainload bootmgfw.efi来引导,不知还有什么方法。  详情 回复 发表于 2020-3-8 15:01
回复

使用道具 举报

发表于 2020-3-8 15:01:52 | 显示全部楼层
wintoflash 发表于 2020-3-8 14:50
一般没啥特殊需求可以用ntboot.

我现在用的就是ntboot,比wimboot快。
他说的用shell模块加载又是什么呢?
在你的wimboot和ntboot模块之前我就只会chainload bootmgfw.efi来引导,不知还有什么方法。
回复

使用道具 举报

发表于 2020-3-8 15:08:30 | 显示全部楼层
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

点评

意思是进入uefi shell,执行startup.nsh,是吗? 那startup.nsh的内容又是怎样呢?  详情 回复 发表于 2020-3-8 15:57
回复

使用道具 举报

发表于 2020-3-8 15:09:21 | 显示全部楼层
wintoflash 发表于 2020-3-8 14:50
一般没啥特殊需求可以用ntboot.

这个倒是给忽略了,这个正适合其实

点评

才看见后面的内容,只能是磁盘,我需要在光盘上,这就不行了  详情 回复 发表于 2020-3-8 15:13
回复

使用道具 举报

发表于 2020-3-8 15:13:01 | 显示全部楼层
从此消失 发表于 2020-3-8 15:09
这个倒是给忽略了,这个正适合其实

才看见后面的内容,只能是磁盘,我需要在光盘上,这就不行了
回复

使用道具 举报

发表于 2020-3-8 15:57:58 | 显示全部楼层
本帖最后由 hilsonma 于 2020-3-8 16:02 编辑
从此消失 发表于 2020-3-8 15:08
shell模块加载方式:
shell --delay=0 --startup

意思是进入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 f  详情 回复 发表于 2020-3-8 16:04
回复

使用道具 举报

发表于 2020-3-8 16:04:27 | 显示全部楼层
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:12
回复

使用道具 举报

发表于 2020-3-8 16:05:29 | 显示全部楼层
startup.nsh文件要放在efi启动文件的根目录下,shell才可用
回复

使用道具 举报

发表于 2020-3-8 16:12:03 | 显示全部楼层
从此消失 发表于 2020-3-8 16:04
就是这么个意思,startup.nsh的内容如下,一看就明白
echo -off

明白了,感谢分享。
回复

使用道具 举报

 楼主| 发表于 2020-3-8 22:11:50 | 显示全部楼层
我以前是直接调用shell.efi外置文件的,后面看到g2中也有mod,实际是一个东西,大小都差不多。用这个来与wimboot来比是没有可比性的。shell是直接启动bootmgr.efi,而wimboot是做前期工作,后期还不也是boomgr.efi,是为bootmgr营造一个启动环境的,环境准备好了与原文件就没关系了。譬如网启,没有比wimboot更优秀的了。本地启动NTBOOT、WIMBOOT主要是用于直接用bootmgr不好使的时候,但ntboot一直是不能用于光盘的,在g4d的时候就是这样,也不能用于网启吧,而wimboot本地启、光启与网启是通吃的。
回复

使用道具 举报

发表于 2020-3-9 09:15:43 | 显示全部楼层
WIM本身一般本来就不用改吧?所谓的射入或WIM内部启动脚本之类没听说过。是不是装载了WIM这个盘占的内存也就释放了,如果能够射入WIM中还可以在内存中起作用。但什么时候需要这些东西呢?

启动 pe 一般不用改 WIM。启动原版系统 ISO 需要向 boot.wim 内部注入 iso 挂载驱动。
wimboot  .....  @:abc.txt:/xxx.txt @:boot.wim:/xxx.wim 启动之后你可以在X盘的Windows\System32下看到这个注入的 abc.txt
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 15:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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