无忧启动论坛

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

RUN/NTBOOT for GRUB4EFI

    [复制链接]
451#
发表于 2023-7-2 18:57:06 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-2 19:09 编辑
2011yaya2007777 发表于 2023-7-2 18:50
看看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 --set-path=/boot/grub
command run --loadfont --mem --top --e820cycles=-1 --set-showsize=0 --automenu show.iso.wim /boot/imgs/

感觉就是run里面改变了%@root%设备,找不到NTBOOT盘符,导致加载不了NTBOOT,就是run的问题,不应该是g4e的问题。

发现一个很奇怪的问题,如果在468楼的菜单title后面加上debug 3,后面再加几个pause,菜单就可以重入了,匪夷所思。

        
回复

使用道具 举报

452#
发表于 2023-7-2 21:33:58 | 只看该作者
本帖最后由 chen463 于 2023-7-3 08:54 编辑
liuzhaoyzz 发表于 2023-7-2 18:40
grub4dos-for_UEFI-2023-07-01+RUN_2023-07-01
title run-2011yaya2007777-pe
find /EFI/grub/RUN | se ...

把定位往下拉,否则抓不到,会随/PE/被定位
不能搜寻/PE/一但定位出不来了

#find --set-root ls /PE/

  1. title run-2011yaya2007777-pe

  2. #find --set-root ls /PE/
  3. set highest=yes
  4. find /EFI/grub/RUN | set bd= ;; echo bd=%bd%
  5. command %bd%/EFI/grub/RUN --mem --automenu /PE/
  6. boot
复制代码




回复

使用道具 举报

453#
 楼主| 发表于 2023-7-3 10:17:52 | 只看该作者
另外,对于run和NTBOOT分离版本,NTBOOT存放的位置很重要,建议在一楼说下

这个建议采纳。

另外,问题没有重现。是不是其他硬盘、其他分区同样存在 /EFI/grub/RUN 或者 /PE/ ?

感觉这样使用 find --set-root ls /PE/  怪怪的。
回复

使用道具 举报

454#
发表于 2023-7-3 11:16:06 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-3 11:20 编辑
2011yaya2007777 发表于 2023-7-3 10:17
这个建议采纳。

另外,问题没有重现。是不是其他硬盘、其他分区同样存在 /EFI/grub/RUN 或者 /PE/ ?
...

其他盘符,没有 /EFI/grub/RUN 或者 /PE/ 这样子干扰的目录啊。
find --set-root ls /PE/的作用,是全盘查找/PE/目录,并把找到的第一个结果设置为root,然后后面run --automenu /PE/才可以枚举(root)/PE/下的那些文件。
这个用法,在sratlf写的readme里面有的。我只是照葫芦画瓢。

回复

使用道具 举报

455#
 楼主| 发表于 2023-7-3 12:11:49 来自手机 | 只看该作者
明白了
回复

使用道具 举报

456#
发表于 2023-7-3 12:19:14 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-3 14:35 编辑
chen463 发表于 2023-7-2 21:33
把定位往下拉,否则抓不到,会随/PE/被定位
不能搜寻/PE/一但定位出不来了
#find --set-root ls /PE/

你说的对。

title run-2011yaya2007777-pe
#find --set-root ls /boot/imgs/
find /EFI/grub/RUN | set bd= ;; echo bd=%bd%
set highest=yes
command %bd%/EFI/grub/RUN --automenu (hd1,1)/PE/
我注释掉find --set-root ls /boot/imgs/,最后一句话改成command %bd%/EFI/grub/RUN --automenu (hd1,1)/PE/,菜单可以重入了。


我感觉还是哪里有问题,为什么不允许重设root?
回复

使用道具 举报

457#
发表于 2023-7-3 12:45:32 | 只看该作者
Re 450#  反应的问题:

测试环境U盘G4E启动:20230623的G4E+NTBOOT+RUN(含NTBOOT),20230623的G4E+NTLOADER;
H61B85主板机器上所有Case-1、Case-2菜单均能启动wim;
B250主板机器上所有Case-1菜单均能启动wim(U盘上的);
B250主板机器是所有Case-2菜单均不能启动wim(硬盘上的);

BH61机器上各挂1SSD和2机械盘,MBR分区;
B250机器上各挂1SSD和1机械盘,MBR分区;
B250机器上各挂1SSD和1机械盘,MBR分区;

