无忧启动论坛

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

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
跳转到指定楼层
1#
发表于 2019-11-20 17:40:12 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wintoflash 于 2021-3-2 19:10 编辑

本项目已停止开发,不再维护。
----------------------------

wimboot
根据 ipxe wimboot 移植的模块,适用于 BIOS/UEFI,可以启动并修改 Windows NT6+ WIM。
使用方法
  1. wimboot [BOOT_OPTIONS] [BCD_OPTIONS] @:NAME1:FILE1 @:NAME2:FILE2 ...
  2. BOOT OPTIONS (启动参数)
  3. -g, --gui 显示图形启动界面 (不推荐开启)
  4. -p, --pause 显示调试信息并在启动过程中暂停
  5. -b, --rawbcd 禁用 BCD 自动修改 (.exe 改为 .efi)
  6. -w, --rawwim 禁用 WIM 自动修改
  7. -i, --index=n 指定要启动的WIM卷号
  8. -p, --pause 启动前暂停
  9. -j, --inject=WIN32_PATH 指定射入文件夹,默认为 \Windows\Syatem32

  10. @:NAME:FILE
  11. 指定要加载的文件 FILE,其被射入虚拟盘后文件名为 NAME。若未射入 BCD 或 boot.sdi,将使用内置 BCD 和 boot.sdi

  12. BCD OPTIONS (BCD 内部启动选项,仅当使用内置 BCD 时才有效。在使用 yes|no 的地方,也可以使用 on|off, true|false, 1|0):
  13. --testmode=yes|no 测试模式 (testsigning)。
  14. --highest=yes|no 强制使用最高分辨率。
  15. --nx=OptIn|OptOut|AlwaysOff|AlwaysOn 指定 NX 策略。
  16. --pae=Default|Enable|Disable 指定 PAE 策略。
  17. --detecthal=yes|no 检测 HAL 和 kernel。
  18. --winpe=yes|no 启动到 WinPE 模式 (/MININT)。
  19. --timeout=n 设置超时。
  20. --sos=yes|no 启用 SOS 模式。
  21. --novesa=yes|no 禁用 VESA BIOS 调用。
  22. --novga=yes|no 禁用 VGA 模式。
  23. --loadoptions=XXX 指定 NT 内核加载参数。
  24. --winload=\\WIN32_PATH 指定 winload 路径。
  25. --sysroot=\\WIN32_PATH 指定系统根目录。
复制代码

示例1: 启动 WIM
  1. wimboot --rawwim @:bootmgfw.efi:/boot/grub/bootmgfw.efi @:boot.wim:/wim/wepe.wim
复制代码

示例2: 启动 WIM,关闭测试模式,启用 PAE
  1. wimboot --testmode=no --pae=Enable --rawwim @:bootmgfw.efi:/boot/grub/bootmgfw.efi @:boot.wim:/wim/wepe.wim
复制代码

示例3: 启动 WIM 的第二卷,并射入替代 explorer
  1. wimboot --index=2 @:bootmgfw.efi:/boot/bootmgfw.efi @:explorer.exe:/boot/explorer.exe \
  2.             @:WinXShell.exe:/boot/WinXShell.exe @:WinXShell.jcfg:/boot/WinXShell.jcfg \
  3.             @:winpeshl.ini:/boot/winpeshl.ini @:boot.wim:(loop)/sources/boot.wim
复制代码

注意事项
wim 文件体积不得超过 4GB。

