无忧启动论坛

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

[原创] GRUB2 UEFI 下的磁盘仿真

    [复制链接]
1#
发表于 2019-11-15 06:40:00 | 显示全部楼层
本帖最后由 wuwuzz 于 2019-11-15 06:42 编辑

首先,感谢楼主的辛勤劳动,开发了优秀的MAP功能;

其次,报告BUG。(64位)MAP U盘上的ISO,如果
本机有SATA光驱,或U盘上有USB光驱,那么启动时,
未能准确区分路径,路径似乎指向了SATA光驱/USB光驱,
而不是我们期望的MAP虚拟CD,内容不对。

22.jpg (103.08 KB, 下载次数: 250)

usbCD

usbCD

1.jpg (158.63 KB, 下载次数: 218)

SATACD

SATACD

点评

能否提供这个iso给我测试一下? 体积大不方便上传的话可以只提供“ISO壳“,就是删掉里面的wim之类的,只保留引导.  详情 回复 发表于 2019-11-15 06:59
回复

使用道具 举报

2#
发表于 2019-11-15 10:26:34 | 显示全部楼层
本帖最后由 wuwuzz 于 2019-11-15 18:24 编辑

楼主,你好!

不需这样麻烦。两个ISO都是本坛PE区zheng0502同学的
作品,两个高楼贴子里面的。PE16就是那个
win10 16299  PE,2019年更新。PE17就是win10
17763 PE。我现在没在机器旁,手机上网,找链接
困难,不然就直接发链接了。

这两个ISO单独MAP启动都没问题
(在没有usb光驱和机械光驱的时候),

一旦放到有光驱的环境,再MAP就会出现
上述路径指向问题

点评

那不用找链接了。 路径是没问题的,只是uefi固件没有成功启动里面的efi文件。 另外我看到你用的应该是旧版本的grub2  详情 回复 发表于 2019-11-15 10:41
回复

使用道具 举报

3#
发表于 2019-11-15 10:34:51 | 显示全部楼层
我找一下链接
回复

使用道具 举报

4#
发表于 2019-11-15 10:49:09 | 显示全部楼层
用的是顶楼前几天(11.07?)发布的grub2。
(不支持32位的那个),我看现在编辑日期还是11.07,
难道附件换了?

点评

一楼帖子没有任何附件啊,老版本的早就删了,你从哪里下载到的? 现在的下载链接是github上的啊,下载之后执行批处理生成efi的。https://github.com/aIive/builds/archive/master.zip 国内镜像:https://  详情 回复 发表于 2019-11-15 11:02
回复

使用道具 举报

5#
发表于 2019-11-15 12:14:23 | 显示全部楼层
抱歉抱歉,引发歧义了。我的意思就是说1楼的
master.zip链接。用的也是一楼的定制命令。既然
master.zip的实体已变,今天晚上有空我再重新升级
一下grub2。
回复

使用道具 举报

6#
发表于 2019-11-15 18:25:51 | 显示全部楼层
真是年龄大了,老是记忆出错。

PE ISO链接找到了,是zheng0502同学的 [经典win10PE]网络版。已更正156#的错误。


  WinPE10 x64、x86 16299
[发布] 【经典 PE10】WinPE10x64、x86(网络﹨维护版)支持 BIOS、EFI 双启和 NVME 固态硬盘   
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=413733


WinPE10 x64、x86 17763
[分享] 【经典 P10】Win10PEx64、x86,含常规工具+制作个性(PE)工具,网络、BIOS+EFI 双启     
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=414556
回复

使用道具 举报

7#
发表于 2019-11-16 08:15:40 | 显示全部楼层
本帖最后由 wuwuzz 于 2019-11-16 08:40 编辑

换用20191114新版grub2测试,没成功。换U盘也是这个结果。
USB CD环境下的就不上图了,SATA CD环境如下图。

其中:
USB CD是AMI UEFI环境、海尔S4笔记本;
SATA CD是Insyde UEFI环境,HP pro G4笔记本

30.jpg (144.4 KB, 下载次数: 321)

SATACD

SATACD

点评

研究了一下,发现VmWare还有我的电脑上 如果有两个或多于两个光盘(不论是虚拟的还是真实的) 好像UEFI只能访问第一个光盘里面的内容。 在虚拟机里面,我测试了以下情况: SATA CD + SATA CD 认不出第二个盘里面  详情 回复 发表于 2019-11-19 14:48
收到,辛苦了。  发表于 2019-11-16 09:05
回复

使用道具 举报

8#
发表于 2019-11-16 11:00:24 | 显示全部楼层

