无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: wintoflash

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

    [复制链接]
发表于 2019-11-14 17:17:35 | 显示全部楼层
wintoflash 发表于 2019-11-14 16:10
现在32位UEFI下map模块也能正常工作了,感兴趣的可以下载。

虽然没有32位的测试环境,但为这又一新增功能点赞
回复

使用道具 举报

发表于 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,内容不对。

usbCD

usbCD

SATACD

SATACD

点评

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

使用道具 举报

 楼主| 发表于 2019-11-15 06:59:15 | 显示全部楼层
wuwuzz 发表于 2019-11-15 06:40
首先,感谢楼主的辛勤劳动,开发了优秀的MAP功能;

其次,报告BUG。(64位)MAP U盘上的ISO,如果

能否提供这个iso给我测试一下?
体积大不方便上传的话可以只提供“ISO壳“,就是删掉里面的wim之类的,只保留引导.
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2019-11-15 10:41:49 | 显示全部楼层
wuwuzz 发表于 2019-11-15 10:26
楼主,你好!

不需这样麻烦。两个ISO都是本坛PE区xmzhqw的

那不用找链接了。
路径是没问题的,只是uefi固件没有成功启动里面的efi文件。
另外我看到你用的应该是旧版本的grub2
回复

使用道具 举报

发表于 2019-11-15 10:44:23 | 显示全部楼层
很给力!
回复

使用道具 举报

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

使用道具 举报

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

一楼帖子没有任何附件啊,老版本的早就删了,你从哪里下载到的?
现在的下载链接是github上的啊,下载之后执行批处理生成efi的。https://github.com/aIive/builds/archive/master.zip
国内镜像:https://gitee.com/a1ive/builds/repository/archive/master.zip
-----------------------------
虽然说最新版估计也不能解决你的问题。

-----------------------------
这个问题不太好解决,不过还是有可能解决的。

回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 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笔记本

SATACD

SATACD

点评

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

使用道具 举报

发表于 2019-11-16 09:13:33 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-11-21 14:08 编辑

我似乎碰到过类似的问题,在vmware虚拟机中,如果在vmware光驱中挂载个pe1.iso,然后选择uefi-grubx64.efi启动,map另一个pe2.iso,似乎却从pe1.iso启动了,设置的是硬盘优先引导,但我明明选择了pe2.iso启动,而且也有map pe2.iso到内存的进度条,为什么却从pe1.iso启动?如果vmware不挂载光驱就没问题。
回复

使用道具 举报

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

谢谢楼上提供样例。

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

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

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 2019-11-19 14:48:16 | 显示全部楼层
本帖最后由 wintoflash 于 2019-11-19 14:49 编辑
wuwuzz 发表于 2019-11-16 08:15
换用20191114新版grub2测试,没成功。换U盘也是这个结果。
USB CD环境下的就不上图了,SATA CD环境如下图 ...

研究了一下,发现VmWare还有我的电脑上
如果有两个或多于两个光盘(不论是虚拟的还是真实的)
好像UEFI只能访问第一个光盘里面的内容。
在虚拟机里面,我测试了以下情况:
SATA CD + SATA CD 认不出第二个盘里面的内容,不论怎么调整,也根本没办法直接从第二个盘启动。

SATA CD + map CD  无法读取第二个盘里面的内容

map CD + map CD  同上
深度截图_选择区域_20191119143540.png
在实体机,我测试了以下情况:

map CD + map CD  同上

也就是说UEFI固件只支持一个光盘。

话说你的USB CD 和SATA CD是不是在同一台电脑上同时存在的,能不能访问这两个CD的内容?

如果UEFI固件都是只支持一个光盘,那估计就没辙了。


回复

使用道具 举报

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

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


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


2CD

2CD
回复

使用道具 举报

发表于 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。



3CD1

3CD1

3CD2

3CD2

点评

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

使用道具 举报

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

第1 USBCD  装经典Win10PE V16

辛苦了。
这个测试说明:
光盘本身是可以访问的。
光盘的eltorito启动区是访问错误的。

那这就麻烦了。因为bootmgfw.efi是需要读eltorito的。
似乎除了在启动的时候不插光盘,没有其他的解决办法。

