无忧启动论坛

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

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
181#
发表于 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
回复

使用道具 举报

182#
 楼主| 发表于 2020-11-22 09:29:19 | 只看该作者
hilsonma 发表于 2020-11-22 08:30
之前没有注意ntboot还添加了启动windows系统的功能。
试了一下,确实不错,自动配置bcd,省了配置bcd这一 ...

(1)grub2是否使用的是图形模式?如果是,切换到文本模式(terminal_output console)试试。
(2)ntboot 有没有加 --gui 参数?如果有,去掉,如果没有,加上,试一下。
如果都不行,那我也没办法了。


点评

grub2是使用图形模式。ntboot 加不加 --gui 都一样 ntboot 之前加 terminal_output console 切换到文本模式,然后ntboot,有没有 --gui 也都是花屏。 看来ntboot 启动windows系统这一功能的兼容性还不够 要普遍  详情 回复 发表于 2020-11-22 10:30
回复

使用道具 举报

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

使用道具 举报

184#
 楼主| 发表于 2020-11-22 10:52:22 | 只看该作者
hilsonma 发表于 2020-11-22 10:30
grub2是使用图形模式。ntboot 加不加 --gui 都一样
ntboot 之前加 terminal_output console 切换到文本 ...
看来ntboot 启动windows系统这一功能的兼容性还不够
要普遍启动的话还是chainloader /Windows/Boot/EFI/bootmgfw.efi,
初次引导使用 bcdboot c:\windows /s c: /f uefi 建立正确的bcd.


我觉得可能和硬盘上的bootmgfw.efi加载了中文字体有关。

点评

两台电脑都是技嘉主板,都是VGA接三星,装的都是SR的win8.1,使用ntboot启动windows系统,主板F2A68HM-DS2 正常,主板F2A88XM-D3H 花屏。  详情 回复 发表于 2020-11-22 12:38
回复

使用道具 举报

185#
发表于 2020-11-22 12:29:37 | 只看该作者
hilsonma 发表于 2020-11-21 21:38
找不到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 ..
便可以了。
回复

使用道具 举报

186#
 楼主| 发表于 2020-11-22 12:36:23 | 只看该作者
青青草 发表于 2020-11-22 12:29
最大压缩所致:
   cd out
   find ./boot -print|cpio -o -H newc | gzip -9 > ./memdisk.cpio.gz

注意:memdisk只支持xz压缩,不支持gz。

点评

我好象用的是差不多的脚本,也就是说,同样的压缩,是之前修改你的脚本来的,目前没有遇到 青青草 说的问题。  详情 回复 发表于 2020-11-22 13:01
请教一下, 如果用XZ压缩, find ./boot -print|cpio -o -H newc | gzip -9 > ./memdisk.cpio.gz 应如何修改? 谢谢!  详情 回复 发表于 2020-11-22 12:58
回复

使用道具 举报

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

使用道具 举报

188#
 楼主| 发表于 2020-11-22 12:43:59 | 只看该作者
hilsonma 发表于 2020-11-22 12:38
两台电脑都是技嘉主板,都是VGA接三星,装的都是SR的win8.1,使用ntboot启动windows系统,主板F2A68HM-DS ...

启动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.  详情 回复 发表于 2020-11-22 12:56
回复

使用道具 举报

189#
发表于 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 应该是一样的。
我是用同一个镜像安装到两台电脑上的。
回复

使用道具 举报

190#
发表于 2020-11-22 12:58:29 | 只看该作者
wintoflash 发表于 2020-11-22 12:36
注意:memdisk只支持xz压缩,不支持gz。

请教一下,
如果用XZ压缩,
find ./boot -print|cpio -o -H newc | gzip -9 > ./memdisk.cpio.gz
应如何修改?
谢谢!

点评

find ./boot | cpio -o -H newc | xz -9 -e > ./memdisk.xz 可以自己到网上找xz.exe。  详情 回复 发表于 2020-11-22 13:17
回复

使用道具 举报

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

使用道具 举报

192#
 楼主| 发表于 2020-11-22 13:14:10 | 只看该作者
hilsonma 发表于 2020-11-22 13:01
我好象用的是差不多的脚本,也就是说,同样的压缩,是之前修改你的脚本来的,目前没有遇到 青青草 说的问 ...

%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啊,没有经过压缩。
虽然实际的memdisk进行了gz压缩,但是外面又套上了一层cpio。
回复

使用道具 举报

193#
 楼主| 发表于 2020-11-22 13:17:09 | 只看该作者
青青草 发表于 2020-11-22 12:58
请教一下,
如果用XZ压缩,
find ./boot -print|cpio -o -H newc | gzip -9 > ./memdisk.cpio.gz

find ./boot | cpio -o -H newc | xz -9 -e > ./memdisk.xz
可以自己到网上找xz.exe。

点评

xz.exe网上找了老半天,找不到。唉  详情 回复 发表于 2020-11-22 13:42
回复

使用道具 举报

194#
发表于 2020-11-22 13:42:30 | 只看该作者
本帖最后由 青青草 于 2020-11-22 14:11 编辑
wintoflash 发表于 2020-11-22 13:17
find ./boot | cpio -o -H newc | xz -9 -e > ./memdisk.xz
可以自己到网上找xz.exe。

解决了。谢谢!

点评

不会吧,我几秒就找到了 https://tukaani.org/xz/ 我的关键词 xz for win  详情 回复 发表于 2020-11-22 14:13
回复

使用道具 举报

195#
发表于 2020-11-22 14:13:58 | 只看该作者

不会吧,我几秒就找到了
https://tukaani.org/xz/
我的关键词
xz for win
回复

使用道具 举报

