无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
3451#
发表于 4 天前 | 只看该作者
gmy 发表于 2025-2-17 15:36
我的 一盘走天下PE 想启动 11PE.wim 和 10PE.wim,这么写菜单对吗?

default 1

目前我知道,grubfm 可以支持 wim 的启动,很强大的。而从 grub4dos 调用 grubfm 是很容易的。

而要从 grub4dos 直接启动 wim,貌似也能做到,不过,我落伍了,没学到。

貌似 yaya 和 liuzhaoyzz 知道怎么弄。

点评

title WePE64_V2.2/WEPE/WEPE64.WIM-kernel ntloader find --ignore-floppies --ignore-cd /boot/grub/ntloader | set bd= ;; echo bd=%bd% find --ignore-floppies --ignore-cd --set-root /boot/imgs/WePE64_V2.  详情 回复 发表于 4 天前
回复

使用道具 举报

3452#
发表于 4 天前 | 只看该作者
不点 发表于 2025-2-17 15:52
目前我知道,grubfm 可以支持 wim 的启动,很强大的。而从 grub4dos 调用 grubfm 是很容易的。

而要从 ...

title WePE64_V2.2/WEPE/WEPE64.WIM-kernel ntloader
find --ignore-floppies --ignore-cd /boot/grub/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM
uuid ()
kernel %bd%/boot/grub/ntloader uuid=%?_UUID% file=/boot/imgs/WePE64_V2.2/WEPE/WEPE64.WIM hires=1
initrd %bd%/boot/grub/initrd.lz1

NTloader: BIOS/UEFI 下用 GRUB4DOS 启动 VHD/WIM - GRUB4DOS - 无忧启动论坛 - Powered by Discuz!
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=423940
里面的支持文件ntloader、initrd.lz1从wintoflash的帖子下载即可。
回复

使用道具 举报

3453#
发表于 4 天前 | 只看该作者
gmy 发表于 2025-2-17 15:36
我的 一盘走天下PE 想启动 11PE.wim 和 10PE.wim,这么写菜单对吗?

default 1

g4e压缩包里面带的示例菜单提供了两种方法。
1. 用压缩包附带的 ntboot。(适用于efi)
  1. title 使用外部命令 NTBOOT 启动 WIM
  2. find /efi/grub/ext/ntboot | set bd=
  3. find --set-root /boot/imgs/winpe.wim
  4. %bd%/efi/grub/ext/ntboot  /boot/imgs/winpe.wim
  5. boot
复制代码


2.用 ntloader。(适用于bios/efi)
ntloader 要到这里下载 https://github.com/grub4dos/ntloader/releases/latest
  1. title 使用外部命令 ntloader 启动 WIM
  2. find --set-root /path/to/winpe.wim
  3. uuid ()
  4. find --set-root /path/to/ntloader
  5. kernel /path/to/ntloader uuid=%?_UUID% wim=/path/to/winpe.wim
  6. initrd /path/to/initrd.cpio
复制代码


还有一种方法就是使用传统的wimboot。
从这里下载提取 wimboot https://github.com/chenall/grubutils/releases/latest

回复

使用道具 举报

3454#
发表于 3 天前 | 只看该作者
本帖最后由 gmy 于 2025-2-18 18:23 编辑

感谢各位帮助,但我还没有看明白:
1、我只用于U盘启动EFI模式的PE.wim,U盘里原有的bootx64.efi是否必须替换成楼主的bootx64.efi?
2、原bootx64.efi是根据BCD菜单来读取10PE.sdi和10PE.wim的,为何没看到menu.lst范例中载入sdi文件的语句?
3、请科普一下G4E的启动过程,G4D有人做过帮助文档.CHM,G4E有类似的教程吗?
4、能否提供一个G4E启动EFI模式的10PE.wim的完整的ISO范例?
5、G4E替代NT6菜单的意义何在?启动Linux?菜单更好看?菜单可以选择关机或重启?总感觉对于只用x86系统的用户用处不大。