NTBOOT
根据 chenall 的 GRUB4DOS NTBOOT 移植的模块,适用于 BIOS/UEFI,可以启动 Windows 系统/WIM/VHD。
使用方法
  1. ntboot [-g] [-p] -e FILE [-s FILE] [BOOT_TYPE] [BCD_OPTIONS] FILE
  2. -g, --gui 显示图形启动界面 (不推荐开启)
  3. -p, --pause 显示调试信息并在启动过程中暂停
  4. -e, --efi=FILE 指定 bootmgfw.efi / bootmgr.exe 的路径。
  5. -s, --sdi=FILE 指定 boot.sdi 的路径。若无此参数,则使用内部生成的 boot.sdi。

  6. BOOT TYPE (指定启动文件类型,默认情况下根据文件扩展名自动判断):
  7. -w, --wim 指定启动类型为 wim。
  8. -n, --win 指定启动类型为 Windows 系统。
  9. -v, --vhd 指定启动类型为 VHD。
  10. -r, --ramvhd 指定启动类型为 RamOS VHD (此选项仅供测试)

  11. BCD OPTIONS (BCD 内部启动选项,在使用 yes|no 的地方,也可以使用 on|off, true|false, 1|0):
  12. --testmode=yes|no 测试模式 (testsigning)。
  13. --highest=yes|no 强制使用最高分辨率。
  14. --nx=OptIn|OptOut|AlwaysOff|AlwaysOn 指定 NX 策略。
  15. --pae=Default|Enable|Disable 指定 PAE 策略。
  16. --detecthal=yes|no 检测 HAL 和 kernel。
  17. --winpe=yes|no 启动到 WinPE 模式 (/MININT)。
  18. --imgoffset=n 指定 RamOS VHD 内存盘偏移。
  19. --timeout=n 设置超时。
  20. --sos=yes|no 启用 SOS 模式。
  21. --novesa=yes|no 禁用 VESA BIOS 调用。
  22. --novga=yes|no 禁用 VGA 模式。
  23. --loadoptions=XXX 指定 NT 内核加载参数。
  24. --winload=\\WIN32_PATH 指定 winload 路径。
  25. --sysroot=\\WIN32_PATH 指定系统根目录。
复制代码

示例1: 启动WIM
  1. ntboot --efi=/xxx/bootmgfw.efi --wim /xxx/xxx.wim
复制代码

示例2: 启动VHD
  1. ntboot --efi=/xxx/bootmgfw.efi --vhd /xxx/xxx.vhd
复制代码

示例3: 启动 Windows 系统
  1. ntboot --efi=/xxx/bootmgfw.efi --win (hd0,4)
复制代码

示例4: 启动WIM,禁用测试模式,启用 PAE
  1. ntboot --efi=/xxx/bootmgfw.efi --wim /xxx/xxx.wim --testmode=no --pae=Enable
复制代码


注意事项
只支持硬盘 mbr/gpt 分区表 FAT/NTFS 分区上的文件。
启动 VHD 可能会有个错误(如下图),不过不要慌,按两遍回车就可以了。


下载
https://github.com/a1ive/grub/releases/tag/latest

技术细节
wimboot 可以生成一个 bootmgfw.exe/bootmgr.exe 可识别的单分区 FAT32 虚拟盘, 将 bootmgfw.efi, bcd 等文件放入其中即可启动。BCD 文件为 bootmgfw.efi 读取的启动配置文件,其格式为 REGF (Windows 注册表)。关于 REGF,可以到这里了解更多。boot.sdi 文件为 bootmgfw.efi 启动 WIM 必须的 System Deployment Image 文件,可以到这里了解更多。wimboot 内置了一个 REGF/BCD 解析器,可以解析并自动修改 BCD 的内容;同时也内置了 boot.sdi 生成工具,可以自动生成所需的 boot.sdi。wimboot 启动方式与 NTBOOT 启动方式的主要区别是 wimboot 启动时,WIM 文件也放入FAT32虚拟盘中,而 NTBOOT 启动时,WIM 不在启动盘中。因此,wimboot 方式可以虚拟修改 WIM 内容,向其中插入文件而不用改变实际文件内容,NTBOOT 则不可以。wimboot 会将除了 bcd, boot.sdi, WIM 自身之外的所有文件都射入 WIM 的 \Windows\System32 目录下。但是由于 VHD 启动过程中需要从真实硬盘读取 VHD,所以 wimboot 方式无法启动 VHD。


  1. grub-mkimage -d x86_64-efi -p /boot/grub -o grubx64.efi -O x86_64-efi acpi all_video bitmap bitmap_scale blocklist boot cat chain cmp commandline configfile cpio date datehook dd disk echo efi_gop efi_uga efifwsetup exfat expr ext2 extcmd fat fb file font fshelp getenv getkey gfxmenu gfxterm gfxterm_background gfxterm_menu gzio halt hashsum help hexdump iso9660 jfs jpeg keystatus linux linuxefi loadenv loopback ls lua lzopio memdisk minicmd multiboot multiboot2 newc normal ntfs part_gpt part_msdos partnew parttool png probe progress random read reboot regexp sbpolicy search sleep squash4 tar terminal terminfo test tga time udf vhd video video_colors video_fb videoinfo xzio map wimboot ntboot
