无忧启动论坛

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

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
1#
发表于 2020-7-5 06:01:44 | 显示全部楼层
wintoflash 发表于 2020-7-4 19:28
测试版本

现在 wimboot 和 ntboot 模块在 Legacy BIOS 下也可用了。

在U盘上试了,成功。

u盘 uefi ntboot 我修改过的微pe 用时约21秒
  1. ntboot -e $prefix/run/ms/bootmgfw.efi -w /diy/pe.wim
复制代码


u盘 uefi wimboot 我修改过的微pe 用时约23秒
  1. wimboot @:bootmgfw.efi:$prefix/run/ms/bootmgfw.efi @:boot.wim:/diy/pe.wim
复制代码


u盘 bios ntboot 我修改过的微pe 用时约22秒
  1. ntboot -e $prefix/run/ms/bootmgr.exe -w /diy/pe.wim
复制代码


u盘 bios wimboot 我修改过的微pe 用时约26秒
  1. wimboot @:bootmgr.exe:$prefix/run/ms/bootmgr.exe @:boot.wim:/diy/pe.wim
复制代码
回复

使用道具 举报

2#
发表于 2020-7-5 07:28:27 | 显示全部楼层
bios ntboot 启动vhd失败: (uefi 启动成功)

点评

http://reboot.pro/topic/20695-ntboot-problem-using-windows-10-bootmgr-to-boot-vhds-bsod-0xc00000bb/#entry194966 用这个 bootmgr.exe 不过 BIOS 下的兼容性也不好,因为我的汇编水平不行。 还是建议用 gr  详情 回复 发表于 2020-7-5 08:18
回复

使用道具 举报

3#
发表于 2020-7-5 07:58:45 | 显示全部楼层
本帖最后由 hilsonma 于 2020-7-5 08:20 编辑
wintoflash 发表于 2020-7-1 19:22
研究了半天还是没搞懂怎么弄 VHD 的 RamOS。发一下测试版本。
**** 本内容被作者隐藏 ****

建议启动pe默认 testmode=no
这样无需设置此参数也不会出现测试模式水印
bcd默认设置本来也是默认 testmode=no 的

就我所知,启动pe只需修改以下属性,其他保持默认即可:
description
device
osdevice
systemroot
detecthal
winpe
nointegritychecks
ramdisksdidevice
ramdisksdipath

点评

device 和 os device 是wimboot/ntboot内部BCD解析器处理的时候自动填的。 systemroot 这个属性,正常人不会改。 detecthal 和 winpe,bootice 默认开启。winpe 不开就进不去。 nointegritychecks,这个必  详情 回复 发表于 2020-7-5 08:36
回复

使用道具 举报

4#
发表于 2020-7-5 08:32:12 | 显示全部楼层
本帖最后由 hilsonma 于 2020-7-5 08:43 编辑
用这个 bootmgr.exe

还是失败,只是提示由:
Status: 0xc00000bb
变成:
Status: 0xc0000102
如果麻烦就算了,确实g4d兼容要好些,毕竟是多人长期努力的成果。
这一年多你自己一人将grub2增强成现在这样已经很不错了。
如果只是官方那个版本是不适合我使用的。
回复

使用道具 举报

5#
发表于 2020-7-5 08:47:55 | 显示全部楼层
wintoflash 发表于 2020-7-5 08:36
device 和 os device 是wimboot/ntboot内部BCD解析器处理的时候自动填的。
systemroot 这个属性,正 ...


点评

那我还真不知道怎么办了。BIOS就这样吧,反正也没几个人用。  详情 回复 发表于 2020-7-5 09:05
回复

使用道具 举报

6#
发表于 2020-7-10 07:21:04 | 显示全部楼层
wintoflash 发表于 2020-7-5 08:36
device 和 os device 是wimboot/ntboot内部BCD解析器处理的时候自动填的。
systemroot 这个属性,正 ...
timeout,是我自己用来方便调试的,在 bcd 菜单界面按 F10 可以编辑启动参数


建议timeout默认0,默认不显示bcd菜单,需要时才显示。

点评

timeout 改成 0 有时候好像有问题,会直接停在 bcd 菜单上  详情 回复 发表于 2020-7-10 08:15
回复

使用道具 举报

7#
发表于 2020-7-24 17:13:33 | 显示全部楼层
wintoflash 发表于 2020-7-10 08:15
timeout 改成 0 有时候好像有问题,会直接停在 bcd 菜单上

有没有试过 displaybootmenu 0

点评

不考虑。 这样不方便调试,而且容易出现图像显示方面的问题。  详情 回复 发表于 2020-7-24 18:09
回复

使用道具 举报