点评

哈哈,从我的视角,来回复一下 DOS 时代的老朋友葛大师。我猜,从某种程度上,我们都因年龄成为一个障碍,年轻一点的人无法体会到这一点。我们学不动了,适应不了外界气候的变化了。 如何理解 bootx64.efi ?它就  详情 回复 发表于 昨天 13:06
这个帖子就在GRUB4DOS区,主题也是UEFI下的GRUB4DOS (或者叫GRUB4EFI)。 你如果想用它,那当然要用它的引导文件。。。 你如果不想用它,那就保持你原有的引导文件 (bootmgr/BCD)。 用户选择用哪个引导程序,  详情 回复 发表于 3 天前
回复

使用道具 举报

3455#
发表于 3 天前 | 只看该作者
gmy 发表于 2025-2-18 17:50
感谢各位帮助,但我还没有看明白:
1、我只用于U盘启动EFI模式的PE.wim,U盘里原有的bootx64.efi是否必须 ...
1、我只用于U盘启动EFI模式的PE.wim,U盘里原有的bootx64.efi是否必须替换成楼主的bootx64.efi?

这个帖子就在GRUB4DOS区,主题也是UEFI下的GRUB4DOS (或者叫GRUB4EFI)。
你如果想用它,那当然要用它的引导文件。。。
G4E替代NT6菜单的意义何在?启动Linux?菜单更好看?菜单可以选择关机或重启?总感觉对于只用x86系统的用户用处不大

你如果不想用它,那就保持你原有的引导文件 (bootmgr/BCD)。
用户选择用哪个引导程序,那是他的自由,选择的原因是多样的。
2、原bootx64.efi是根据BCD菜单来读取10PE.sdi和10PE.wim的,为何没看到menu.lst范例中载入sdi文件的语句?
3、请科普一下G4E的启动过程,G4D有人做过帮助文档.CHM,G4E有类似的教程吗?
4、能否提供一个G4E启动EFI模式的10PE.wim的完整的ISO范例?

你既然没有用G4E的需求,那也没必要深入研究这些,继续用微软的引导就足够了。

点评

gmy
只是讨论一下,用户提出了要求:BCD菜单过于简单,没有重启或关机,没有引导本地Windows,我觉得为了这两个选项再学G4E没有什么必要,就到这里问一问还有其它我意想不到的答案吗?高手一般是不屑于回答简单问题或作  详情 回复 发表于 前天 16:37
回复

使用道具 举报

3456#
发表于 前天 16:37 | 只看该作者
wintoflash 发表于 2025-2-18 18:41
这个帖子就在GRUB4DOS区,主题也是UEFI下的GRUB4DOS (或者叫GRUB4EFI)。
你如果想用它,那当然要用它 ...

只是讨论一下,用户提出了要求:BCD菜单过于简单,没有重启或关机,没有引导本地Windows,我觉得为了这两个选项再学G4E没有什么必要,就到这里问一问还有其它我意想不到的答案吗?高手一般是不屑于回答简单问题或作科普的,可能是我当中小学老师多年的习惯,和同行老九老师一样,喜欢写教程,打扰了。

点评