复制代码


参考
参考了以下项目的代码或文档,感谢开源
iPXE wimboot
NTBOOT by chenall
quibble
REGF Spec
BCD Elements
SDI Spec

源码
https://github.com/a1ive/grub 许可协议 GPLv3

评分

参与人数 21无忧币 +108 收起 理由
liangzr1976 + 5 很给力!
anythingsky + 5 赞一个!
wuxin9712 + 5
879792799 + 5 大大是独一无二的高手!
zhczf + 5 很给力!
brook + 5 很给力!
cuicongyuan + 5 赞一个!
johnyou + 3 赞一个!
sghihor + 5
2011yaya2007777 + 5 很给力!
Climbing + 5 赞一个!
826773297 + 5 很给力!
chenall + 5 很给力!
liuzhaoyzz + 10 很给力!
liaonf + 5 赞一个!
2010sya + 5 赞一个!
hilsonma + 5 很给力!
freesoft00 + 5
ksafei + 5 很给力!
江南一根葱 + 5 努力秒杀xorboot 踏平udm
bardlet + 5 赞一个!

查看全部评分

2#
 楼主| 发表于 2019-11-20 21:21:48 | 显示全部楼层
本帖最后由 wintoflash 于 2019-11-20 21:23 编辑
2012kwy 发表于 2019-11-20 21:04
某些绕过安全打包的grub2版本为2.02,楼主的grub2为2.05版,且某些模块还是特制的,请问如何兼容?如果出现 ...

没看我的帖子?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=416924都能绕过安全启动了,直接chainload这个grub不就行了

点评

请问,此版是内置启动菜单的吧?如何定制或者外置菜单的路径默认是哪个文件?  详情 回复 发表于 2021-1-11 16:40
回复

使用道具 举报

3#
 楼主| 发表于 2019-11-20 21:27:19 | 显示全部楼层
2010up 发表于 2019-11-20 20:52
可以写一个,UEFI GRUB2  PXE引导 的事例吗?

@江南一根葱
回复

使用道具 举报

4#
 楼主| 发表于 2019-11-20 21:27:50 | 显示全部楼层
minmax 发表于 2019-11-20 19:25
期待支持 差分及VHDX

如果bootmgfw.efi能直接启,那就行,否则,不行.

点评

bootmgfw.efi能直接启,可以,透過引導BCD ?  详情 回复 发表于 2019-11-22 16:08
能给一个模板么  详情 回复 发表于 2019-11-20 21:54
回复

使用道具 举报

5#
 楼主| 发表于 2019-11-21 07:59:57 | 显示全部楼层
ksafei 发表于 2019-11-20 22:56
虚拟机测试可以,实体机还未成功,继续测试....

发现此版grubx64.efi不兼容wimboot方式启动wim了,是不 ...

我这边可以啊

点评

我这里的测试结果: 1.如采用绕过UEFI安全启动,然后用 chainloader /efi/boot/grubx64.efi引导 则ntboot和wimboot均报错; 2.如关闭安全启动,将grubx64.efi 改为 bootx64.efi 引导,则ntboot和wimboot正常; 3.  详情 回复 发表于 2019-11-22 14:12
回复

