无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
楼主: wintoflash

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
 楼主| 发表于 2020-5-10 18:21:31 | 显示全部楼层
实际测试了下,ntboot启动pe.wim比wimboot启动pe.wim速度大概快11-14秒

这个我以前说过。wimboot情况下wim是在一个fat32的虚拟盘上,bootmgfw读盘实际调用的是grub2读盘。
回复

使用道具 举报

 楼主| 发表于 2020-5-10 18:25:04 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-10 16:06
1、实际测试了下,ntboot启动pe.wim比wimboot启动pe.wim速度大概快11-14秒。
2、ntboot不能用于pxe启动, ...
ntboot不能用于pxe启动,提示出错。

ntboot是chenall的ntboot的复刻。
这个chenall实现不了,我也一样。

点评

知道了。 ntboot与wimboot对比下,ntboot用于本地速度加载要快点,wimboot适用性要广泛点。 感觉您移植的wimboot模块在本地稳定性挺好,就是加载速度不快,用于pxe启动的时候,总感觉不是那么稳定,比如显示传输  详情 回复 发表于 2020-5-11 08:52
回复

使用道具 举报

发表于 2020-5-11 08:52:53 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-5-11 08:54 编辑
wintoflash 发表于 2020-5-10 18:25
ntboot是chenall的ntboot的复刻。
这个chenall实现不了,我也一样。

知道了。

ntboot与wimboot对比下,ntboot用于本地速度加载要快点,wimboot适用性要广泛点。
感觉您移植的wimboot模块在本地稳定性挺好,就是加载速度不快,用于pxe启动的时候,总感觉不是那么稳定,比如显示传输速度31TiB/s,实际没那么快,另外对于httpserver有要求,不能很好地适配tinypxeserver,必须用第三方的httpserver,比如hfs、EasyWebSvr这样子的,可能与文件编码转换有关吧。

我也不知道wimboot讨论该在哪个帖子合适,用了ntboot的人,总会和wimboot相对比,就发到这个帖子吧。
回复

使用道具 举报

发表于 2020-5-12 13:38:04 | 显示全部楼层
谢谢分享
回复

使用道具 举报

发表于 2020-5-19 02:39:38 | 显示全部楼层
本帖最后由 ksafei 于 2020-5-19 03:50 编辑

反馈:NTBOOT与CrScreenshotDxe.efi真有莫名联系?!

本人电脑thinkpad E440,UEFI安全模式下,菜单中ntboot启动fat32分区的wim PE正常,而引导gpt分区表NTFS分区的wim则一直报错(见下图),但grubfmx中的“Boot NT6.x WIM (NTBOOT)”却能正常启动。
无标题.png
  近期在测试grubfmx 7.0b4和7.1.2版时发现因更新删除了  “ CrScreenshotDxe.efi”  ntboot引导也会报同样的错误(有反馈过),于是猜想ntboot是不是和CrScreenshotDxe.efi有关联,试着在grubfmx中补回“ efiload ${prefix}/CrScreenshotDxe.efi” 语句,在我的菜单中也加入一行 “ efiload /efi/boot/CrScreenshotDxe.efi”再“ntboot --efi=(wimboot)/bootmgfw.efi --sdi=(wimboot)/boot.sdi ${grub_file}”结果全部成功引导启动。

疑惑:CrScreenshotDxe.efi与安全启动确实没有直接关系,但通过启动菜单和grubfmx的测试又证明ntboot和
CrScreenshotDxe.efi有着莫名的关联,是本机的个案吗?请W大查验,也请其他坛友测试
------------------------------
进一步测试:同为ntfs分区,ntboot引导,启动U盘ntfs分区中的wim启动正常,gpt分区表ntfs分区的wim必须加 CrScreenshotDxe.efi 才行,猜想CrScreenshotDxe.efi是不是跟gpt分区表有关


点评

CrScreenshot.efi 只是个截屏软件。 你下载最新版 grub2,执行 efi_connect_all 试试。  详情 回复 发表于 2020-5-19 08:11
回复

使用道具 举报

 楼主| 发表于 2020-5-19 08:11:55 | 显示全部楼层
ksafei 发表于 2020-5-19 02:39
反馈:NTBOOT与CrScreenshotDxe.efi真有莫名联系?!

本人电脑thinkpad E440,UEFI安全模式下,菜单中nt ...

CrScreenshot.efi 只是个截屏软件。
你下载最新版 grub2,执行 efi_connect_all 试试。

点评

