无忧启动论坛

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

RUN/NTBOOT for GRUB4EFI

    [复制链接]
421#
发表于 2023-6-27 22:48:39 | 只看该作者
本帖最后由 chen463 于 2023-6-29 10:01 编辑


如果SATA盘不存在EFI文件夹时,NVMe 盘显示扇区号都是(hd2,2)



回复

使用道具 举报

422#
发表于 2023-6-28 09:03:05 | 只看该作者
我今天在单位无法测试

昨天测试在相同条件下,为何会出现G4E出现判断分区号有异,一直纳闷
第一张图 NVMe 盘的/boot/imgs/winpe.wim显示(hd2,2) U盘root是(hd0,1)
第二张图 NVMe 盘的/boot/imgs/winpe.wim显示(hd1,2) U盘root是(hd0,1)
第三张图 NVMe 盘的/boot/imgs/winpe.wim显示(hd2,2) U盘root是(hd2,2)这个可能是我把efi文件夹存在于NVMe 盘上面所造成。误判是NVMe 盘是root了。

测试菜单:
title 使用外部命令 ntloader 启动 WIM/VHD (kernel 方案2)\n find …..
debug 3
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
pause kernel
initrd /efi/grub/ext/initrd.lz1
pause initrd

使用者由U盘开启G4E上面菜单,这些全部由G4E去判断分区情况,已经关机再重开机非热启动减少判断因素,我无法外力介入。有几项问题:
1.        为何第一和二张出现判断分区号有异,一下子是NVMe 盘排序第一,一下子又排序第二。
2.        为何第三张出现NVMe 盘是root启动,是否跟菜单第二次find --set-root /efi/grub/ext/ntloader定位有关,但是我是U盘启动root应该是(hd0,1)才是,如果以ntloader定位为root,我计算机如有多处存在着ntloader,是不是winpe.wim和ntloader要在同一盘区上才成立菜单命令。

628-1.png (1.18 MB, 下载次数: 141)

628-1.png
回复

使用道具 举报

423#
发表于 2023-6-28 15:11:04 | 只看该作者
chen463 发表于 2023-6-28 09:03
我今天在单位无法测试

昨天测试在相同条件下,为何会出现G4E出现判断分区号有异,一直纳闷

wim 和 ntloader 不一定要在同一磁盘分区中;

U盘启动情形,成功实现用U盘中的 ntloader 启动位于硬盘分区中的 wim;

使用 find --set-root 时,G4D搜索到第1个符合条件的对象就不再搜索了,最新的 G4E 可以搜全盘,好像还是根据第1个符合条件的对象设定 root 的;

所以菜单中用 find --set-root 时 必须警惕存在多个符合条件的对象的情形,容易出现错乱;

菜单命令要仔细打磨,可以使用 “易辨识文件名"的 wim 配 ntloader,便于失败时快速定位是那个位置的wim;
回复

使用道具 举报

424#
 楼主| 发表于 2023-6-28 18:43:51 来自手机 | 只看该作者
你硬盘分区里N多个/boot/imgs/winpe.wim,find先搜索当前分区,没有则从第一磁盘的第一分区依次搜索。向你这种情况,最好在相关分区根目录设置0字节的标识文件,如d1p1.txt。菜单里搜索这个唯一的文件。

点评

感谢YA大和W大的辛劳回复及建议,后学再试试  详情 回复 发表于 2023-6-29 09:28
回复

使用道具 举报

425#
 楼主| 发表于 2023-6-28 18:47:43 来自手机 | 只看该作者
同一菜单,每次启动都不做任何改动,直接热重启,应该启动结果是相同的。我怀疑你每次启动有什么神操作。
回复

使用道具 举报

426#
发表于 2023-6-29 09:28:32 | 只看该作者
2011yaya2007777 发表于 2023-6-28 18:43
你硬盘分区里N多个/boot/imgs/winpe.wim,find先搜索当前分区,没有则从第一磁盘的第一分区依次搜索。向你 ...

感谢YA大和W大的辛劳回复及建议,后学再试试
回复

使用道具 举报

427#
发表于 2023-6-29 21:56:01 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-6-29 22:04 编辑
2011yaya2007777 发表于 2023-6-25 07:43
问题找到了,是启动不了 gpt 分区的 wim、vhd。已经修正,请测试。

恐怕--autolist-all 或者 --automenu-all 这不是我们想要的啊,我们想要的就是默认枚举某个目录,比如/boot/imgs或者/pe/这个目录,然后上一级,上一级,到根目录,然后可以向上到选择盘符,可以切入其他盘符。

以前版本的run就可以啊。



        