您若是已屈尊下载并过目帖子(1#与3453#)中提供的文件,想必便无需劳烦赐教这般具体的用法问题了吧?毕竟,示例菜单与更新日志等必要信息早已备妥,只待细阅。然而,您依然不吝拨冗发问,倒不知是未曾查阅,抑或另有  详情 回复 发表于 前天 20:13
回复

使用道具 举报

3457#
发表于 前天 20:13 | 只看该作者
gmy 发表于 2025-2-19 16:37
只是讨论一下,用户提出了要求:BCD菜单过于简单,没有重启或关机,没有引导本地Windows,我觉得为了这两 ...

您若是已屈尊下载并过目帖子(1#与3453#)中提供的文件,想必便无需劳烦赐教这般具体的用法问题了吧?毕竟,示例菜单与更新日志等必要信息早已备妥,只待细阅。然而,您依然不吝拨冗发问,倒不知是未曾查阅,抑或另有所图?实在令人敬佩。
回复

使用道具 举报

3458#
发表于 昨天 11:49 | 只看该作者
本帖最后由 chen463 于 2025-2-20 12:25 编辑
gmy 发表于 2025-2-17 15:36
我的 一盘走天下PE 想启动 11PE.wim 和 10PE.wim,这么写菜单对吗?

default 1

EFI-BCD-PE
首先进入G4E后,制作一个菜单项来引导到BCD,这个bootx64WBM.efi是您系统引导EFI的更名而来,因为现在优先启动是G4E的-BOOTX64.EFI,然后选取后便进入EFI-BCD-PE10/11.WIM启动成功。
而LegacyBISO的BCD可藉由grldr菜单编辑来跳转引导halt和reboot和ISO功能,但是UEFI的BCD一但进入选项内,无法再藉由grldr跳转,只能进入选项来引导PE10/11.WIM啰!
所以UEFI的启动资源是单一的BOOTX64.EFI,除非您把磁盘分区格成多FAT分区放BOOTX64.EFI,谁抢到这引导权,就由谁优先来引导,G4E、G2、VENTOY等等皆是。其它必须更名来引导。

….
title 启动Windows_WBM文件-Menu菜单1\n /efi/boot/bootx64WBM.efi root %@root%
chainloader /efi/boot/bootx64WBM.efi

例子G4E菜单:

title 启动 EFI_root=%@root%\n /efi/boot/shellx64.efi root %@root%
chainloader /efi/boot/shellx64.efi

title 启动原盘bcd更名bootx64O.efi菜单\n /efi/boot/bootx64O.efi root %@root%
chainloader /efi/boot/bootx64O.efi

title 启动grub2文件-Menu菜单1\n /efi/boot/bootx64g2.efi root %@root%
chainloader /efi/boot/bootx64g2.efi

title 启动VENTOY文件菜单\n /efi/boot/VENTOYx64.efi root %@root%
chainloader /efi/boot/ventoyx64.efi

title 启动Windows_WBM文件-Menu菜单1\n /efi/boot/bootx64WBM.efi root %@root%
chainloader /efi/boot/bootx64WBM.efi

title 启动Easy2Boot_grubfm\n /efi/boot/boot_e2bx64.efi root %@root%
chainloader /efi/boot/boot_e2bx64.efi

title 启动AioBoot\n /efi/boot/boot_aiox64.efi root %@root%
chainloader /efi/boot/boot_aiox64.efi

title 启动refind_efi文件菜单\n /efi/refind/refind_x64.efi root %@root%
chainloader /efi/refind/bootx64_refind.efi

title 启动Clover_OS四叶草引导\n /efi/boot/CLOVERX64.efi root %@root%
chainloader /EFI/CLOVER/CLOVERX64.EFI

title 启动WinPE_bcd文件菜单\n /efi/grub/run/ms/bootmgfw.efi root %@root%
chainloader /efi/grub/run/ms/bootmgfw.efi

[分享] grub4dos-for_UEFI-2023-03-29使用后心得分享
http://bbs.wuyou.net/forum.php?m ... &extra=page%3D4
回复

使用道具 举报

3459#
发表于 昨天 13:06 | 只看该作者
gmy 发表于 2025-2-18 17:50
感谢各位帮助,但我还没有看明白:
1、我只用于U盘启动EFI模式的PE.wim,U盘里原有的bootx64.efi是否必须 ...

哈哈,从我的视角,来回复一下 DOS 时代的老朋友葛大师。我猜,从某种程度上,我们都因年龄成为一个障碍,年轻一点的人无法体会到这一点。我们学不动了,适应不了外界气候的变化了。

如何理解 bootx64.efi ?它就相当于 BIOS 时代的 MBR 引导扇区。所有的启动软件,都要争抢这个名字。谁占据这个名字,谁也就占据了第一启动的位置。占据第一启动之后,再用 chainloader 加载原先的 bootx64.efi(你可能已经把它更名了),这样就以第二启动的方式,让原先的启动软件接管了控制。所以,g4e 的主程序就叫做 bootx64.efi。我想,这就是卡住老年人的一个知识点。尽管这个知识很容易了解,一点也不难,但只要不曾拥有这个知识,那就会到处碰壁,寸步难行,学啥都费劲,学不进去。

这个世界是淘汰老人的,就连美国也不例外。

另外,微软自己的启动软件,也存在某些缺陷。这就是为什么有很多别的启动软件存在的原因。

如果有朝一日,微软以及电脑生产商不需要第三方启动软件了,那它们就可能设法禁止第三方软件的启动。

Android 手机不就是禁止刷机、禁止root吗?没有不可能的事情,一切皆有可能。

点评

gmy
我的意思是让 G4E 的 bootx64.efi 彻底代替 微软,不要出现二级菜单,一级菜单全部搞定:启动各种wim、引导Windows、关机重启。  详情 回复 发表于 昨天 17:00
回复

使用道具 举报

3460#
发表于 昨天 17:00 | 只看该作者
本帖最后由 gmy 于 2025-2-20 17:49 编辑
不点 发表于 2025-2-20 13:06
哈哈,从我的视角,来回复一下 DOS 时代的老朋友葛大师。我猜,从某种程度上,我们都因年龄成为一个障碍 ...

1、我的意思是让 G4E 的 bootx64.efi 彻底代替 微软,不要出现二级菜单,一级菜单全部搞定:启动各种wim、引导Windows、关机重启。
2、另外,sdi文件如何加载?没有回答我。

点评

先说 sdi,貌似在二十年前曾经接触过,不知 UEFI 下还存在不存在 sdi 文件。 总之,我有二十年都没碰过 sdi 了,很陌生。不知它是不是被淘汰的文件。 至于说启动 wim、引导 windows、关机、重启,这用微软的启动  详情 回复 发表于 昨天 22:22
总共各三种方案可以达到引导PE10/11.WIM,sdi文件不用加载? /efi/grub/ext/ntloader...缺少的外部文件不知道哪下载,可以去下载我OTHER文件提取。 default 1 timeout 10 title 11PE uuid () chainloade  详情 回复 发表于 昨天 18:41
回复

使用道具 举报

3461#
发表于 昨天 18:41 | 只看该作者
本帖最后由 chen463 于 2025-2-21 10:50 编辑
gmy 发表于 2025-2-20 17:00
1、我的意思是让 G4E 的 bootx64.efi 彻底代替 微软,不要出现二级菜单,一级菜单全部搞定:启动各种wim ...

总共各三种方案可以达到引导PE10/11.WIM,sdi文件不用加载?放在相对位置就行。
/efi/grub/ext/ntloader...缺少的外部文件不知道哪下载,可以去下载我OTHER文件提取。


default 1
timeout 10

title 11PE
uuid ()
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/sources/11PE.wim

title 10PE
uuid ()
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/sources/10PE.wim


title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案2)/sources/11PE.wim
find --set-root /sources/11PE.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/sources/11PE.wim
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)/sources/11PE.wim
find --set-root /sources/11PE.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/sources/11PE.wim