删除 CrScreenshotDxe.efi 语句,添加 efi_connect_all ,ntboot引导可以正常启动了。感谢W大!  详情 回复 发表于 2020-5-19 09:50
回复

使用道具 举报

发表于 2020-5-19 09:50:47 | 显示全部楼层
wintoflash 发表于 2020-5-19 08:11
CrScreenshot.efi 只是个截屏软件。
你下载最新版 grub2,执行 efi_connect_all 试试。

删除 CrScreenshotDxe.efi 语句,添加 efi_connect_all ,ntboot引导可以正常启动了。感谢W大!

点评

估计你电脑 UEFI 固件的磁盘驱动有点问题。  详情 回复 发表于 2020-5-19 10:24
回复

使用道具 举报

 楼主| 发表于 2020-5-19 10:24:22 | 显示全部楼层
ksafei 发表于 2020-5-19 09:50
删除 CrScreenshotDxe.efi 语句,添加 efi_connect_all ,ntboot引导可以正常启动了。感谢W大!

估计你电脑 UEFI 固件的磁盘驱动有点问题。

点评

此机BIOS已刷官网最新版本(2018-10),还有其他解决方法吗  详情 回复 发表于 2020-5-19 10:45
回复

使用道具 举报

发表于 2020-5-19 10:45:22 | 显示全部楼层
wintoflash 发表于 2020-5-19 10:24
估计你电脑 UEFI 固件的磁盘驱动有点问题。

此机BIOS已刷官网最新版本(2018-10),还有其他解决方法吗

点评

那没办法,只能每次进grub2都运行一次。如果你用的是grub2-filemanager,可以在某分区下新建文件夹boot,在boot下新建文件夹grubfm,在 /boot/grubfm下创建文件config。 把 efi_connect_all 写到config里面。 grub  详情 回复 发表于 2020-5-19 11:14
回复

使用道具 举报

 楼主| 发表于 2020-5-19 11:14:29 | 显示全部楼层
ksafei 发表于 2020-5-19 10:45
此机BIOS已刷官网最新版本(2018-10),还有其他解决方法吗

那没办法,只能每次进grub2都运行一次。如果你用的是grub2-filemanager,可以在某分区下新建文件夹boot,在boot下新建文件夹grubfm,在 /boot/grubfm下创建文件config。
把 efi_connect_all 写到config里面。
grub2-filemanager每次启动的时候,都会搜索 /boot/grubfm/config 这个文件,并执行里面的内容。

点评

按此操作,grubfm7.2.0测试还是会报错,麻烦看下是我哪个步骤操作不对[attachimg]457113[/attachimg]  详情 回复 发表于 2020-5-19 11:49
回复

使用道具 举报

发表于 2020-5-19 11:49:19 | 显示全部楼层
wintoflash 发表于 2020-5-19 11:14
那没办法,只能每次进grub2都运行一次。如果你用的是grub2-filemanager,可以在某分区下新建文件夹boot, ...

按此操作,grubfm7.2.0测试还是会报错,麻烦看下是我哪个步骤操作不对 无标题.png

点评

7.2.0还没有这个命令。你需要自己构建最新版的。  详情 回复 发表于 2020-5-19 12:12
回复

使用道具 举报

 楼主| 发表于 2020-5-19 12:12:03 | 显示全部楼层
ksafei 发表于 2020-5-19 11:49
按此操作,grubfm7.2.0测试还是会报错,麻烦看下是我哪个步骤操作不对

7.2.0还没有这个命令。你需要自己构建最新版的。

点评

测试grubfm0518版本启动正常了,谢谢!  详情 回复 发表于 2020-5-19 12:27
回复

使用道具 举报

发表于 2020-5-19 12:27:16 | 显示全部楼层
wintoflash 发表于 2020-5-19 12:12
7.2.0还没有这个命令。你需要自己构建最新版的。

测试grubfm0518版本启动正常了,谢谢!
回复

使用道具 举报

发表于 2020-5-21 11:58:39 | 显示全部楼层
不错的,可以启动ARM64平台的windows吗?

点评

目前不能,因为用了一点汇编。 主要是没有 arm 设备,没法测试。  详情 回复 发表于 2020-5-22 09:48
回复

使用道具 举报

发表于 2020-5-22 07:17:26 | 显示全部楼层
赞一个!
回复

使用道具 举报

 楼主| 发表于 2020-5-22 09:48:34 | 显示全部楼层
PEREZZENG 发表于 2020-5-21 11:58
不错的,可以启动ARM64平台的windows吗?