点评

现在也可以用吧 /EFI/GRUB/RUN --automenu /BOOT  详情 回复 发表于 2023-6-30 01:35
回复

使用道具 举报

428#
发表于 2023-6-29 21:59:07 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-6-29 22:12 编辑
chen463 发表于 2023-6-28 09:03
我今天在单位无法测试

昨天测试在相同条件下,为何会出现G4E出现判断分区号有异,一直纳闷

你的这个菜单就不对。你没有理解root设备。

#UEFI下面,g4e+kernel+ntloader方案可以启动pe.wim:
title /boot/imgs/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


照葫芦画瓢就行了。

点评

不好意思,误导了大家,感谢大家的关心问题 1.ntloader菜单没有错,不是菜单问题 是测试G4E使用外部命令 ntloader 启动 WIM/VHD, 发现获取到(NVMe 盘)的/boot/imgs/winpe.wim无法完成启动。 2.至于RUN/NTBO  详情 回复 发表于 2023-6-30 10:02
回复

使用道具 举报

429#
发表于 2023-6-30 01:35:17 | 只看该作者
liuzhaoyzz 发表于 2023-6-29 21:56
恐怕--autolist-all 或者 --automenu-all 这不是我们想要的啊,我们想要的就是默认枚举某个目录,比如/bo ...

现在也可以用吧
/EFI/GRUB/RUN --automenu /BOOT
回复

使用道具 举报

430#
发表于 2023-6-30 10:02:44 | 只看该作者
本帖最后由 chen463 于 2023-6-30 16:38 编辑
liuzhaoyzz 发表于 2023-6-29 21:59
你的这个菜单就不对。你没有理解root设备。

#UEFI下面,g4e+kernel+ntloader方案可以启动pe.wim:

不好意思,误导了大家,感谢大家的关心问题

1.ntloader菜单没有错,不是菜单问题
是测试G4E使用外部命令 ntloader 启动 WIM/VHD,
发现获取到(NVMe 盘)的/boot/imgs/winpe.wim无法完成启动。

2.至于RUN/NTBOOT的命令
现在625版本修正,以前U盘获取到其他SATA系统盘和(NVMe 盘)的winpe.wim无法完成启动,现在可以随着个人需求--autolist-all 或者 --automenu-all 或者 –automenu 去运用。

3. 测试在相同条件下,为何会出现G4E出现判断分区号有异,一直纳闷
这个问题昨晚找到了症结所在,是新笔电的BIOS会自动辨别EFI和bootmgfwg.efi的存在(本机和系统启动),在BIOS菜单选项显示,而我测试环境配备又到处重复存在这些文件,结果在BIOS显示了双UEFI菜单选项,可能G4E因此选其一开启造成排序不同,但是不会影响菜单命令可完成启动。(排除其中一个SATA系统盘的UEFI菜单,G4E出现判断分区号有异这现象就正常了。)
回复

使用道具 举报

431#
发表于 2023-6-30 16:21:03 | 只看该作者
本帖最后由 captain_g 于 2023-6-30 16:32 编辑

见 #447

可能不是菜单问题!

本人一共3台电脑(H61、B85、B250,均技嘉主板)
同一 菜单
Case-1/2 三台电脑均成功;
Case-2 在B250上失败!

B250的机器失败的提示:
0x0000255
a required device isn't connected or can't be accessed.

U盘启动,系统硬盘均是MBR盘;

find的对象肯定是唯一的;

重启后直接选择相应CASE-2菜单;

另外,失败的机器上多次重复出现菜单界面不断闪烁的现象。

使用的菜单如下:(请指正)

title 使用外部命令 run 启动 wim/iso (Case-1) \n\r        搜索启动设备根下 sources 目录中的 wim和iso 文件。 \n\r        然后再手动选择要启动的 winpe 文件(必须支持64位UEFI)。
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ext/RUN
command --set-path=/efi/grub/ext
command run --mem --top --set-showsize=0 --automenu show.iso.wim /sources/
boot

title 使用外部命令 run 启动 wim/iso (CASE-2)  \n\r        搜索非启动设备根下 winpes 目录中的 wim和iso 文件。 \n\r        然后再手动选择要启动的 winpe 文件(必须支持64位UEFI)。
find --set-root /winpes | set ss= ;; echo ss=%ss%
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ext/RUN
command --set-path=/efi/grub/ext
command run --mem --top --set-showsize=0 --automenu show.iso.wim %ss%/winpes/
boot

