无忧启动论坛

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

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
61#
 楼主| 发表于 2020-5-10 15:03:21 | 只看该作者
liuzhaoyzz 发表于 2020-5-10 13:11
大神,
1、从github上面下载了最新的grub2,没有菜单边框怎么回事?
1、从github上面下载了最新的grub2,没有菜单边框怎么回事?

现在默认无边框。想加边框,执行
  1. set grub_draw_border=1
复制代码
2、ntboot出错

这个你自己找原因。不知道哪句写得不对,导致后面都解析错了,自己仔细检查一下。
3、你在一楼说bootmgfw.efi是WIN7的,似乎不对啊,属性里面看应该是WIN8的?我用WIN7/8的试了都不行,咋搞的?

已删。以前放Win7的bootmgfw.efi是因为其他版本过不了sb。现在都能过sb了,反而Win7的被巨硬封杀了,就没必要用Win7的。
回复

使用道具 举报

62#
发表于 2020-5-10 16:05:04 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-10 18:44 编辑
wintoflash 发表于 2020-5-10 15:03
现在默认无边框。想加边框,执行

感谢答复!
1、set grub_draw_border=1有边框了。
2、上面的菜单我上写了一个“-”,改成"--"之后没问题了。
menuentry "ntboot-sx0312" "/boot/imgs/SXWIN10PEX64_17763_NET20200312/boot.wim" {
search --no-floppy --set --file $2
ntboot --gui --efi=/boot/ms/EFI/boot/bootx64.efi --sdi=/boot/boot.sdi $2
}
3、我试了用win10的bootmgfw.efi,ntboot启动pe.wim成功。
回复

使用道具 举报

63#
发表于 2020-5-10 16:06:46 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-5-10 16:22 编辑

1、实际测试了下,ntboot启动pe.wim比wimboot启动pe.wim速度大概快11-14秒。
2、ntboot不能用于pxe启动,提示出错。
3、怎么新版本里面wimboot通过pxe启动UEFI下的pe.wim失败?一直黑屏,以前没问题啊。

tinypxeserver看到了:
16:20:57 TFTPd:DoReadFile:grub2x64.efi B:1468 T:0
16:20:59 TFTPd:DoReadFile:/grub2/grub2pxe.cfg B:1024 T:2269
16:20:59 TFTPd:DoReadFile:/grub2/unicode.xz B:1024 T:789164
16:21:01 TFTPd:DoReadFile:/grub2/unicode.xz B:1024 T:789164

EasyWebSvr看不到pe.wim传输记录。

菜单如下:set default=0
set fallback=1
set timeout=5
set pager=20
set grub_draw_border=1

#设定菜单字体及背景颜色
set menu_color_normal=white/black
set menu_color_highlight=white/blue

loopback -m ramdisk (tftp)/grub2/unicode.xz
loadfont (ramdisk)/grub2/fonts/unicode.pf2
set locale_dir=(ramdisk)/grub2/locale
set lang=zh_CN
terminal_output gfxterm

net_bootp
set net_default_server=192.168.21.112
set root='(http)'

menuentry "/imgs/WePE_64_V2.0/WEPE64.WIM" "/imgs/WePE_64_V2.0/WEPE64.WIM" {
wimboot \
  @:bootmgfw.efi:/ms/EFI/boot/bootx64.efi   \
  @:bcd:/grub2/bcd    \
  @:boot.sdi:/boot.sdi    \
  @:boot.wim:(http)/imgs/WePE_64_V2.0/WEPE64.WIM
}





测试GPT-2020-05-10-16-07-24.png (3.29 KB, 下载次数: 299)

测试GPT-2020-05-10-16-07-24.png
回复

使用道具 举报

64#
发表于 2020-5-10 17:22:09 | 只看该作者
liuzhaoyzz 发表于 2020-5-10 16:06
1、实际测试了下,ntboot启动pe.wim比wimboot启动pe.wim速度大概快11-14秒。
2、ntboot不能用于pxe启动, ...

大神不好意思,误报,是我电脑的问题,我把电脑重启了下就好了,wimboot-pxe启动pe.wim正常。
sorry!
回复

使用道具 举报

65#
 楼主| 发表于 2020-5-10 18:21:31 | 只看该作者