title 使用外部命令 NTBOOT 启动 WIM/VHD (方案1)/sources/11PE.wim
find /efi/grub/ext/ntboot | set bd=
find --set-root /sources/11PE.wim
%bd%/efi/grub/ext/ntboot  /sources/11PE.wim
boot


title  Windows
find --set-root /EFI/Microsoft/Boot/bootmgfw.efi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

title Restart
reboot

title Shutdown
halt


title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案2)/sources/10PE.wim
find --set-root /sources/10PE.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/sources/10PE.wim
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)/sources/10PE.wim
find --set-root /sources/10PE.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/sources/10PE.wim


title 使用外部命令 NTBOOT 启动 WIM/VHD (方案1)/sources/10PE.wim
find /efi/grub/ext/ntboot | set bd=
find --set-root /sources/10PE.wim
%bd%/efi/grub/ext/ntboot  /sources/10PE.wim
boot

官方版,刚才再一次看过先前测试纪录,这命令是有瑕疵的,无法通过我的测试。被打XX记号
我有修正过才成功。

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)#XX-OK
find --set-root /boot/imgs/winpe.wim
uuid ()
#find --set-root /efi/grub/ext/ntloader
chainloader %@boot%/efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim
boot


ext.part3.rar

317.04 KB, 下载次数: 3, 下载积分: 无忧币 -2