title 使用外部命令 ntboot 启动 wim (Case-1) \n\r        启动启动设备上的/sources/PE864.wim  (If Any)
find --set-root /efi/grub/ntboot
uuid ()
map --mem --no-hook /efi/grub/ntboot (hd)
(hd-1,0)/loaderNT %@root%/sources/PE864.wim
boot

title 使用外部命令 ntboot 启动 wim  (CASE-2) \n\r        启动非启动设备上的/winpes/PE864.wim  (If Any)
find --set-root /efi/grub/ntboot
uuid ()
map --mem --no-hook /efi/grub/ntboot (hd)
find --set-root /winpes/PE864.wim
(hd-1,0)/loaderNT /winpes/PE864.wim
boot

title 使用外部命令 ntloader 启动 wim (Case-1) \n\r        启动启动设备上的/sources/PE864.wim (If Any)
find --set-root /sources/PE864.wim
uuid ()
find --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/sources/PE864.wim hires=1
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 wim (CASE-2) \n\r        启动非启动设备上的/winpes/PE864.wim (If Any)
find --ignore-floppies --ignore-cd --set-root /winpes/PE864.wim
uuid ()
find --ignore-floppies --ignore-cd --set-root /efi/grub/ext/ntloader
kernel /efi/grub/ext/ntloader uuid=%?% file=/winpes/PE864.wim hires=1
initrd /efi/grub/ext/initrd.lz1

title 使用外部命令 ntloader 启动 wim (CASE-2) \n\r        启动非启动设备上的/winpes/PE864.wim (If Any)
find --ignore-floppies --ignore-cd /efi/grub/ext/ntloader | set bd= ;; echo bd=%bd%
find --ignore-floppies --ignore-cd --set-root /winpes/PE864.wim
uuid ()
kernel %bd%/efi/grub/ext/ntloader uuid=%?% file=/winpes/PE864.wim hires=1
initrd %bd%/efi/grub/ext/initrd.lz1

回复

使用道具 举报

432#
发表于 2023-7-1 10:44:02 | 只看该作者
captain_g 发表于 2023-6-30 16:21
见 #447

可能不是菜单问题!

测试的菜单后学全部试过,只有下面这个菜单无法启动,菜单不够严谨,最好全面性兼容。
从其中让后学重新检视学习,菜单再次修正,感谢您。
说明如下:

title 使用外部命令 ntboot 启动 wim (Case-1) X#\n\r        启动启动设备上的/sources/PE864.wim  (If Any)
find --set-root /efi/grub/ext/ntboot
uuid ()
map --mem --no-hook /efi/grub/ext/ntboot (hd)

上面命令先定位再启动NTBOOT-OK
接着下面命令


(hd-1,0)/loaderNT %@root%/boot/imgs/winpe.wim
Boot

后学/ntboot放在U盘上(hd0,1)启动OK,结果经过上面定位%@root%变成(hd0,1)
而实机放在(hd2,3)/boot/imgs/winpe.wim,造成启动失败
NTBOOT (Case-2)就成功,因为有重新定位winpe.wim位置

您可以再查看一下失败的菜单及文件放置位置是否正确
回复

使用道具 举报

433#
 楼主| 发表于 2023-7-1 14:36:55 来自手机 | 只看该作者
版本更新

点评

原先RUN好好的,为何更新? 71版本,启动失败,出现无法找到/boot/imgs/hirs讯息  详情 回复 发表于 2023-7-1 15:09
回复

使用道具 举报

434#
发表于 2023-7-1 15:09:14 | 只看该作者
本帖最后由 chen463 于 2023-7-1 17:00 编辑

原先RUN好好的,为何更新?
喔,了解知道,好久没看见鲜品,太猴急啰



回复

使用道具 举报

435#
 楼主| 发表于 2023-7-1 16:21:05 来自手机 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-7-1 16:30 编辑

你看一下一楼的提示再回话。这下RUN与NTBOOT彻底分开了。本来RUN是别人开发的,我只是做了uefi适应性更改。为什么更改?因为NTBOOT做了调整,现在可以随官网一起发布。这个RUN是为了适应新的NTBOOT。
你现在使用好好的,可是你使用的G4E以及NTBOOT是我临时提供的,并没有正式发布。
回复

使用道具 举报

436#
发表于 2023-7-1 16:28:06 | 只看该作者
附件是不是传错了,RUN_包含NTBOOT和NTBOOT都没有
回复

使用道具 举报

437#
 楼主| 发表于 2023-7-1 16:34:26 来自手机 | 只看该作者
真是无语。都不看1#说明。NTBOOT现在随G4E官网发布。而且这个RUN必须配合新版本的G4E及NTBOOT。
回复

使用道具 举报