谢谢楼上提供样例。

看来需要更多的 带光驱机器(盘) 条件下的测试情况。

如果是普遍现象,则需更深入地排查原因了......
回复

使用道具 举报

9#
发表于 2019-11-16 11:22:31 | 显示全部楼层
@wintoflash

才看到回复。老大开发才是费神,真正的辛苦。 千万千万注意量力而行,不要成为负担,不要赶进度。
G4D的主要开发者不点拖垮了身体,yaya最近的精力情形也不大好? 我真的感到伤心和惋惜。
现在老大进行这么重要的工作,一定一定要保持良好的健康状态,这样grub2 UEFI磁盘仿真才有希望。
回复

使用道具 举报

10#
发表于 2019-11-19 19:35:54 | 显示全部楼层

HP G4本物理上有1个SATA CD,而优盘通过量产可以控制有无USB CD。
因此,最后可以人为做成:2光驱或1光驱的环境。以前报告图片中,都是
1光驱的环境。


同一台电脑SATA CD +USB CD 两光驱的话,都可以访问(参考下图)。
当然map启动第3光盘还是失败。


2CD.jpg (147.74 KB, 下载次数: 216)

2CD

2CD
回复

使用道具 举报

11#
发表于 2019-11-20 07:36:11 | 显示全部楼层
为方便测试对比,营造了3光驱环境做实验:

第1 USBCD  装经典Win10PE V16
第2 USBCD  装微PEwin10
第3 SATACD 装普通数据CD,只用来对比,不做启动用

一、3个光驱,在Insyde UEFI/grub2环境都可访问。
二、BIOS下,第1、第2 USBCD均可正常启动,进不同PE;
但在UEFI下,虽可选不同的USBCD,但实际都是进第1 USBCD PE。



1a.jpg (243.12 KB, 下载次数: 236)

3CD1

3CD1

2a.jpg (67.61 KB, 下载次数: 225)

3CD2

3CD2

点评

是光盘EFI程序本身的限制。 MS 的 boot*.efi 不支持 多光盘; 只支持第一个光盘。用Linux光盘,多少个都没问题。  详情 回复 发表于 2019-11-20 23:59
辛苦了。 这个测试说明: 光盘本身是可以访问的。 光盘的eltorito启动区是访问错误的。 那这就麻烦了。因为bootmgfw.efi是需要读eltorito的。 似乎除了在启动的时候不插光盘,没有其他的解决办法。 如果有  详情 回复 发表于 2019-11-20 08:28
回复

使用道具 举报

12#
发表于 2019-11-20 12:53:20 | 显示全部楼层
shell状态下,能够看到不同的bootx64.efi
fs1:\efi\boot\bootx64.efi
fs2:\efi\boot\bootx64.efi

也能分别执行,但最后的结果还是进第1个PE。

点评

那就无解了  详情 回复 发表于 2019-11-20 17:42
回复

使用道具 举报

13#
发表于 2020-11-5 19:18:06 | 显示全部楼层
@wintoflash

很抱歉,下午单位组织学习,未及时看到帖子回复。

很好的改进! map -f选项有效,能够成功将U盘上的ISO与其他光驱ISO区分开。

示例图有意构造了复杂干扰环境:
是USB光驱+SATA光驱+量产光驱都存在的条件下,U盘DISK部分MAP时的情况。



回复

使用道具 举报

14#
发表于 2020-11-6 22:36:44 | 显示全部楼层
liuzhaoyzz 发表于 2020-11-6 22:03
在这一点上,你跟我的用法完全一样。我都是尽可能抛弃USB启动。

我和你相反,USB是我的爱好(由此发散至USB启动、BIOS/UEFI中USB启动代码...等知识点),而U盘收藏了一大堆,把玩。



点评

试一下  详情 回复 发表于 2020-11-24 19:32
回复

使用道具 举报

15#
发表于 2020-11-6 22:37:23 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-6 22:39 编辑
hilsonma 发表于 2020-11-6 18:22
不管带不带 --mem,始终都是读一次到内存,区别只是前者先读再从内存启动,后者边启动边读。整体效率应该 ...

高速U盘的读速度,要超过机械硬盘读速度...

点评

不是高速优盘,是普通的优盘,读写没有机械硬盘快。  详情 回复 发表于 2020-11-6 22:46
回复

使用道具 举报

16#
发表于 2020-11-6 22:50:01 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-6 22:51 编辑
liuzhaoyzz 发表于 2020-11-6 22:46
不是高速优盘,是普通的优盘,读写没有机械硬盘快。