ext.part2.rar

3 MB, 下载次数: 4, 下载积分: 无忧币 -2

ext.part1.rar

3 MB, 下载次数: 3, 下载积分: 无忧币 -2

点评

貌似您的菜单命令含有隐蔽错误。gmy 怀疑 uuid () 命令的作用,这让我留意了这个问题。 uuid () find --set-root /efi/grub/ext/ntloader kernel /efi/grub/ext/ntloader uuid=%?% file=/sources/10PE.wim 按  详情 回复 发表于 13 小时前
gmy
1、uuid ()是什么意思?可以删除吗? 2、G4E 有 (ud) 这个用法吗? 3、ntboot ntloader 哪个兼容性更好?更稳定?  详情 回复 发表于 昨天 23:00
gmy
chen大侠V5,有时间我试试,回来再反馈。  详情 回复 发表于 昨天 20:46
回复

使用道具 举报

3462#
发表于 昨天 20:46 | 只看该作者
chen463 发表于 2025-2-20 18:41
总共各三种方案可以达到引导PE10/11.WIM,sdi文件不用加载?放在相对位置就行。
/efi/grub/ext/ntloader ...

chen大侠V5,有时间我试试,回来再反馈。
回复

使用道具 举报

3463#
发表于 昨天 22:22 | 只看该作者
gmy 发表于 2025-2-20 17:00
1、我的意思是让 G4E 的 bootx64.efi 彻底代替 微软,不要出现二级菜单,一级菜单全部搞定:启动各种wim ...

先说 sdi,貌似在二十年前曾经接触过,不知 UEFI 下还存在不存在 sdi 文件。
总之,我有二十年都没碰过 sdi 了,很陌生。不知它是不是被淘汰的文件。

至于说启动 wim、引导 windows、关机、重启,这用微软的启动方案就能做到吧?如果不想用微软的,也可以用 g4e,前面 wintoflash 和 chen463 等几位,貌似已经完整答复了。

不过,我个人也不爱学新知识,只要能偷懒,我就一定会偷懒。所以,我并不去学如何在 g4d/g4e 下直接启动 wim 的知识,因为我没打算启动 wim。目前,我知道启动 iso 的方法,很简单(map 谁不会啊?)。我接触不到 wim。我的应用场景很单一,也就是启动 PE 的 iso 罢了。
回复

使用道具 举报

3464#
发表于 昨天 23:00 | 只看该作者
chen463 发表于 2025-2-20 18:41
总共各三种方案可以达到引导PE10/11.WIM,sdi文件不用加载?放在相对位置就行。
/efi/grub/ext/ntloader ...

1、uuid ()是什么意思?可以删除吗?
2、G4E 有 (ud) 这个用法吗?
3、ntboot ntloader 哪个兼容性更好?更稳定?

点评

谈谈个人理解,不一定正确。 uuid () 应该是计算当前分区的 UUID,供后续的命令使用,因此不可以删除。 g4e 有没有 (ud)?不曾了解这个知识。我在 g4d 都不用 (ud) 了,原因是,Vista 以后强制 BIOS 支持 LBA  详情 回复 发表于 14 小时前
回复

使用道具 举报

3465#
发表于 14 小时前 | 只看该作者
本帖最后由 不点 于 2025-2-21 06:41 编辑
gmy 发表于 2025-2-20 23:00
1、uuid ()是什么意思?可以删除吗?
2、G4E 有 (ud) 这个用法吗?
3、ntboot ntloader 哪个兼容性更 ...