438#
发表于 2023-7-1 16:36:12 | 只看该作者
NTBOOT在grub4dos-for_UEFI-2023-07-01.7z里的ext文件下
回复

使用道具 举报

439#
发表于 2023-7-1 16:48:16 | 只看该作者
哈哈,总算明白啦,改变有点突然没反应过来
回复

使用道具 举报

440#
发表于 2023-7-1 22:26:26 | 只看该作者
本帖最后由 chen463 于 2023-7-3 09:00 编辑

G4E-71版本重大更新,测试U盘SATA盘SDD盘NVMe盘,给满分10

title 使用外部命令 NTBOOT   启动 WIM/VHD (方案1-H3_1164.WIM-%@root%)\n %bd%/boot/H3_1164.WIM root %@root%
find /boot/H3_1164.WIM | set bd=
map --mem --no-hook %@root%/efi/grub/ext/NTBOOT (hd)
(hd-1,0)/setbcd %bd%/boot/H3_1164.WIM
boot


回复

使用道具 举报

441#
发表于 2023-7-2 09:01:04 | 只看该作者
使用外部命令 NTBOOT   启动 WIM/VHD

(hd-1,0)/setbcd /boot/imgs/winpe.wim
boot

发现在FAT-EFI分区在前面NTFS-ISO在高端区时无法找到setbcd命令执行
把setbcd命令改回loaderNT时可以找到命令执行

但是在NTFS-ISO分区在前面FAT-EFI在高端区时可以找到setbcd命令执行


2023-07-02_085739.png (502.96 KB, 下载次数: 164)

2023-07-02_085739.png
回复

使用道具 举报

442#
 楼主| 发表于 2023-7-2 10:40:58 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-7-2 10:42 编辑
发现在FAT-EFI分区在前面NTFS-ISO在高端区时无法找到setbcd命令执行

不明白这句话。是不是说,FAT分区后面是NTFS分区?

setbcd是在NTBOOT内部。找到的loaderNT,是你以前下载到硬盘某处的旧文件。当然是可以运行的。


找不到setbcd,是你搞混了NTBOOT版本,不是最新的。

点评

发现在FAT-EFI分区在前面NTFS-ISO在高端区时无法找到setbcd命令执行 找到原因是 搜寻到后面NTFS-ISO高端区放H3-PE文件相同的旧文件NTBOOT,排除它就OK了,对不起打扰了。菜单可能还要来斟酌一下。谢谢您  详情 回复 发表于 2023-7-2 11:35
回复

使用道具 举报

443#
 楼主| 发表于 2023-7-2 10:45:03 | 只看该作者
可能还是你的菜单不对。把这个菜单项贴上来。
回复

使用道具 举报

444#
发表于 2023-7-2 11:35:08 | 只看该作者
2011yaya2007777 发表于 2023-7-2 10:40
不明白这句话。是不是说,FAT分区后面是NTFS分区?

setbcd是在NTBOOT内部。找到的loaderNT,是你以前 ...

发现在FAT-EFI分区在前面NTFS-ISO在高端区时无法找到setbcd命令执行

找到原因是
搜寻到后面NTFS-ISO高端区放H3-PE文件相同的旧文件NTBOOT,排除它就OK了,对不起打扰了。菜单可能还要来斟酌一下。谢谢您
回复

使用道具 举报

445#
 楼主| 发表于 2023-7-2 12:09:09 来自手机 | 只看该作者
如果是从主菜单启动的话,不用搜索 /efi/grub/ntboot,直接 map --mem --no-hook /efi/grub/ntboot (hd-1,0) 就可以了。下一条语句可能就需要搜索一下启动文件的根了。

点评

现在原主菜单启动 map --mem --no-hook /efi/grub/ntboot已经搜寻到外区旧文件去了。 U盘硬盘太多地方有ntboot存在 菜单: 1.把它改名区别一下 2.把它定位在启动盘root  详情 回复 发表于 2023-7-2 13:56
回复

使用道具 举报

446#
 楼主| 发表于 2023-7-2 12:35:19 | 只看该作者
本帖最后由 2011yaya2007777 于 2023-7-2 13:37 编辑

再比如,一开始执行:
find -/set-root /pe/file
这时候改变了根,比如是 (hd2,3)
再执行find命令,比如搜索ntboot,他首先从(hd2,3)搜索,没有找到,再从(hd0,0)开始搜索,直到(hdn,n)为止。如果有多个ntboot的话,有可能找到的不是自己需要的。
如果执行:
find /pe/file  | set bd=
这时没有改变根,而是将file所在根赋给了变量%bd%

总之有两点注意:
一是搜索目标的先后顺序,二是是否需要改变根。