实际测试了下,ntboot启动pe.wim比wimboot启动pe.wim速度大概快11-14秒

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

使用道具 举报

66#
 楼主| 发表于 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
回复

使用道具 举报

67#
发表于 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相对比,就发到这个帖子吧。
回复

使用道具 举报

68#
发表于 2020-5-12 13:38:04 | 只看该作者
谢谢分享
回复

使用道具 举报

69#
发表于 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)”却能正常启动。

  近期在测试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
回复

使用道具 举报

70#
 楼主| 发表于 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
回复

使用道具 举报

71#
发表于 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大!

点评

试试最新版grub2,不用 efi_connect_all ,会不会报这个错。 去年11月4日的 commit 修复了一个可能和这个相关的问题。 https://github.com/a1ive/grub/commit/f9761214f93c3400ea13d95fe79b4af608976394#diff-b67e  详情 回复 发表于 2021-1-16 15:33
估计你电脑 UEFI 固件的磁盘驱动有点问题。  详情 回复 发表于 2020-5-19 10:24
回复

使用道具 举报

72#
 楼主| 发表于 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
回复

使用道具 举报

73#
发表于 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
回复

使用道具 举报

74#
 楼主| 发表于 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
回复

使用道具 举报

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

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

点评

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

使用道具 举报

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

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

点评

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

使用道具 举报

77#
发表于 2020-5-19 12:27:16 | 只看该作者
wintoflash 发表于 2020-5-19 12:12
7.2.0还没有这个命令。你需要自己构建最新版的。

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

使用道具 举报

78#
发表于 2020-5-21 11:58:39 | 只看该作者
不错的,可以启动ARM64平台的windows吗?

点评

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

使用道具 举报

79#
发表于 2020-5-22 07:17:26 | 只看该作者
赞一个!
回复

使用道具 举报

80#
 楼主| 发表于 2020-5-22 09:48:34 | 只看该作者
PEREZZENG 发表于 2020-5-21 11:58
不错的,可以启动ARM64平台的windows吗?

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

点评

w大,您好! 这个项目现在支不支持arm64 aarch64 架构,还有如何编译出arm64-efi的全套二进制模块(需要包含ntboot.mod在oracle vps上 grub chainload armwin用)  详情 回复 发表于 2022-4-19 11:39
懂得c语言就和牛逼了,为啥你还懂汇编!牛逼啊!  详情 回复 发表于 2020-5-22 18:28
回复

使用道具 举报

81#
发表于 2020-5-22 15:53:50 | 只看该作者
很给力!
回复

使用道具 举报

82#
发表于 2020-5-22 18:28:17 | 只看该作者
wintoflash 发表于 2020-5-22 09:48
目前不能,因为用了一点汇编。
主要是没有 arm 设备,没法测试。

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

点评

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

使用道具 举报

83#
 楼主| 发表于 2020-5-22 19:31:37 | 只看该作者
liuzhaoyzz 发表于 2020-5-22 18:28
懂得c语言就很牛逼了,为啥你还懂汇编!牛逼啊!

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

使用道具 举报

84#
 楼主| 发表于 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
回复

使用道具 举报

85#
发表于 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
回复

使用道具 举报

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

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

使用道具 举报

87#
发表于 2020-6-11 13:42:38 | 只看该作者
建议挂载统一分配成B盘,B盘不会被占用
回复

使用道具 举报

88#
发表于 2020-6-11 14:06:53 | 只看该作者
这个可以启动.vhd的吧?感觉很有意思。
回复

使用道具 举报

89#
 楼主| 发表于 2020-6-30 20:49:54 | 只看该作者
本帖最后由 wintoflash 于 2020-6-30 20:53 编辑

最近这几天研究了一下注册表和BCD相关的一些资料,重写了 ntboot,内部加入了一个自己写得 注册表/BCD 解析器(部分代码抄袭自 ReactOS),加入了修改部分启动参数的功能,仍在测试。

请问有没有大佬知道这个 BCD 项目的功能?
RamdiskExportAsCd

BcdDeviceBoolean_RamdiskExportAsCd
Enables exporting the RAM disk as a CD. The element data format is BcdBooleanElement.
回复

使用道具 举报

90#
发表于 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
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-8 05:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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