谈谈个人理解,不一定正确。

uuid () 应该是计算当前分区的 UUID,供后续的命令使用,因此不可以删除。

g4e 有没有 (ud)?不曾了解这个知识。我在 g4d 都不用 (ud) 了,原因是,Vista 以后强制 BIOS 支持 LBA,这样,就不需要 ud 了。也就是说,如果一个电脑的 USB BIOS 仍然只支持 CHS 而不支持 LBA,那么它就是二十年前生产的、XP 时代的旧电脑,微软早都不支持了。这些旧电脑还在服役的概率很低。家庭用户如果有这样的电脑,恐怕早都吃灰了,因为上网都很艰难,XP 不支持很多网站。公司里仍然有很多 XP 电脑,因为这些电脑是专门控制仪器的,不上网。正因为公司电脑不上网,所以系统也不容易坏掉,不需要重装,也就不需要 U 盘。也就是说,真正需要用 ud 来挽救的电脑,是极其罕见的。

我基于您的 一盘走天下,制作了“一盘走天下【自由拼装修改版】”,就没有采用 ud,而是直接用 g4d/g4e 来做的。在公司老电脑和周围熟人的老电脑上测试(专门测试 XP 时代的电脑),grldr.mbr 没有遇到一例失败,全部成功。在我周围的 UEFI 新电脑上,g4e 也全部成功。

ntboot、ntloader 哪个好?前面我已经说过,我不曾留意 wim 启动的知识,不能答复。等着了解的人来答复吧。

【补充】葛大师还真是严谨!赞!再赞!我查看了 chen463 的代码,确实发现了疑似错误。这就提示了各位:使用别人的代码,一定要逐句审核,全部弄懂;不可以闭上眼睛,盲目照搬。

回复

使用道具 举报

3466#
发表于 13 小时前 | 只看该作者
chen463 发表于 2025-2-20 18:41
总共各三种方案可以达到引导PE10/11.WIM,sdi文件不用加载?放在相对位置就行。
/efi/grub/ext/ntloader ...

貌似您的菜单命令含有隐蔽错误。gmy 怀疑 uuid () 命令的作用,这让我留意了这个问题。
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/sources/10PE.wim

按照我的理解(不知道理解得正确不正确),%?% 是“前一条命令的返回结果”。而 kernel 的前一条命令是 find 而不是 uuid (),所以,这应该是错的吧?第三行的 kernel 命令中使用了 %?%,本意是想获取第一行的 uuid () 命令的返回值,但实际上,它可能接收到了第二行的 find 命令的返回值,这肯定不是你想要的结果。也就是说,插入 find 命令后,不小心把 uuid 的代码逻辑路线给破坏掉了。

编写程序,一定要小心谨慎,反复核查。
回复

使用道具 举报

3467#
发表于 10 小时前 | 只看该作者
本帖最后由 chen463 于 2025-2-21 10:41 编辑

详细还是由开发者yaya和wintoflash 来解答命令使用,以下是我的理解,不一定正确喔!

其实有绝对路径uuid (hdx,y)菜单被我忽略掉去除了,如下列第一选单,这需要定位的,

我的需求是必须pe.wim放在任何位置都需准确被搜索到而启动,所以喜欢运用了变量定位。

命令使用其实很简单,理解了就容易。有人质疑为何菜单后面放root %@root%,如果您跳脱G4E又回切换回来,您的设备硬盘U盘很多,您就明白为何我需要确认ROOT号。


1.先搜索定位启动root扇区分区号,例如(hdx,y)- (hd0,1)

find -- set-root /boot/imgs/winpe.wim

2.搜索定位启动root扇区分区号上列已确认,所以省略显示,接续下一步加载 (外部)命令搜索定位引导。

   uuid ()