196#
发表于 2020-11-22 22:06:18 | 只看该作者
江南一根葱 发表于 2020-11-22 14:13
不会吧,我几秒就找到了
https://tukaani.org/xz/
我的关键词

谢谢!

点评

7zip不是有命令行版本么》?可以制定压缩格式为xz啊!  详情 回复 发表于 2020-11-23 21:12
回复

使用道具 举报

197#
发表于 2020-11-23 21:12:27 | 只看该作者

7zip不是有命令行版本么》?可以制定压缩格式为xz啊!
回复

使用道具 举报

198#
发表于 2020-12-19 19:02:59 | 只看该作者
我是来打酱油的
回复

使用道具 举报

199#
发表于 2021-1-11 16:40:41 | 只看该作者
wintoflash 发表于 2019-11-20 21:21
没看我的帖子?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=416924都能绕过安全启动了,直接cha ...

请问,此版是内置启动菜单的吧?如何定制或者外置菜单的路径默认是哪个文件?

点评

默认脚本生成的efi文件不内置菜单,直接加载 /boot/grub/grub.cfg。你可以自己改脚本。  详情 回复 发表于 2021-1-11 17:08
回复

使用道具 举报

200#
 楼主| 发表于 2021-1-11 17:08:01 | 只看该作者
wuyouman01 发表于 2021-1-11 16:40
请问,此版是内置启动菜单的吧?如何定制或者外置菜单的路径默认是哪个文件?

默认脚本生成的efi文件不内置菜单,直接加载 /boot/grub/grub.cfg。你可以自己改脚本。

点评

谢谢大佬!  详情 回复 发表于 2021-1-11 17:25
回复

使用道具 举报

201#
发表于 2021-1-11 17:25:44 | 只看该作者
wintoflash 发表于 2021-1-11 17:08
默认脚本生成的efi文件不内置菜单,直接加载 /boot/grub/grub.cfg。你可以自己改脚本。

谢谢大佬!
回复

使用道具 举报

202#
 楼主| 发表于 2021-1-16 15:33:47 | 只看该作者
ksafei 发表于 2020-5-19 09:50
删除 CrScreenshotDxe.efi 语句,添加 efi_connect_all ,ntboot引导可以正常启动了。感谢W大!

试试最新版grub2,不用 efi_connect_all ,会不会报这个错。
去年11月4日的 commit 修复了一个可能和这个相关的问题。
https://github.com/a1ive/grub/co ... 78163bd086f22aac276

点评

试了最新版grub2,不用 efi_connect_all NTBOOT 还是会报错。感谢W大还惦记着这个小问题  详情 回复 发表于 2021-1-16 18:20
回复

使用道具 举报

203#
发表于 2021-1-16 18:20:49 | 只看该作者
wintoflash 发表于 2021-1-16 15:33
试试最新版grub2,不用 efi_connect_all ,会不会报这个错。
去年11月4日的 commit 修复了一个可能和这 ...

试了最新版grub2,不用 efi_connect_all NTBOOT 还是会报错。感谢W大还惦记着这个小问题
回复

使用道具 举报

204#
发表于 2021-3-18 00:05:12 | 只看该作者
论坛里的兄弟们有没有网盘下载地址,老大的连接下不了。
回复

使用道具 举报

205#
发表于 2021-3-18 13:00:57 | 只看该作者
已经下载了,谢谢。原来看时间段的。
回复

使用道具 举报

206#
发表于 2021-3-27 21:28:53 | 只看该作者
想问下W大,64位的UEFI下能引导X86的WIN7vhd吗?

点评

这是不可能的,这是启动常识性问题。 64位UEFI固件,必须搭配64位引导器,引导64位的操作系统。不能引导32位的。 一般的电脑UEFI固件都是64位的,极少有32位的UEFI固件,32位的UEFI固件似乎只存在于早期的WIN8平板  详情 回复 发表于 2021-3-28 11:52
回复

使用道具 举报

207#
发表于 2021-3-28 11:52:57 | 只看该作者
18958925900 发表于 2021-3-27 21:28
想问下W大,64位的UEFI下能引导X86的WIN7vhd吗?

这是不可能的,这是启动常识性问题。
64位UEFI固件,必须搭配64位引导器,引导64位的操作系统。不能引导32位的。
一般的电脑UEFI固件都是64位的,极少有32位的UEFI固件,32位的UEFI固件似乎只存在于早期的WIN8平板。
回复

使用道具 举报

208#
发表于 2021-3-28 12:05:24 | 只看该作者
liuzhaoyzz 发表于 2021-3-28 11:52
这是不可能的,这是启动常识性问题。
64位UEFI固件,必须搭配64位引导器,引导64位的操作系统。不能引导 ...

能,这是个公务员试题,
他的描述不完整,你的回答也不完美,哈哈
得要看怎么实现
比如迷你虚拟化linux,虚拟机运行x86系统

回复

使用道具 举报

209#
发表于 2021-4-28 22:00:30 | 只看该作者
不知道grub2到哪说,就在此帖中问吧。
g4d有一个文件1kb很好用grldr_cd.bin,作光盘的启动区文件直接启动根下的grldr;g2中有不有一个这样的文件,譬如我的用于bios启动的grub2的文件是g2ldr,弄一个g2ldr_cd.bin直接来启动它。而不必把cdboot.img装配到g2ldr再整体写入光盘的启动区。

点评

我看到你在grub4dos帖子里面的反馈了。我没有用过 oscdimg,对它不熟悉。你应该找官方文档研究一下。 据我所知,oscdimg 用 grldr_cd.bin 做引导文件,生成的 ISO 是有问题的 (虽然你一般不会感觉到这个问题),而  详情 回复 发表于 2021-5-1 12:56
回复

使用道具 举报

210#
发表于 2021-4-30 09:31:02 | 只看该作者
谢谢分享!!!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 06:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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