B250机器:
U盘G4E启动后查看,SSD为(hd1),机械盘是(hd2);
机械盘上4个分区(hd2,0) (hd2,4) (hd2,5) (hd2,2) ;
其中(hd2,0)分区是bitlock加密的!

当wim文件位于机械盘上时三种Case-2菜单均失败,提示:
0xc0000255
a required device isn't connected or can't be accessed.

但当wim文件位于SSD上则三种Case-2菜单均能成功启动!

怀疑因存在bitlock加密的(hd2,0)分区,导致无法真正读取位于(hd2)上的wim文件(尽管RUN能列出清单):
用 find --set-root 不行,换用如 root (hd2,4) 定位也不行;
回复

使用道具 举报

458#
发表于 2023-7-3 13:29:58 | 只看该作者
captain_g 发表于 2023-7-3 12:45
Re 450#  反应的问题:

测试环境U盘G4E启动:20230623的G4E+NTBOOT+RUN(含NTBOOT),20230623的G4E+NTLOA ...

开启 bitlocker,UWF,Hyper-V 都会导致启动过程中出现问题。似乎要加载额外的文件,BCD 菜单也要有改变。
所以 NTBOOT 类的方案只适合简单安装的 Windows。
回复

使用道具 举报

459#
发表于 2023-7-3 14:13:52 | 只看该作者
wintoflash 发表于 2023-7-3 13:29
开启 bitlocker,UWF,Hyper-V 都会导致启动过程中出现问题。似乎要加载额外的文件,BCD 菜单也要有改变 ...

谢谢解惑!

从启动角度看,启动优盘上的wim/iso/vhd等具有更广泛实用意义;

而启动硬盘上的wim/iso/vhd等,实用性则比较狭窄,更多是满足爱好者个人把玩偏好;

由于硬盘环境的复杂性,不少问题似是而非,常常还要满足各种不同使用需求,无疑会让开发者付出巨量心血;

当然没有众多的使用者、爱好者,项目开发也难以迅速壮大,日趋完善。

谢谢所有努力的人!

回复

使用道具 举报

460#
发表于 2023-7-3 14:16:59 | 只看该作者
本帖最后由 chen463 于 2023-7-3 14:29 编辑
liuzhaoyzz 发表于 2023-7-3 12:19
你说的对。

title run-2011yaya2007777-pe

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/
boot

上面操作说明
find /EFI/grub/RUN | set bd= ;; echo bd=%bd%
这命令指示定位%bd%变数
find --set-root ls /PE/
set highest=yes
command %bd%/EFI/grub/RUN --automenu /PE/
接下来命令是一贯到底的,中间没有停顿
find --set-root ls /PE/
搜寻到/PE/是 (hd1,1)分区,是从近到远,即使有多个/PE/还是显示最快搜寻到的哪一个 分区/PE/
command %bd%/EFI/grub/RUN --automenu /PE/
上面搜寻被定位在 (hd1,1)分区,而您启动盘ROOT是 (hd0,1),里面放有RUN/NTBOOT文件,
前面被定位在 (hd1,1)分区里接着执行command %bd%/EFI/grub/RUN
(hd1,1)分区里没有RUN/NTBOOT文件,就找不到而告失败。
.....
如果把find /EFI/grub/RUN | set bd= ;; echo bd=%bd%往下拉,就是重新定位RUN位置,
接下来command %bd%/EFI/grub/RUN就成立了 (hd0,1)分区启动。

但是进入后按(返回主菜单)已经出不来了被定位在 (hd1,1),
无法从 (hd1,1)> 回到原先的ROOT  (hd0,1)菜单
.....

如果不要定位取消find --set-root ls /PE/,
把它设定在后面command %bd%/EFI/grub/RUN --automenu  (hd1,1)/PE/就成立了,
按(返回主菜单) 从 (hd1,1)> 回到原先的ROOT  (hd0,1)菜单
但是发现主菜单已不能再执行其他的RUN菜单里面有%bd%变数,只能执行(hd1,1)明码命令。
{旧文件RUN也是相同情况的}
title 使用外部命令    RUN-N2启动 WIM/IMG (wim方案2-N2)\n find(hd0,1)/boot/imgs/winpe.wim root %@root%
find /boot/imgs/winpe.wim
command /EFI/grub/ext/RUN (hd1,1)/boot/imgs/winpe.wim


