无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wintoflash
打印 上一主题 下一主题

[原创] NTBOOT & wimboot for UEFI GRUB2

    [复制链接]
151#
发表于 2020-7-18 20:28:26 | 只看该作者

img 文件是用 diskgenius 生成的“分区映像”。

回复

使用道具 举报

152#
发表于 2020-7-22 17:36:19 | 只看该作者
wimboot 方式可以虚拟修改 WIM 内容,向其中插入文件而不用改变实际文件内容。wimboot 会将除了 bcd, boot.sdi, WIM 自身之外的所有文件都射入 WIM 的 \Windows\System32 目录下。

如果要插入文件findstr.exe,应如何书写?         menuentry " 启动 ${name} (${device})" "${device}" "${filename}" --unrestricted --hotkey="${sequence}"{        
                            set root="$2";
                            set filename_this="$3"
                           loopback -d loop;
                            loopback loop "${filename_this}";
                            set lang=en_US;
                            terminal_output console;
                            wimboot --index=2 \
                                @:findstr.exe:(memdisk)/boot/grub/findstr.exe \
                                @:bootmgfw.efi:(memdisk)/boot/grub/bootmgfw.efi \
                                @:explorer.exe:(memdisk)/boot/grub/explorer.exe \
                                @:WinXShell.exe:(memdisk)/boot/grub/WinXShell.exe \
                                @:WinXShell.jcfg:(memdisk)/boot/grub/WinXShell.jcfg \
                                @:winpeshl.ini:(memdisk)/boot/grub/winpeshl.ini \
                                @:boot.wim:(loop)/sources/boot.wim;
        }
             这样书写,似乎不可以。
                        

点评

理由?  详情 回复 发表于 2020-7-22 20:33
回复

使用道具 举报

153#
 楼主| 发表于 2020-7-22 20:33:14 | 只看该作者
青青草 发表于 2020-7-22 17:36
wimboot 方式可以虚拟修改 WIM 内容,向其中插入文件而不用改变实际文件内容。wimboot 会将除了 bcd, boot. ...
这样书写,似乎不可以。

证据/理由?

点评

不好意思,是我弄错了。  详情 回复 发表于 2020-7-23 11:59
回复

使用道具 举报

154#
发表于 2020-7-23 11:59:44 | 只看该作者

不好意思,是我弄错了。
回复

使用道具 举报

155#
发表于 2020-7-24 17:13:33 | 只看该作者
wintoflash 发表于 2020-7-10 08:15
timeout 改成 0 有时候好像有问题,会直接停在 bcd 菜单上

有没有试过 displaybootmenu 0

点评

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

使用道具 举报

156#
 楼主| 发表于 2020-7-24 18:09:47 | 只看该作者
hilsonma 发表于 2020-7-24 17:13
有没有试过 displaybootmenu 0

不考虑。
这样不方便调试,而且容易出现图像显示方面的问题。
回复

使用道具 举报

157#
发表于 2020-8-1 10:51:24 | 只看该作者
光盘ISO中运行map winboot ntboot都是提示error:symbol 'grub_strpbrk' not found,看不懂是什么意思

点评

你是怎么生成grub2启动文件的  详情 回复 发表于 2020-8-2 08:44
回复

使用道具 举报

158#
 楼主| 发表于 2020-8-2 08:44:50 | 只看该作者
枯井在地 发表于 2020-8-1 10:51
光盘ISO中运行map winboot ntboot都是提示error:symbol 'grub_strpbrk' not found,看不懂是什么意思:dizzy ...

你是怎么生成grub2启动文件的
回复

使用道具 举报

159#
发表于 2020-8-2 09:27:48 | 只看该作者
wintoflash 发表于 2020-8-2 08:44
你是怎么生成grub2启动文件的

什么都没改,直接生成替换的

点评

仔细讲讲。 你用了不该用的内核或者模块,要么就实际启动的是其他地方的grub。  详情 回复 发表于 2020-8-2 13:54
回复

使用道具 举报

160#
发表于 2020-8-2 13:01:01 | 只看该作者

很给力!
回复

使用道具 举报

161#
 楼主| 发表于 2020-8-2 13:54:51 | 只看该作者
枯井在地 发表于 2020-8-2 09:27
什么都没改,直接生成替换的

仔细讲讲。
你用了不该用的内核或者模块,要么就实际启动的是其他地方的grub。
回复

使用道具 举报

162#
发表于 2020-8-2 19:38:49 | 只看该作者
wintoflash 发表于 2020-8-2 13:54
仔细讲讲。
你用了不该用的内核或者模块,要么就实际启动的是其他地方的grub。

应该是我走了弯路,现在稍微有点明白。
再请教下,原本支持uefi和legacy启动的iso文件,我提取和编辑了uefi引导文件再用ultralISO加载这个引导后就不支持legacy引导了。如果再接把isolinux.bin设为引导就有不支持uefi引导了。没办法同时加载两种引导方式,请教下有办法可以实现吗。或者有能实现的软件吗,谢谢!

点评

mkisofs/oscdimg  详情 回复 发表于 2020-8-6 17:24
回复

使用道具 举报

163#
 楼主| 发表于 2020-8-6 17:24:57 | 只看该作者