平时都是用高速U盘来做,用低速U盘无法忍受、浪费时间。

更典型的例子,如WTG、便携LINUX,用高速U盘是必然。

除非是特殊测试固件参数,才用特定的USB2.0低速盘。

回复

使用道具 举报

17#
发表于 2020-11-6 22:58:44 | 显示全部楼层
wintoflash 发表于 2020-11-6 22:50
如果启动的是winpe,不带--mem,bootmgfw.efi会要求一块内存,把wim读到内存。
如果带--mem,grub2先要 ...

这个知识点不错,多谢介绍。
回复

使用道具 举报

18#
发表于 2020-11-24 20:19:35 | 显示全部楼层

测试结果如下图:



点评

map之后进uefi shel看看,有没有 CD(1,12b,75245) 的设备挂载到 FS0 FS1 之类的。  详情 回复 发表于 2020-11-24 20:31
回复

使用道具 举报

19#
发表于 2020-11-24 21:00:29 | 显示全部楼层
wintoflash 发表于 2020-11-24 20:31
map之后进uefi shel看看,有没有 CD(1,12b,75245) 的设备挂载到 FS0 FS1 之类的。

有挂载,如下图



点评

cd fs1 然后启动 \EFI\BOOT\BOOTX64.EFI 试试?  详情 回复 发表于 2020-11-24 21:02
回复

使用道具 举报

20#
发表于 2020-11-24 21:08:19 | 显示全部楼层
wintoflash 发表于 2020-11-24 21:02
进 fs1
然后启动 \EFI\BOOT\BOOTX64.EFI 试试?

出错

fs1:>dir
can not read from directory fs1:\ Invaild Parameter
can not access dircetory fs1:\


点评

那应该是UEFI有毛病,没救了。  详情 回复 发表于 2020-11-24 21:20
回复

使用道具 举报

21#
发表于 2020-11-24 21:23:11 | 显示全部楼层
wintoflash 发表于 2020-11-24 21:20
那应该是UEFI有毛病,没救了。

ok
回复

使用道具 举报

22#
发表于 2020-11-24 21:37:33 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-24 21:38 编辑
2011yaya2007777 发表于 2020-11-24 21:23
你在两台电脑测试,一台成功,一台失败,是使用的一样的ISO镜像吗?如果不是,可否把失败的镜像空壳打包上 ...

是同一U盘、同一ISO。

今天所说,都是用的G4E帖504#链接那个win10 PE V17。

等有时间,我再换个U盘试试。


回复

使用道具 举报

23#
发表于 2020-11-25 07:21:44 | 显示全部楼层
2011yaya2007777 发表于 2020-11-24 21:23
你在两台电脑测试,一台成功,一台失败,是使用的一样的ISO镜像吗?如果不是,可否把失败的镜像空壳打包上 ...

换了U盘,换了ISO(这次用的是微PE X64V2版,官网下载的)
AMI UEFI、Insyde UEFI均使用同一U盘、同一ISO,做对比测试。

Insyde UEFI仍不正常。







点评

用 Ventoy 能不能在 Insyde UEFI 启动这个 ISO?  详情 回复 发表于 2020-11-25 11:06
回复

使用道具 举报

24#
发表于 2020-11-25 13:19:51 | 显示全部楼层
wintoflash 发表于 2020-11-25 11:06
用 Ventoy 能不能在 Insyde UEFI 启动这个 ISO?

ventoy以前没用过,临时下载测试了一下。

有点奇怪,前面提到的w10pe17.iso、wepev2.iso,
用ventoy在insyde UEFI下均可启动。

它好像是建了个EFI分区,用的grub2。
grub.cfg内容比较复杂,没仔细研究
用的是哪个命令映射ISO。




点评

初步看了一下,似乎用的是wimboot。 这个就与我们的主题ISO偏离了...  详情 回复 发表于 2020-11-25 15:54
回复

使用道具 举报

25#
发表于 2020-11-25 15:54:38 | 显示全部楼层
本帖最后由 wuwuzz 于 2020-11-25 15:56 编辑
wuwuzz 发表于 2020-11-25 13:19
ventoy以前没用过,临时下载测试了一下。

有点奇怪,前面提到的w10pe17.iso、wepev2.iso,

初步看了一下,似乎用的是wimboot。

这个就与我们的主题map ISO偏离了...

点评

Ventoy也是map ISO,并不是Wimboot。 Ventoy map的代码和grub2 map的代码虽然一个是EDK框架下,一个是grub2框架下。 但是底层调用的都是标准UEFI的接口。理论上并没有什么却别。可能细节部分的处理有点差异。 这  详情 回复 发表于 2020-11-28 19:21
试试这个。注意,要加 -a 参数。 map -a /xxx.iso map -a -f /xxx.iso  详情 回复 发表于 2020-11-28 12:43
回复