3.再来准备加载 (外部)命令搜索定位引导,有些方案省略了再次find –命令,因为延续了第一条命令定位(hd0,1),此时您的ntloader(外部)命令就必须放在定位(hd0,1)分区里面执行,否则就执行失败,命令不够严谨。

find --set-root /efi/grub/ext/ntloader

4.看下列不同的选项,竟然使用多次find –来变量(外部)命令搜索定位引导,即使您启动root扇区分区号,例如(hdx,y)- (hd0,1)里面没有ntloader(外部)命令文件,而是放在硬盘或U盘任一分区,都能被搜索定位引导。

find --ignore-floppies --ignore-cd /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd /efi/grub/ext/initrd.lz1 | set in= ;; echo in=%in%

5.一些选项命令前后要配合并合理,即使您PE.WIM放在分区任一位置,都能执行成功,而不是局限在U盘里分区。

...............第一选单


title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案1)
uuid (hdx,y)
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim
...............

#以下是我测试使用过的菜单:

title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案1-2)OK\n uuid %@root%)/boot/imgs/winpe.wim root %@root%
find --set-root /boot/imgs/winpe.wim
uuid %@root%
find --ignore-floppies --ignore-cd /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd /efi/grub/ext/initrd.lz1 | set in= ;; echo in=%in%
kernel %bd%/efi/grub/ext/ntloader uuid=%?% file=/boot/imgs/winpe.wim
initrd %in%/efi/grub/ext/initrd.lz1
boot

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案1-2)OK\n uuid %@root%/boot/imgs/winpe.wim root %@root%
find --ignore-floppies --ignore-cd /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --set-root /boot/imgs/winpe.wim
uuid %@root%
chainloader %bd%/efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?_UUID% file=/boot/imgs/winpe.wim
boot

title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案2)OK\n find --set-root /boot/imgs/winpe.wim root %@root%
find --set-root /boot/imgs/winpe.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/boot/imgs/winpe.wim
initrd /efi/grub/ext/initrd.lz1
boot

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)OK\n find --set-root /boot/imgs/winpe.wim root %@root%
find /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --set-root /boot/imgs/winpe.wim
uuid ()
chainloader %bd%/efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim
boot

title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案3-1)OK\n set bd= ;; echo bd=%bd%/boot/imgs/winpe.wim root %@root%
find --ignore-floppies --ignore-cd /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd /efi/grub/ext/initrd.lz1 | set in= ;; echo in=%in%
find --ignore-floppies --ignore-cd --set-root /boot/imgs/winpe.wim
uuid ()
kernel %bd%/efi/grub/ext/ntloader uuid=%?% file=/boot/imgs/winpe.wim hires=1
initrd %in%/efi/grub/ext/initrd.lz1
boot

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案3-1)OK\n set bd= ;; echo bd=%bd%/boot/imgs/winpe.wim root %@root%
find --ignore-floppies --ignore-cd /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /boot/imgs/winpe.wim
uuid ()
chainloader %bd%/efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim
boot

title 使用外部命令 NTBOOT--N启动 WIM/VHD (方案1-%@boot%720)\n %nt%/efi/grub/ext/ntboot  root %@root%
find %@boot%/efi/grub/ext/ntboot | set nt= ;; echo nt=%nt%
find /boot/imgs/winpe.wim | set bd= ;; echo bd=%bd%
%nt%/efi/grub/ext/ntboot  %bd%/boot/imgs/winpe.wim
boot

title 使用外部命令    RUN--N启动 WIM/IMG (wim方案2- RUN--N)\n bd=%bd%/boot/imgs/winpe.wim root %@root%
find /boot/imgs/winpe.wim | set bd= ;; echo bd=%bd%
find /efi/grub/ext/RUN | set rn= ;; echo rn=%rn%
command %rn%/efi/grub/ext/RUN %bd%/boot/imgs/winpe.wim
boot