使用道具 举报

6#
 楼主| 发表于 2019-11-21 13:00:27 | 显示全部楼层
826773297 发表于 2019-11-21 12:01
希望能够加上wim分卷启动功能,这样可以节省空间,另外虚拟盘能否在光盘下运作wim,每次量产后grub2都只能 ...

那你应该用wimboot啊,支持指定启动分卷。
ntboot本来就是用于硬盘启动的。
现在新一代wimboot比前一代速度快了,而且不再像前一代那样占用两倍内存。

点评

好的,有空试试  详情 回复 发表于 2019-11-21 15:01
回复

使用道具 举报

7#
 楼主| 发表于 2019-11-22 15:09:42 | 显示全部楼层
ksafei 发表于 2019-11-22 14:12
我这里的测试结果:
1.如采用绕过UEFI安全启动,然后用 chainloader /efi/boot/grubx64.efi引导 则ntboo ...
3.wimboot 如用loopback wimboot /boot/grub/wimboot.gz  
                       ........     (报错)
如下方式则正常:
wimboot @:bootmgfw.efi:"${prefix}"/wimboot/bootmgfw.efi \
                        @:bcd:"${prefix}"/wimboot/bcd \
                        @:boot.sdi:"${prefix}"/wimboot/boot.sdi \
                        @:boot.wim:"${wimroot}"$2

这一段没太看懂,能详细些吗?

点评

一、UEFI安全模式启动,ntboot和wimboot均报错[/backcolor] 1.ntboot报错如下:[/backcolor] [attachimg]405537[/attachimg] 2.wimboot报错如下: 菜单a: loopback wimboot /boot/grub/wimboot.gz wimbo  详情 回复 发表于 2019-11-22 17:20
回复

使用道具 举报

8#
 楼主| 发表于 2019-11-22 17:34:09 | 显示全部楼层
ksafei 发表于 2019-11-22 17:26
通过以上测试对新的 grubx64.efi 有如下疑惑:
一是好像不支持安全启动模式 ;
二是对 loopback wimboot  ...

loopback的那个图,你按回车试试?

点评

按回车显示如下图: [attachimg]405544[/attachimg]  详情 回复 发表于 2019-11-22 17:37
回复

使用道具 举报

9#
 楼主| 发表于 2019-11-22 18:56:35 | 显示全部楼层
ksafei 发表于 2019-11-22 17:37
按回车显示如下图:

我这里loopback没问题。
关于安全启动,暂时放弃吧。微软搞事情,证书失效,我也没办法。

点评

明白。wimboot、map和ntboot等模块是对grub2的创新和发展,感谢wintoflash大的辛苦付出和分享。期待有更多更好的成果  详情 回复 发表于 2019-11-22 20:33
回复

使用道具 举报

10#
 楼主| 发表于 2019-12-28 18:13:47 | 显示全部楼层
wdtx 发表于 2019-12-28 17:57
老师你好,下载了grub2-latest.tar.gz,制作了grubx64.efi,
在vmware试验,应用主题时背景图被一个窗口遮 ...

善用搜索
http://bbs.wuyou.net/forum.php?m ... 0371&fromuid=487838
另外,请不要在帖子下提与帖子主题无关的问题。
回复

使用道具 举报

11#
 楼主| 发表于 2020-2-28 19:09:30 | 显示全部楼层
青青草 发表于 2020-2-28 18:58
W大,你好!
      请教一下,cupid可不可以用来判断CPU是32位还是64位?
谢谢!
  1. if cpuid -l;
  2. then
  3.   export CPU=64;
  4. else
  5.   export CPU=32;
  6. fi;
复制代码

点评

谢谢!  详情 回复 发表于 2020-2-28 20:47
回复

使用道具 举报

12#
 楼主| 发表于 2020-3-3 20:48:27 | 显示全部楼层
现在安全启动下 NTBOOT/wimboot 也不会报错了。

点评