使用道具 举报

26#
发表于 2020-11-28 18:45:26 | 显示全部楼层
wintoflash 发表于 2020-11-28 12:43
试试这个。注意,要加 -a 参数。
map -a /xxx.iso
map -a -f /xxx.iso

V20201128版测试结果如下:

一、ISO测试,AMI UEFI、Insyde UEFI均出现新的出错提示信息
Failed to connect DISK I/O driver
Failed to connect Parttition driver

但是,AMI UEFI能够继续load启动成功;Insyde UEFI与以前一样load image失败。



二、新增ventoy克隆盘ima测试。(测试目的:为做套娃ISO做铺垫)
U盘正常安装ventoy(二分区。隐藏UEFI引导区+数据分区,数据分区存放PE ISO),整盘克隆为ima。
map --type=HD /ventoydsk.ima,在AMI UEFI下启动ventoy--进而启动PE ISO成功;在INSYDE UEFI下失败。




三、另外,此版本read命令失效。



回复

使用道具 举报

27#
发表于 2020-11-28 20:54:00 | 显示全部楼层
longpanda 发表于 2020-11-28 19:21
Ventoy也是map ISO,并不是Wimboot。
Ventoy map的代码和grub2 map的代码虽然一个是EDK框架下,一个是gr ...

L大,您好!

一、因为这个Insyde UEFI本身问题很多,grub*  PE map一直不成功,
而wim能成功,加上我看vt的grub.cfg脚本里面频繁出现wim/patch,
联想瞎猜的。

二、自从W大提了一下vt,而vt在Insyde UEFI下又能成功启动PE,我这
2天一直在折腾vt(的bootx64.efi和live CD上的bootx64.efi,无果)。最后就是
上面的笨方法--整盘克隆vt盘img。

虽然知道她的设计是装在DISK设备上用,我还是梦想ventoy能够做为
自制可引导光盘ISO的引导器(壳子),里面再存放PE ISO,也就是ISO嵌套
,就像下面这样。



为什么这么痴迷于光驱引导? 因为我手上的U盘固件已经能够支持多光驱,
但其潜力能否充分发挥,取决于UEFI下win PE能否按正确光驱顺序引导。
替代MS boot*光盘引导的grub2 map -f、g4e最近版(应该是与vt同源)在
AMI UEFI上取得了满意的效果。只是回溯Insyde UEFI时,map卡壳。


现在vt给了希望,于是就转弯抹角测试一下看看借助vt的力量能否解决...


点评

辛苦了,请再测试一下。 map -f /xxx.iso 和 map -a -f /xxx.iso 都要测试。 我提供的这个efi文件,不带read模块。是因为你硬盘上有 read.mod,它自己加载了。由于 grub2 不能混用模块,才出现这个报错。  详情 回复 发表于 2020-11-29 09:40
使用ntboot/wimboot直接引导wim镜像是不是就不用纠结光驱问题了  详情 回复 发表于 2020-11-29 08:06
回复

使用道具 举报

28#
发表于 2020-11-29 11:38:14 | 显示全部楼层
wintoflash 发表于 2020-11-29 09:40
辛苦了,请再测试一下。

map -f /xxx.iso 和 map -a -f /xxx.iso 都要测试。

测试结果如下:
AMI UEFI成功,Insyde UEFI失败
















点评

那我暂时没有什么办法了。  详情 回复 发表于 2020-11-29 13:01
回复

使用道具 举报

29#
发表于 2020-11-29 11:45:18 | 显示全部楼层
江南一根葱 发表于 2020-11-29 10:11
玩量产的一般不玩这个
不过如果有维护dell的老服务器,只能玩量产,不量产装系统会纠结死,对了,还有水 ...

玩量产的也玩这个。

wimboot/ntboot也试过。麻烦但有效,把PE ISO拆开,把wim提出来。

以grub2为引导,重做ISO,wmboot引导*.wim...


回复

使用道具 举报

30#
发表于 2020-11-29 14:07:42 | 显示全部楼层
wintoflash 发表于 2020-11-29 13:01
那我暂时没有什么办法了。

OK,老大辛苦了。

不知L的ventoy用了啥特殊的map方法能够成功,他似乎是另行开发了vt系列新命令...

点评

我发的测试版本用的就是类似ventoy的解决方法。  详情 回复 发表于 2020-11-29 14:52
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-20 01:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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