目前不能,因为用了一点汇编。
主要是没有 arm 设备,没法测试。

点评

懂得c语言就和牛逼了,为啥你还懂汇编!牛逼啊!  详情 回复 发表于 2020-5-22 18:28
回复

使用道具 举报

发表于 2020-5-22 15:53:50 | 显示全部楼层
很给力!
回复

使用道具 举报

发表于 2020-5-22 18:28:17 | 显示全部楼层
wintoflash 发表于 2020-5-22 09:48
目前不能,因为用了一点汇编。
主要是没有 arm 设备,没法测试。

懂得c语言就很牛逼了,为啥你还懂汇编!牛逼啊!

点评

ntboot本身没有用到汇编。只是ntboot依赖于wimboot,而wimboot用了一些汇编。 我基本上不会汇编。  详情 回复 发表于 2020-5-22 19:31
回复

使用道具 举报

 楼主| 发表于 2020-5-22 19:31:37 | 显示全部楼层
liuzhaoyzz 发表于 2020-5-22 18:28
懂得c语言就很牛逼了,为啥你还懂汇编!牛逼啊!

ntboot本身没有用到汇编。只是ntboot依赖于wimboot,而wimboot用了一些汇编。
我基本上不会汇编。
回复

使用道具 举报

 楼主| 发表于 2020-6-10 20:49:08 | 显示全部楼层
重写了读文件方面的函数,现在 wimboot 的加载速度应该和 ntboot 差不多了。

点评

感觉新的wimboot速度是有提高 有个小建议: “从 ISO 启动winpe” 项启动PE 后会固定Y盘挂载ISO 镜像,而h3pe、usbos等PE默认将Y盘作为挂载软件虚拟盘,这样就造成此类PE 启动后因Y盘被占而无法挂载软件  详情 回复 发表于 2020-6-11 00:15
回复

使用道具 举报

发表于 2020-6-11 00:15:20 | 显示全部楼层
本帖最后由 ksafei 于 2020-6-11 01:07 编辑
wintoflash 发表于 2020-6-10 20:49
重写了读文件方面的函数,现在 wimboot 的加载速度应该和 ntboot 差不多了。

感觉新的wimboot速度是有提高
有个小建议:
“从 ISO 启动winpe” 项启动PE 后会固定Y盘挂载ISO 镜像,而h3pe、usbos等PE默认将Y盘作为挂载软件虚拟盘,这样就造成此类PE 启动后因Y盘被占而无法挂载软件,建议分配盘符后顺延末盘符(第一个可用盘符)挂载镜像以免造成冲突

点评

但是有的PE只认挂载到Y盘的ISO  详情 回复 发表于 2020-6-11 08:15
回复

使用道具 举报

 楼主| 发表于 2020-6-11 08:15:03 | 显示全部楼层
ksafei 发表于 2020-6-11 00:15
感觉新的wimboot速度是有提高
有个小建议:
“从 ISO 启动winpe” 项启动PE 后会固定Y盘挂载I ...

但是有的PE只认挂载到Y盘的ISO
回复

使用道具 举报

发表于 2020-6-11 13:42:38 | 显示全部楼层
建议挂载统一分配成B盘,B盘不会被占用
回复

使用道具 举报

发表于 2020-6-11 14:06:53 | 显示全部楼层
这个可以启动.vhd的吧?感觉很有意思。
回复

使用道具 举报

 楼主| 发表于 2020-6-30 20:49:54 | 显示全部楼层
本帖最后由 wintoflash 于 2020-6-30 20:53 编辑

最近这几天研究了一下注册表和BCD相关的一些资料,重写了 ntboot,内部加入了一个自己写得 注册表/BCD 解析器(部分代码抄袭自 ReactOS),加入了修改部分启动参数的功能,仍在测试。
Screenshot_20200630_203745.png
请问有没有大佬知道这个 BCD 项目的功能?
RamdiskExportAsCd
Screenshot_20200630_204757.png
BcdDeviceBoolean_RamdiskExportAsCd
Enables exporting the RAM disk as a CD. The element data format is BcdBooleanElement.
回复

使用道具 举报

发表于 2020-6-30 21:59:01 | 显示全部楼层
W大牛比,又完善产品了啊。。。

W大氏问这句美语么?屮美语不行,但这句话の字面意思很简单啊。。。
BcdDeviceBoolean_RamdiskExportAsCd
Enables exporting the RAM disk as a CD. The element data format is BcdBooleanElement.