如果有时间,还可以进行下面的测试:
在grub命令行输入shell,进入uefi shell,在shell里面尝试启动光盘上的efi文件。


回复

使用道具 举报

发表于 2019-11-20 08:37:31 | 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

发表于 2019-11-20 11:02:40 | 显示全部楼层
uefi下多cd-rom启动好像是有点啥问题。试了两个U盘各有一个usb-cdrom,uefi下单独启动都正常。如果同时插上电脑,选慧荣usb-cdrom的uefi启动,报个奇怪的错,如果启动银灿usb-cdrom的uefi倒是正常。 0.jpg
1.JPG

点评

现在增加了一个选项来屏蔽光驱 例如 屏蔽(cd0): 屏蔽掉所有光驱后,应该就能启动了。  详情 回复 发表于 2020-5-12 20:39
BOOTMGR is missing 应该是 Legacy-BIOS 的报错吧  详情 回复 发表于 2019-11-20 17:41
回复

使用道具 举报

发表于 2019-11-20 12:09:39 | 显示全部楼层
楼上这提示应该是传统引导模式的吧。。
回复

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2019-11-20 14:27:50 | 显示全部楼层
NTBOOT移植成功。

点评

强!  详情 回复 发表于 2019-11-20 15:01
太强了,神速. 以后就多了一个选择. 再问一下是BIOS和EFI下的GRUB2都能用吗  详情 回复 发表于 2019-11-20 14:40
回复

使用道具 举报

发表于 2019-11-20 14:40:02 | 显示全部楼层

太强了,神速.

以后就多了一个选择.

再问一下是BIOS和EFI下的GRUB2都能用吗
回复

使用道具 举报

发表于 2019-11-20 14:42:12 | 显示全部楼层
借楼问一下GRUB2有没有比较好的学习教程.有时间我也想来学习下grub2

官网只是简单的介绍,有好多命令我看不明白是怎么使用的.

点评

我是看了这篇,然后就慢慢上手了。 http://www.jinbuguo.com/linux/grub.cfg.html 时不时也参考一下官方文档。 http://www.gnu.org/software/grub/manual/grub/grub.html 有时还需要网上搜索补充学习,如正  详情 回复 发表于 2019-11-21 14:20
UEFI BIOS下要用汇编,这个我玩不转。 GRUB2目前官方文档有点过时,确实是个问题。 我个人觉得GRUB2的脚本比GRUB4DOS简单。 语法类似bash shell,但是阉割了很多,比如不支持管道。 另外我修改的版本带Lua模  详情 回复 发表于 2019-11-20 17:47
回复

使用道具 举报

发表于 2019-11-20 15:01:11 | 显示全部楼层
本帖最后由 ddsony 于 2019-11-20 15:12 编辑

强!VHDX有搞头了。顺带问一下:动态vhd和vhdx能够在深度隐藏分区map出来的虚拟盘里被ntboot启动吗?
好象动态vhd和vhdx的动态扩展要通过文件系统,这样是不是不能深度隐藏了呢?

点评

那要看你是怎么隐藏的。 首先,bootmgfw.efi要能读到vhd, 其次,里面的Windows要能读到自己。 具体能不能,不清楚。反正UD那种肯定不行  详情 回复 发表于 2019-11-20 17:44
回复

使用道具 举报

发表于 2019-11-20 15:23:14 | 显示全部楼层
照此速度,各大神的SISO,RUN,VHDBOOT......等模块收入囊中也指日可待。一个全新的grub2扑面而来。
回复

使用道具 举报

 楼主| 发表于 2019-11-20 17:41:53 | 显示全部楼层
adef 发表于 2019-11-20 11:02
uefi下多cd-rom启动好像是有点啥问题。试了两个U盘各有一个usb-cdrom,uefi下单独启动都正常。如果同时插上 ...

BOOTMGR is missing 应该是 Legacy-BIOS 的报错吧

点评

之所以说奇怪,是因为选的uefi启动项,应该跟bootmgr没啥关系,而且bootmgr本身也存在。。。  发表于 2019-11-20 22:18
回复

使用道具 举报

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

那就无解了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 07:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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