好消息,惊喜连连! W麻烦再给个生成的grubfmx吧,我在windows下生成,运行后总有一些类型的文件图标显示空的,谢谢!  详情 回复 发表于 2020-3-3 21:06
回复

使用道具 举报

13#
 楼主| 发表于 2020-3-4 09:27:34 | 显示全部楼层
ksafei 发表于 2020-3-3 21:06
好消息,惊喜连连!
W大,麻烦再给个生成的grubfmx吧,我在windows下生成的运行后总有一些类型的文件图 ...

grubfmx64.efi.tar.gz (3.77 MB, 下载次数: 95)

点评

感谢!  发表于 2020-3-4 10:23
回复

使用道具 举报

14#
 楼主| 发表于 2020-3-5 16:52:33 | 显示全部楼层
awengers44 发表于 2020-3-5 16:05
wintoflash usta çok teşekkür ederim. test sonuçları başarılı, ba ...

iyi
回复

使用道具 举报

15#
 楼主| 发表于 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的。

点评

感谢答复! 1、set grub_draw_border=1有边框了。 2、上面的菜单我上写了一个“-”,改成之后没问题了。 menuentry "ntboot-sx0312" "/boot/imgs/SXWIN10PEX64_17763_NET20200312/boot.wim" { search --no-flopp  详情 回复 发表于 2020-5-10 16:05
回复

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

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

点评

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

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

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

使用道具 举报

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

使用道具 举报

29#
 楼主| 发表于 2020-7-1 21:21:26 | 显示全部楼层
ksafei 发表于 2020-7-1 21:04
功能加强版,太好了!尤其是--highest 这个参数一直很期待,在UEFI安全启动时很有用

这个现在默认是启用的。

点评

测试了ntboot wim功能,正常,以前 UEFI安全启动时分辨率低的问题也解决了,感谢!  详情 回复 发表于 2020-7-1 22:08
回复

使用道具 举报

30#
 楼主| 发表于 2020-7-4 19:28:15 | 显示全部楼层
本帖最后由 wintoflash 于 2020-7-9 21:03 编辑

测试版本

现在 wimboot 和 ntboot 模块在 Legacy BIOS 下也可用了。
wimboot 启动时不再需要提供 boot.sdi 和 bcd 文件,优先使用内置的 boot.sdi 和 bcd。
如果使用的是内置的 bcd ,可以通过一些选项修改 bcd 的配置。
另外,ntboot 也不再需要提供 boot.sdi 文件。
示例:
wimboot 启动 WIM
  1. wimboot @:bootmgfw.efi:/boot/grub/bootmgfw.efi @:boot.wim:/wim/wepe.wim
复制代码

wimboot 启动 WIM,关闭测试模式,启用 PAE
  1. wimboot --testmode=no --pae=Enable @:bootmgfw.efi:/boot/grub/bootmgfw.efi @:boot.wim:/wim/wepe.wim
复制代码

ntboot 启动 WIM
  1. ntboot --efi=/xxx/bootmgfw.efi --wim /xxx/xxx.wim
复制代码


点评

ntboot可以启动指定的WIM卷号吗?  详情 回复 发表于 2020-7-11 13:43
在U盘上试了,成功。 u盘 uefi ntboot 我修改过的微pe 用时约21秒 u盘 uefi wimboot 我修改过的微pe 用时约23秒 u盘 bios ntboot 我修改过的微pe 用时约22秒 u盘 bios wimboot 我修改过的微pe 用  详情 回复 发表于 2020-7-5 06:01
在 Legacy BIOS 下: ntboot --exe=/xxx/bootmgr.exe --wim /xxx/xxx.wim 这样书写正确么?  详情 回复 发表于 2020-7-4 23:08
在 Legacy BIOS 下与在 UEFI BIOS 下的写法一样吗?  详情 回复 发表于 2020-7-4 22:30
功能又增强了,大赞!  详情 回复 发表于 2020-7-4 20:15
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 03:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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