点评

grub4dos-for_UEFI-2023-07-01+RUN_2023-07-01 title run-2011yaya2007777-pe find /EFI/grub/RUN | set bd= ;; echo bd=%bd% find --set-root ls /PE/ set highest=yes command %bd%/EFI/grub/RUN --automenu  详情 回复 发表于 2023-7-2 18:40
title 使用外部命令 NTBOOTN 启动 WIM/VHD (方案1-2setbcd-NTBOOTN)\n %bd%/boot/imgs/winpe.wim root %@root% find --set-root /efi/grub/ext/ntbootn find /boot/imgs/winpe.wim | set bd= ;; echo bd=%bd% ma  详情 回复 发表于 2023-7-2 13:26
回复

使用道具 举报

447#
发表于 2023-7-2 13:26:08 | 只看该作者
本帖最后由 chen463 于 2023-7-25 16:34 编辑
2011yaya2007777 发表于 2023-7-2 12:35
再比如,一开始执行:
find -/set-root /pe/file
这时候改变了根,比如是 (hd2,3)

现在原主菜单启动 map --mem --no-hook /efi/grub/ntboot 已经搜寻到外区旧文件去了。
U盘硬盘太多地方有ntboot存在
菜单:
1.把它改名区别一下
2.把它定位在启动盘%@root%

  1. title 使用外部命令 NTBOOT   启动 WIM/VHD (方案1-2setbcd-%@root%)\n %@root%/efi/grub/ext/NTBOOT root %@root%
  2. find /boot/imgs/winpe.wim | set bd=
  3. map --mem --no-hook %@boot%/efi/grub/ext/NTBOOT (hd)
  4. (hd-1,0)/setbcd %bd%/boot/imgs/winpe.wim
  5. boot
复制代码


回复

使用道具 举报

448#
发表于 2023-7-2 13:56:17 | 只看该作者
2011yaya2007777 发表于 2023-7-2 12:09
如果是从主菜单启动的话,不用搜索 /efi/grub/ntboot,直接 map --mem --no-hook /efi/grub/ntboot (hd-1,0 ...

现在原主菜单启动 map --mem --no-hook /efi/grub/ntboot已经搜寻到外区旧文件去了。
U盘硬盘太多地方有ntboot存在
菜单:
1.把它改名区别一下
2.把它定位在启动盘root
回复

使用道具 举报

449#
发表于 2023-7-2 18:40:57 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-3 14:43 编辑
2011yaya2007777 发表于 2023-7-2 12:35
再比如,一开始执行:
find -/set-root /pe/file
这时候改变了根,比如是 (hd2,3)

grub4dos-for_UEFI-2023-07-01+RUN_2023-07-01
title run-2011yaya2007777-pe
find /EFI/grub/RUN | set bd= ;; echo bd=%bd%
find --set-root ls /PE/
set highest=yes
command %bd%/EFI/grub/RUN --automenu /PE/

NTBOOT放在(hd0,0)/EFI/grub/ext/目录下。
PE.ISO/WIM放在(hd1,1)/PE/目录下。
用上面的菜单,进入(hd1,1)/PE/目录之后,选择Back to Main Menu,会进不去上面的title run-2011yaya2007777-pe菜单项,很奇怪。
这个问题可以稳定重现,意思就是说,遍历与run不同盘符的目录之后,再次想进入run菜单,无法进入。




现在的组合,已经可以正常切换盘符了,可以向上到最顶级目录。


另外,对于run和NTBOOT分离版本,NTBOOT存放的位置很重要,建议在一楼说下,我也是回看了很多帖子,才知道应该放在ESP:/EFI/grub/ext/目录下,另外,建议在一楼给个demo的菜单,这样子大家省时省力。








点评

把定位往下拉,否则抓不到,会随/PE/被定位 title run-2011yaya2007777-pe find --set-root ls /PE/ set highest=yes find /EFI/grub/RUN | set bd= ;; echo bd=%bd% command %bd%/EFI/grub/RUN --mem --au  详情 回复 发表于 2023-7-2 21:33
回复

使用道具 举报

450#
 楼主| 发表于 2023-7-2 18:50:42 来自手机 | 只看该作者
看看G4D的RUN是不是这样子的。还是G4E哪里没有适配好。

点评

刚才试了,g4d+run没有这样子的问题,随意切换盘符,点Back to Main Menu之后,菜单可以重入。 title 2 run mem automenu by sratlf-sx find --ignore-floppies --ignore-cd --set-root /boot/grub/RUN command -  详情 回复 发表于 2023-7-2 18:57
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-23 07:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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