Bcd设备布尔_内存盘导出作为Cd
使能导出 内存盘作为 CD .这个项目数据格式氏 Bcd布尔项目 .

点评

我能看懂英语。 我想问的是具体用法。  详情 回复 发表于 2020-6-30 22:04
回复

使用道具 举报

 楼主| 发表于 2020-6-30 22:04:50 | 显示全部楼层
gnuxwy 发表于 2020-6-30 21:59
W大牛比,又完善产品了啊。。。

W大氏问这句美语么?屮美语不行,但这句话の字面意思很简单啊。。。

我能看懂英语。
我想问的是具体用法。
回复

使用道具 举报

发表于 2020-6-30 22:19:31 | 显示全部楼层
我能看懂英语。
我想问的是具体用法。

哦,这个具体用法屮真不懂啊。。。
据字面意思猜测,应该氏 置0 沃 置1 以决定内存盘当作光盘启用氏否生效。。。

只能帮顶了,让大佬们瞧见后告知W大具体用法了。。。

回复

使用道具 举报

发表于 2020-6-30 22:27:59 | 显示全部楼层
本帖最后由 ksafei 于 2020-6-30 22:40 编辑

@nf17b 大神对BCD的研究比较透彻,希望能看到,也许会有帮助
回复

使用道具 举报

 楼主| 发表于 2020-7-1 19:22:28 | 显示全部楼层
本帖最后由 wintoflash 于 2020-7-1 21:33 编辑

研究了半天还是没搞懂怎么弄 VHD 的 RamOS。发一下测试版本。
游客,如果您要查看本帖隐藏内容请回复

  1. Usage: ntboot [--v|-w|-n|-r] [-p] [-e FILE] [-s FILE] [BCD_OPTIONS] FILE
  2. -g, --gui Display graphical boot messages.
  3. -p, --pause Print debug messages and wait for key press.
  4. -e, --efi=FILE Set bootmgfw.efi path.
  5. -s, --sdi=FILE Set boot.sdi path.
  6. FILE TYPE:
  7. -w, --wim Boot WIM.
  8. -n, --win Boot Windows.
  9. -v, --vhd Boot VHD/VHDX.
  10. -r, --ramvhd Boot RamOS VHD. (not work)
  11. BCD OPTION:
  12. --testmode=yes|no Test mode (testsigning).
  13. --highest=yes|no Force highest resolution.
  14. --nx=OptIn|OptOut|AlwaysOff|AlwaysOn Nx policy.
  15. --pae=Default|Enable|Disable PAE policy.
  16. --detecthal=yes|no Detect HAL and kernel.
  17. --winpe=yes|no Boot into WinPE.
  18. --imgoffset=n Set Ramdisk image offset (RamOS VHD).
  19. --timeout=n Set timeout.
  20. --sos=yes|no ???
  21. --novesa=yes|no Avoid VESA BIOS calls.
  22. --novga=yes|no Disable VGA modes.
复制代码

示例:
启动 WinPE WIM (默认 testmode=yes winpe=yes detecthal=yes)
  1. ntboot --efi=/xxx/bootmgfw.efi --sdi=/xxx/boot.sdi --wim /xxx/xxx.wim
  2. ntboot --efi=/xxx/bootmgfw.efi --sdi=/xxx/boot.sdi --wim /xxx/xxx.wim --testmode=no --pae=Enable
复制代码

启动 VHD (默认 testmode=no winpe=no detecthal=yes)
  1. ntboot --efi=/xxx/bootmgfw.efi --vhd /xxx/xxx.vhd
复制代码

启动 Windows 系统 (默认 testmode=no winpe=no detecthal=yes)
  1. ntboot --efi=/xxx/bootmgfw.efi --win (hd0,4)
复制代码

启动 RamOS VHD (未测试成功,默认 testmode=no winpe=no detecthal=yes ramdiskimageoffset=65536)
  1. ntboot --efi=/xxx/bootmgfw.efi --ramvhd /xxx/xxx.vhd
  2. ntboot --efi=/xxx/bootmgfw.efi --ramvhd /xxx/xxx.vhd --imgoffset=33619968 --nx=OptIn
复制代码

点评

建议启动pe默认 testmode=no 这样无需设置此参数也不会出现测试模式水印 bcd默认设置本来也是默认 testmode=no 的  详情 回复 发表于 2020-7-5 07:58
功能加强版,太好了!尤其是--highest 这个参数一直很期待,在UEFI安全启动时很有用  详情 回复 发表于 2020-7-1 21:04
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2020-12-4 07:07

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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