回复

使用道具 举报

461#
发表于 2023-7-3 14:31:10 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-3 14:49 编辑
chen463 发表于 2023-7-3 14:16
title run-2011yaya2007777-pe
find /EFI/grub/RUN | set bd= ;; echo bd=%bd%
find --set-root ls /PE ...

你分析的很对。出错原因确实如你所说。
之前我用的是run包含ntboot,所以没有这个问题。现在分离版有这个问题。

我想yaya大概知道了原因,等他有空的时候他会解决这个问题的。

你前面的有几个回帖,让人看得不是很明白,语言上听不太懂。
如果把find /EFI/grub/RUN | set bd= ;; echo bd=%bd%往下拉
把定位往下拉,否则抓不到,会随/PE/被定位

往下拉,啥意思?放在后面吗。

“变数”,大陆一般说是“变量”,呵呵。

好久没看见鲜品,“鲜品”这样子的词汇,我们很少说呢,鲜品的意思好像是“新版本”的意思。
把所有SATA盘和U盘阻断WIM,
确实没听懂。

大概意思能够了解,但是词汇跟我们还是不一样。

======================
台湾省 中华电信(HiNet)
哦,原来是来自台湾的同胞,我说怎么之前那么多话,大家听不明白呢。




回复

使用道具 举报

462#
发表于 2023-7-3 14:52:48 | 只看该作者
captain_g 发表于 2023-7-3 14:13
谢谢解惑!

从启动角度看,启动优盘上的wim/iso/vhd等具有更广泛实用意义;
而启动硬盘上的wim/iso/vhd等,实用性则比较狭窄,更多是满足爱好者个人把玩偏好;


恰恰相反,80%时间,我都是喜欢从硬盘启动PE,而不是USB设备,USB设备只是我的备胎方案。
回复

使用道具 举报

463#
 楼主| 发表于 2023-7-3 15:10:14 | 只看该作者
怀疑因存在bitlock加密的(hd2,0)分区,导致无法真正读取位于(hd2)上的wim文件(尽管RUN能列出清单):
用 find --set-root 不行,换用如 root (hd2,4) 定位也不行;

bitlock加密分区没有遇到。想了解一下:
1.  ls (hd2,0)/
2.  ls (hd2,4)/
3.  find
4.  find --set-root /efi/grub/ntboot
     map --mem --no-hook /efi/grub/ntboot (hd)
     (hd-1,0)/loaderNT (hd2,4)/winpes/PE864.wim
     boot
回复

使用道具 举报

464#
 楼主| 发表于 2023-7-3 15:14:22 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-4 11:54 编辑
我想yaya大概知道了原因,等他有空的时候他会解决这个问题的。

还是懵懵懂懂的。
我觉得使用自动菜单,RUN 前后都不要变更启动根。
title run-2011yaya2007777-pe
find --set-root /EFI/grub/RUN
set highest=yes
command /EFI/grub/RUN --automenu /PE/
boot

这样试一试。
回复

使用道具 举报

465#
发表于 2023-7-3 16:21:14 | 只看该作者
liuzhaoyzz 发表于 2023-7-3 14:52
恰恰相反,80%时间,我都是喜欢从硬盘启动PE,而不是USB设备,USB设备只是我的备胎方案。

对啊!

硬盘应该是自己的吧?

别人的硬盘,一般我们是不会知道里面有什么;

也不大会让我们先把东西弄进去再在那试吧?
回复

使用道具 举报

466#
发表于 2023-7-3 16:43:04 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-3 16:45 编辑
captain_g 发表于 2023-7-3 16:21
对啊!

硬盘应该是自己的吧?

说的对,我就是这样子干的!哈哈。有同事找我做系统,先搞个PE进去,同事都是内网的,我在内网的共享电脑上面放了个PE还有个安装器,直接搞到他/她电脑里面,win10.esd,还有其他软件都放在共享电脑上面的,映射出来,优盘都不用带。PXE启动也行。你把几百MB的PE放到她电脑,她也不知道,下次更加不用什么优盘了,格式化C盘PE都可以启动。
在外面的话做系统,直接从网盘把PE拉到本地,PE安装器直接启动即可,我为啥还要拷贝到速度慢的USB设备倒腾一次?好奇怪。想想看,有多少电脑是完全无法启动的?大部分是因为卡顿而重做的,原来的系统下载个PE并启动,不难吧。
回复