8#
发表于 2020-11-21 21:38:19 | 显示全部楼层
青青草 发表于 2020-11-19 12:49
今天得空,下载了新版grub2,定制后UEFI启动直接进入了命令行界面,上一版也是。再上一版则正常(定制没变 ...

找不到grub.cfg或grub.cfg的内容出了问题。
重点检查定制的 -p 参数,核对 grub.cfg 的实际存放位置。

点评

最大压缩所致: cd out find ./boot -print|cpio -o -H newc | gzip -9 > ./memdisk.cpio.gz cd .. 改成 cd out find ./boot -print|cpio -o -H newc > ./memdisk.cpio.gz cd ..  详情 回复 发表于 2020-11-22 12:29
回复

使用道具 举报

9#
发表于 2020-11-22 08:30:38 | 显示全部楼层
之前没有注意ntboot还添加了启动windows系统的功能。
试了一下,确实不错,自动配置bcd,省了配置bcd这一步,但我有一台电脑使用ntboot启动windows系统时发生花屏现象,进了桌面也是花屏,花朦朦的一片,隐约可见几个大大的桌面图标,只好长按电源键关机。试过加了 --highest 参数这台电脑也一样花屏。别的电脑可以使用ntboot正常启动。

点评

(1)grub2是否使用的是图形模式?如果是,切换到文本模式(terminal_output console)试试。 (2)ntboot 有没有加 --gui 参数?如果有,去掉,如果没有,加上,试一下。 如果都不行,那我也没办法了。  详情 回复 发表于 2020-11-22 09:29
回复

使用道具 举报

10#
发表于 2020-11-22 10:30:59 | 显示全部楼层
wintoflash 发表于 2020-11-22 09:29
(1)grub2是否使用的是图形模式?如果是,切换到文本模式(terminal_output console)试试。
(2)ntboot 有 ...

grub2是使用图形模式。ntboot 加不加 --gui 都一样
ntboot 之前加 terminal_output console 切换到文本模式,然后ntboot,有没有 --gui 也都是花屏。

看来ntboot 启动windows系统这一功能的兼容性还不够
要普遍启动的话还是chainloader /Windows/Boot/EFI/bootmgfw.efi,
初次引导使用 bcdboot c:\windows /s c: /f uefi 建立正确的bcd.

我试过在一台联想电脑上(win10)使用bcdedit 建立的bcd 出现引导错误,使用bcdboot建立的bcd没有问题。
其他电脑上用bcdedit 建立的bcd也没有问题。

所以,想要达到最大兼容,grub2引导windows系统建议还是使用
chainloader /Windows/Boot/EFI/bootmgfw.efi
初次引导使用bcdboot c:\windows /s c: /f uefi 建立正确的bcd. (如果windows系统不是在c盘就做相应修改)

为什么不用 chainloader /EFI/Microsoft/Boot/bootmgfw.efi ?
因为我使用grub2引导,ESP的 /EFI/Microsoft/Boot/bootmgfw.efi 实际是grub2的grubx64.efi

点评

我觉得可能和硬盘上的bootmgfw.efi加载了中文字体有关。  详情 回复 发表于 2020-11-22 10:52
回复

使用道具 举报

11#
发表于 2020-11-22 12:38:11 | 显示全部楼层
wintoflash 发表于 2020-11-22 10:52
我觉得可能和硬盘上的bootmgfw.efi加载了中文字体有关。

两台电脑都是技嘉主板,都是VGA接三星,装的都是SR的win8.1,使用ntboot启动windows系统,主板F2A68HM-DS2 正常,主板F2A88XM-D3H 花屏。

点评

启动pe/vhd不花屏,启动系统花屏? 那有点邪门。有没有可能是bootmgfw.efi版本的问题?  详情 回复 发表于 2020-11-22 12:43
回复

使用道具 举报

12#
发表于 2020-11-22 12:56:45 | 显示全部楼层
wintoflash 发表于 2020-11-22 12:43
启动pe/vhd不花屏,启动系统花屏?
那有点邪门。有没有可能是bootmgfw.efi版本的问题?

是的,wim/vhd不花屏,普通安装硬盘上的windows系统,一台电脑花屏,一台电脑正常。
都是一样引导,一样的win8.1
search -n -s -f /Windows/Boot/EFI/bootmgfw.efi
ntboot -e ($root)/Windows/Boot/EFI/bootmgfw.efi -n ($root)

按理说,一样的win8.1,/Windows/Boot/EFI/bootmgfw.efi 应该是一样的。
我是用同一个镜像安装到两台电脑上的。
回复

使用道具 举报

13#
发表于 2020-11-22 13:01:31 | 显示全部楼层
wintoflash 发表于 2020-11-22 12:36
注意:memdisk只支持xz压缩,不支持gz。

我好象用的是差不多的脚本,也就是说,同样的压缩,是之前修改你的脚本来的,目前没有遇到 青青草 说的问题。

  1. @echo off
  2. set bin=%~dp0bin\
  3. set dir=%1
  4. if %1a==a set dir=build
  5. pushd %dir%
  6. %bin%find boot | %bin%cpio -o -H newc | %bin%gzip -9 > memdisk.cpio.gz
  7. %bin%find memdisk.cpio.gz | %bin%cpio -o -H newc > memdisk.cpio
  8. set /p modules= < mod.txt
  9. pushd %~dp0
  10. grub-mkimage -O x86_64-efi -m %dir%\memdisk.cpio -c %dir%\pre.cfg -o bootmgfw.efi %modules%
  11. del %dir%\memdisk.cpio.gz
  12. del %dir%\memdisk.cpio
复制代码

点评

%bin%find boot | %bin%cpio -o -H newc | %bin%gzip -9 > memdisk.cpio.gz %bin%find memdisk.cpio.gz | %bin%cpio -o -H newc > memdisk.cpio 你这还是cpio格式的memdisk啊,没有经过压缩。 虽然实际的memdis  详情 回复 发表于 2020-11-22 13:14
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 13:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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