title RUN mem automenu 运行自动菜单搜索目录下映像/sources/-OK-wim.iso.img文件\n RUN目录下映像/sources/wim.iso.img文件root %@root%
find --ignore-floppies --ignore-cd /EFI/grub/ext/RUN | set rn= ;; echo rn=%rn%
command --set-path=%rn%/efi/grub/ext
command RUN --mem --top --set-showsize=0 --automenu show.wim.iso.img.vhdx.vhd /sources/
boot


......
官方版,刚才再一次看过先前测试纪录,这命令是有瑕疵的,无法通过我的测试。被打XX记号
我有修正过才成功。

title 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)#XX-OK
find --set-root /boot/imgs/winpe.wim
uuid ()
#find --set-root /efi/grub/ext/ntloader
chainloader %@boot%/efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim
boot






点评

gmy
再次感谢,有时间我试试。  详情 回复 发表于 4 小时前
回复

使用道具 举报

3468#
发表于 4 小时前 | 只看该作者
chen463 发表于 2025-2-21 09:04
详细还是由开发者yaya和wintoflash 来解答命令使用,以下是我的理解,不一定正确喔!

其实有绝对路径uui ...

再次感谢,有时间我试试。
回复

使用道具 举报

3469#
发表于 2 小时前 | 只看该作者
3452 楼 liuzhaoyzz 和 3453 楼 wintoflash 给的 kernel 参数都是:

uuid=%?_UUID%

而 chen463 给的参数是 uuid=%?%

我猜,使用 %?_UUID% 的适应性比较好,不至于出错;而 %?% 应该废弃,因为用在此处适应性差,容易被误用,产生隐蔽的错误。建议尽量优先考虑使用 wintoflash 给出的文件和说明文档,因为毕竟 wintoflash 是 grub4dos 的开发维护者之一。

点评

我把uuid=%?_UUID%修正,并没有改善命令执行失败的瑕疵。 这菜单样板是官方给的。等待YAYA看到来解答。  详情 回复 发表于 1 小时前
回复

使用道具 举报

3470#
发表于 1 小时前 | 只看该作者
title 1 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案2)OK
find --set-root /boot/imgs/winpe.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/boot/imgs/winpe.wim
initrd /efi/grub/ext/initrd.lz1


title 2 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)X/boot/imgs/winpe.wim
find --set-root /boot/imgs/winpe.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
chainloader /efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim


title 3 使用外部命令 ntloader 启动 WIM/VHD (chainloader 方案2)X-#OK/boot/imgs/winpe.wim
find --set-root /efi/grub/ext/ntloader | set bd=
find --set-root /boot/imgs/winpe.wim
uuid ()
#find --set-root /efi/grub/ext/ntloader
chainloader %bd%/efi/grub/ext/ntloader initrd=/efi/grub/ext/initrd.lz1 uuid=%?% file=/boot/imgs/winpe.wim


上列有三项菜单项,各位有何看法?敬请注意命令前有#号

1.如果把/boot/imgs/winpe.wim放在硬盘hd(1,2),而U盘启动root是hd(0,1),执行命令引导可以成功吗?
2.如果把/boot/imgs/winpe.wim放在U盘hd(0,1),而U盘启动root是hd(0,1),执行命令引导可以成功吗?
3.测试结果会发现第二项命令(chainloader 方案2)无法完成把/boot/imgs/winpe.wim放在硬盘hd(1,2) 执行而失败。
4.类似的命令,为何第一项命令(kernel 方案2)却能成功。kernel 有搜索ntloader功能initrd在后有关吗?
5.为何第三项命令修正后,把/boot/imgs/winpe.wim放在硬盘hd(1,2)可以成功执行。

回复

使用道具 举报

3471#
发表于 1 小时前 | 只看该作者
不点 发表于 2025-2-21 17:25
3452 楼 liuzhaoyzz 和 3453 楼 wintoflash 给的 kernel 参数都是:

uuid=%?_UUID%

我把uuid=%?_UUID%修正,并没有改善命令执行失败的瑕疵。
这菜单样板是官方给的。等待YAYA看到来解答。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-21 19:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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