使用道具 举报

467#
发表于 2023-7-3 17:09:02 | 只看该作者
本帖最后由 captain_g 于 2023-7-3 17:23 编辑
2011yaya2007777 发表于 2023-7-3 15:10
bitlock加密分区没有遇到。想了解一下:
1.  ls (hd2,0)/
2.  ls (hd2,4)/

U盘启动进菜单后直接按C键试了一下,向您报告:

ls (hd2,0)/ 提示 cannot mount selected partition
ls (hd2,4)/ 正常列出清单
find 列出的内容正常,依次U盘、SSD及机械盘细节

特地执行了一下 root (2,0) 也是提示 cannot mount selected partition
又执行一下 root 发现 root 还是 (hd0,0)

重启后进菜单,执行:
find --set-root /efi/grub/ntboot
map --mem --no-hook /efi/grub/ntboot (hd)
(hd-1,0)/loaderNT (hd2,4)/winpes/PE864.wim
boot

(系统中 /winpes/PE864.wim 存在且唯一)

跑完进度条后,提示:
0xc0000255
a required device isn't connected or can't be accessed.

ntloader 也试了,最终同样提示;

run 也试了,能出清单,但选中 wim 后,最终也是同样提示;
跑完进度条不准确,是一闪而过,ntloader屏幕回先比较多
回复

使用道具 举报

468#
 楼主| 发表于 2023-7-3 17:16:14 | 只看该作者
U盘启动进菜单后直接按C键试了一下,向您报告:

这就是说,虽然bitlock加密了分区(hd2,0),但是对这个硬盘的其他分区也有影响。
回复

使用道具 举报

469#
 楼主| 发表于 2023-7-3 17:18:28 | 只看该作者
这个问题可以稳定重现,意思就是说,遍历与run不同盘符的目录之后,再次想进入run菜单,无法进入。

现在可以重现这个问题了,正在排查。
回复

使用道具 举报

470#
发表于 2023-7-3 17:28:14 | 只看该作者
2011yaya2007777 发表于 2023-7-3 17:16
这就是说,虽然bitlock加密了分区(hd2,0),但是对这个硬盘的其他分区也有影响。

我怀疑是的,因为wim文件如果移动到SSD上则能成功,应该不是机器的问题;

前面说的:

跑完进度条不准确,是一闪而过,ntloader屏幕回显比较多的,能看见过程

没有出现 loading 那个进度条
回复

使用道具 举报

471#
发表于 2023-7-3 19:11:25 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-3 20:11 编辑
captain_g 发表于 2023-7-3 17:28
我怀疑是的,因为wim文件如果移动到SSD上则能成功,应该不是机器的问题;

前面说的:

wintoflash不是回答过你的问题了吗。

1、bitlocker加密的硬盘,即使你能够从优盘进入PE,进去之后硬盘也是锁死的,你什么都干不了,进去有何用处???就是格盘也还是不行,必须要重分区。

2、bitlocker加密的硬盘,想要在g4d/g4e下面访问,是访问不了的,因为被锁死了。TPM自解锁这把钥匙,只有在windows下面有效,windows没有启动,黑盒子就是锁死的。

回复

使用道具 举报

472#
发表于 2023-7-3 21:06:15 | 只看该作者
跟 随 菜单 的变量:@boot  或 (bd)

只要不 执行 configfile 是不 会变的
     1.  configfile 内存菜单 不变
     2. configfile 同一分区的,也不会变(变为同一分区,等于没变)
      3.   configfile 其它分区,会变( 一般不会发生)
回复

使用道具 举报

473#
发表于 2023-7-4 09:09:04 | 只看该作者
2011yaya2007777 发表于 2023-7-3 15:14
还是懵懵懂懂的。
我觉得使用自动菜单,RUN 前后都不要变更启动根。
title run-2011yaya2007777-pe

这命令无法成功执行

点评

“find --set-boot /EFI/grub/RUN” 此句中有个笔误,改成 --set-root 就可以啦  详情 回复 发表于 2023-7-4 10:04
回复