枯井在地 发表于 2020-8-2 19:38
应该是我走了弯路,现在稍微有点明白。
再请教下,原本支持uefi和legacy启动的iso文件,我提取和编辑了u ...

mkisofs/oscdimg
回复

使用道具 举报

164#
发表于 2020-8-6 20:13:36 | 只看该作者

明白了,谢谢!
回复

使用道具 举报

165#
发表于 2020-8-9 18:50:36 | 只看该作者
本帖最后由 青青草 于 2020-8-9 18:55 编辑

再请教二个问题:
      对于legacy BIOS启动,
           1、set lang=en_US;
                terminal_output console;
                loopback wimboot ${prefix}/wimboot.xz;
                wimboot --rawwim --testmode=no \
                      @:bootmgfw.efi:(wimboot)/bootmgfw.efi \
                      @:boot.wim:"${grubfm_file}";

               在wimboot.xz中,并没有bootmgr.exe,为何可以启动wim文件?
          2、在有些机子上,可以启动wim文件,有些机子却不行,出现如图所示错误(wim文件不变)。                                                                            这是为何?
谢谢!




未标题-1.jpg (190.78 KB, 下载次数: 374)

未标题-1.jpg

点评

要讲逻辑。 wimboot.xz里面都有什么?  详情 回复 发表于 2020-8-9 19:12
回复

使用道具 举报

166#
 楼主| 发表于 2020-8-9 19:12:26 | 只看该作者
本帖最后由 wintoflash 于 2020-8-9 19:13 编辑
青青草 发表于 2020-8-9 18:50
再请教二个问题:
      对于legacy BIOS启动,
           1、set lang=en_US;

要讲逻辑。我又不能顺着网线去查看你的电脑硬盘,怎么知道你的wimboot.xz里面都有什么?从哪弄来的?

点评

wimboot.xz取自grubfm.iso/fm.loop/fm/boot/grubfm/wimboot.xz  详情 回复 发表于 2020-8-9 19:36
回复

使用道具 举报

167#
发表于 2020-8-9 19:36:41 | 只看该作者
本帖最后由 青青草 于 2020-8-9 19:39 编辑
wintoflash 发表于 2020-8-9 19:12
要讲逻辑。我又不能顺着网线去查看你的电脑硬盘,怎么知道你的wimboot.xz里面都有什么?从哪弄来的?

wimboot.xz取自你的grubfm.iso/fm.loop/fm/boot/grubfm/wimboot.xz

点评

问题一:你研究一下wimboot.xz里面的文件,自然就懂了。 问题二:似乎是BIOS的问题。你在wimboot命令上加个--pause参数,在第一次暂停的地方截个图看看。  详情 回复 发表于 2020-8-9 19:53
回复

使用道具 举报

168#
 楼主| 发表于 2020-8-9 19:53:29 | 只看该作者
青青草 发表于 2020-8-9 19:36
wimboot.xz取自你的grubfm.iso/fm.loop/fm/boot/grubfm/wimboot.xz

问题一:你研究一下wimboot.xz里面的文件,自然就懂了。
问题二:似乎是BIOS的问题。你在wimboot命令上加个--pause参数,在第一次暂停的地方截个图看看。

点评

加上--pause参数,在第一次暂停的地方截图如下:  详情 回复 发表于 2020-8-9 22:11
回复

使用道具 举报

169#
发表于 2020-8-9 22:11:14 | 只看该作者
wintoflash 发表于 2020-8-9 19:53
问题一:你研究一下wimboot.xz里面的文件,自然就懂了。
问题二:似乎是BIOS的问题。你在wimboot命令上 ...

加上--pause参数,在第一次暂停的地方截图如下:

未标题-1.jpg (807.91 KB, 下载次数: 379)

未标题-1.jpg
回复

使用道具 举报

170#
发表于 2020-8-21 13:20:53 来自手机 | 只看该作者
关系发现
回复

使用道具 举报

171#
发表于 2020-10-17 18:08:42 | 只看该作者
又更新了!
可有新模块a1ive的用法说明?
谢谢!
回复

使用道具 举报

172#
发表于 2020-10-18 11:25:23 | 只看该作者
windows的efi文件如何修改?
回复

使用道具 举报

173#
发表于 2020-10-29 15:21:54 | 只看该作者
楼主 很得赞赞
回复

使用道具 举报

174#
发表于 2020-11-19 12:49:55 | 只看该作者
今天得空,下载了新版grub2,定制后UEFI启动直接进入了命令行界面,上一版也是。再上一版则正常(定制没变)。

点评

找不到grub.cfg或grub.cfg的内容出了问题。 重点检查定制的 -p 参数,核对 grub.cfg 的实际存放位置。  详情 回复 发表于 2020-11-21 21:38
要自己找原因。  详情 回复 发表于 2020-11-19 13:53
回复

使用道具 举报

175#
 楼主| 发表于 2020-11-19 13:53:43 | 只看该作者
青青草 发表于 2020-11-19 12:49
今天得空,下载了新版grub2,定制后UEFI启动直接进入了命令行界面,上一版也是。再上一版则正常(定制没变 ...

要自己找原因。
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-22 04:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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