使用道具 举报

474#
发表于 2023-7-4 09:37:39 | 只看该作者
本帖最后由 captain_g 于 2023-7-4 09:40 编辑
liuzhaoyzz 发表于 2023-7-3 19:11
wintoflash不是回答过你的问题了吗。

1、bitlocker加密的硬盘,即使你能够从优盘进入PE,进去之后硬盘 ...

你没仔细看过吧?

目的主要是回复482#;

还有BTL锁住的是(hd2,0),并不是(hd2);

用来测试的 wim 文件在 (hd2,4) 上;

同样的菜单在两台电脑上成功,第三台电脑上失败;

仔细比较三台电脑,除了第三台电脑有 BTL 锁住 (hd2,0) 这点外,实在没有其他值得怀疑的地方;
回复

使用道具 举报

475#
发表于 2023-7-4 10:04:00 | 只看该作者
chen463 发表于 2023-7-4 09:09
这命令无法成功执行

“find --set-boot /EFI/grub/RUN” 此句中有个笔误,改成 --set-root  就可以啦
回复

使用道具 举报

476#
发表于 2023-7-4 10:55:28 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-4 11:28 编辑
2011yaya2007777 发表于 2023-7-3 15:14
还是懵懵懂懂的。
我觉得使用自动菜单,RUN 前后都不要变更启动根。
title run-2011yaya2007777-pe


root根以前普通菜单都是可以随意设置的呀,因为/PE/目录不知道在哪个盘符,所以要find --set-root ls /PE/,现在的问题是run找不到NTBOOT所在的盘符,导致运行出错,以前有版本run内部打包了NTBOOT,此问题不会存在,但分离版就可能会存在,希望run内部调用NTBOOT的时候,固定NTBOOT的盘符,比如%boot_dev%/EFI/grub/ext/NTBOOT,我不知道有什么内部变量是确定g4ebootx64.efi的路径的,应该用这个变量写死。
前面2011whp有提过。
%@boot%/EFI/grub/ext/NTBOOT这样子是否可行?
回复

使用道具 举报

477#
 楼主| 发表于 2023-7-4 11:11:28 来自手机 | 只看该作者
初步判断是内存被污染了。返回主菜单时,执行root只显示了一行信息,另一行丢失。再执行find,不显示任何内容。所以,这时候查找ntboot,返回bs= 。这时根是 /pe/。

点评

title run-2011yaya2007777-pe-1 find /EFI/grub/ext/RUN command --set-path=/PE/ set highest=yes command /EFI/grub/ext/RUN --mem --top --set-showsize=0 --automenu /PE/ boot title run-2011yaya2007  详情 回复 发表于 2023-7-4 12:10
有问题呀?找NTBOOT,为什么会在%@root%里面找?为什么不是在%@boot%里面找?%@boot%说简单点就是g4ebootx64.efi所在的盘符,root应该可以随意设置啊。  详情 回复 发表于 2023-7-4 11:39
回复

使用道具 举报

478#
 楼主| 发表于 2023-7-4 11:20:15 来自手机 | 只看该作者
自动菜单,他会判断有几个磁盘,哪个分区有 /PE/ 目录。
回复

使用道具 举报

479#
发表于 2023-7-4 11:39:42 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2023-7-4 11:42 编辑
2011yaya2007777 发表于 2023-7-4 11:11
初步判断是内存被污染了。返回主菜单时,执行root只显示了一行信息,另一行丢失。再执行find,不显示任何内 ...


有问题呀?找NTBOOT,为什么会在%@root%里面找?为什么不是在%@boot%里面找?%@boot%说简单点就是g4ebootx64.efi所在的盘符,NTBOOT肯定要放在与g4ebootx64.efi同一个分区分区才行啊。root应该可以随意设置啊。
回复

使用道具 举报

480#
发表于 2023-7-4 11:41:22 | 只看该作者
本帖最后由 2011whp 于 2023-7-4 18:26 编辑

g4e.efi 的分区 在 ?_BOOT里,            很稳定
跟 menu.lst  所在分区  @boot  (bd) 相对稳定
root  随时动

上面的 三个 刚启动时  是 一样的
现行 规则,也算不上 是缺点,为了兼容 保持 即可
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-11 21:30

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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