无忧启动论坛

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

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

    [复制链接]
481#
发表于 2020-12-10 18:33:11 | 只看该作者
对grub2、G4E, 同步测试svbus。
结果迷乱(遇到兼容性问题,可能涉及到UEFI版本、U盘固件、SVBUS、grub*多种因素)。
在某些UEFI环境中,grub2 map VHD后,不能成功进入桌面,卡在转圈画面或重启。

详见G4E帖756楼
http://bbs.wuyou.net/forum.php?m ... p;extra=#pid4192374


点评

run.efi是很久以前弄的,出现问题应该和grub2没什么关系。应该是 SVBus 不太靠谱。 看到你的屏幕最上方有 "error: symbol `grub_getline` not found"。你是不是加载了老版本grub2的模块。这样做不行。  详情 回复 发表于 2020-12-10 19:03
回复

使用道具 举报

482#
 楼主| 发表于 2020-12-10 18:33:48 | 只看该作者
liuzhaoyzz 发表于 2020-12-10 17:11
不是这样子的。
以我的笔记本为例,必须要一个FAT32分区用作UEFI启动才能添加UEFI序列,然后VHD之外有一 ...
以我的笔记本为例,必须要一个FAT32分区用作UEFI启动才能添加UEFI序列,然后VHD之外有一个FAT32分区,VHD里面只需要一个MBR格式的NTFS分区即可。最主要的是主板→第一引导bootmgfw.efi要能够被识别,识别之后,VHD里面是否有FAT32分区完全不影响启动,本人亲测。


这和我说的 "NTBOOT" 方式一样。

你还是没有理解 map 到底做了什么。map 是创建了一整个虚拟的硬盘 (或光盘、软盘),并且模仿固件的启动方法,启动这个硬盘。
至于硬盘里面具体是什么系统,那不重要。你说要不要 bootx64.efi?

看起来你喜欢百度盘?

我买了百度云的 SVIP(用来下片)。

分享个更小的442MB WIN8.1.ESD,飞天舞做的,当时也是我们为了测试UEFI-RAMOS制作的,C盘安装之后只有1.9GB!

谢谢分享,挺不错的。适合用来做测试。
回复

使用道具 举报

483#
发表于 2020-12-10 18:46:08 | 只看该作者
wintoflash 发表于 2020-12-10 18:33
这和我说的 "NTBOOT" 方式一样。

你还是没有理解 map 到底做了什么。map 是创建了一整个虚拟的硬 ...

我说的不是map啊,我说的是map --mem --rt xxx.vhd啊。一样的吗?
vhd里面肯定是有bootx64.efi的。
回复

使用道具 举报

484#
 楼主| 发表于 2020-12-10 18:53:19 | 只看该作者
liuzhaoyzz 发表于 2020-12-10 18:46
我说的不是map啊,我说的是map --mem --rt xxx.vhd啊。一样的吗?
vhd里面肯定是有bootx64.efi的。

都一样。只不过加上--mem,先把vhd读到内存。
回复

使用道具 举报

485#
 楼主| 发表于 2020-12-10 19:03:59 | 只看该作者
wuwuzz 发表于 2020-12-10 18:33
对grub2、G4E, 同步测试svbus。
结果迷乱(遇到兼容性问题,可能涉及到UEFI版本、U盘固件、SVBUS、grub*多 ...

安装了656#朱玛SVBUS后,形成新的测试版VHD,该测试版VHD在grub2下,用run.efi、NTBOOT,
随机出现进入失败,表现为长时间转圈、然后重启。

run.efi是很久以前弄的,出现问题应该和grub2没什么关系。应该是 SVBus 不太靠谱。

问题3:
3267主控64G盘、3268主控32G盘在AMI UEFI V2017下,G4E\grub2均可以成功进入VHD win10桌面。
在AMI UEFI V2016下不能成功进入,表现为win长时间转圈,然后重启。(G4E雷同,不再单调截图)

看到你的屏幕最上方有 "error: symbol `grub_getline` not found"。你是不是加载了老版本grub2的模块。这样做不行。

问题4:
3267主控64G盘在AMI UEFI V2017下,G4E\grub2均可以成功进入VHD win10桌面。
3267主控32G盘在AMI UEFI V2017下,G4E\grub2均不能成功进入VHD win10桌面,
表现为win转圈一段时间后,U盘灯指示已不读盘,而win一直持续长时间转圈。

你不加载到内存也能启动VHD? 我这边不行,会蓝屏。

问题5:
曾经成功的U盘、UEFI环境,g4e/grub2随机出现不能进入桌面(win一直转圈,重启)。
而一旦g4e引导能够成功进入桌面,则再次使用grub2引导也一定能成功进入。

你有没有用grub4dos启动grub2再进行map,或者在grub2下map之后再启动另一个grub2/grub4dos进行map?
因为svbus搜索的内存位置是写死的(0x9f000),这么搞会造成干扰。
如果你只是想启动一个winpe iso/img,那么在 grub2 下可以加上 '--no_g4d' ('-g') 参数,这样不向 0x9f000 写东西,避免干扰。
比如:map -f -g /xxx.iso
回复

使用道具 举报

486#
发表于 2020-12-10 20:08:22 | 只看该作者
  • 通过ipxe高速下载并网启3g大的ramosvhd成功
回复

使用道具 举报

487#
发表于 2020-12-10 20:59:13 | 只看该作者
本帖最后由 wuwuzz 于 2020-12-10 21:01 编辑
wintoflash 发表于 2020-12-10 19:03
run.efi是很久以前弄的,出现问题应该和grub2没什么关系。应该是 SVBus 不太靠谱。

1.是的,原来启动VHD没什么问题,引入SVbus后,故障率增加了。

2.是的。grub2菜单项中,设置了read暂停,用于查看执行步骤。
而新版grub2没把read模块包进去。为了节省时间,我直接引用
楼层中发的bootx64.efi,没有mk-image重新制作。

3.不用mem参数也能启动VHD(win10 VHD里已经安装了Svbus),没有蓝屏。

4.没有。g4e、grub2都是分别重新启动,没有交叉。
我的意思是说:

在我的测试环境里,如果一开始用grub2启动VHD不成功,
那么就重启,试着换用g4e去启动,如果g4e启动成功了,
此时再重启,用grub2引导启动VHD,一般都可以成功。

同时,这也意味着,如果g4e未能启动VHD成功,那么
grub2不能成功启动VHD的问题,就只能一直挂着。
像是连环套。


我不太确定,我这个VHD是否与机器环境密切关联,
换一台机器的话,VHD启动时会重新出现“正在准备设备”
进度提示。



5.目的不是为了启动ISO/IMG,而是为了测试VHD。

点评

感觉这个也可能和 SVBus 驱动有关。  详情 回复 发表于 2020-12-11 10:37
回复

使用道具 举报

488#
 楼主| 发表于 2020-12-11 10:37:16 | 只看该作者
wuwuzz 发表于 2020-12-10 20:59
1.是的,原来启动VHD没什么问题,引入SVbus后,故障率增加了。

2.是的。grub2菜单项中,设置了read暂 ...

4.没有。g4e、grub2都是分别重新启动,没有交叉。
我的意思是说:

在我的测试环境里,如果一开始用grub2启动VHD不成功,
那么就重启,试着换用g4e去启动,如果g4e启动成功了,
此时再重启,用grub2引导启动VHD,一般都可以成功。

同时,这也意味着,如果g4e未能启动VHD成功,那么
grub2不能成功启动VHD的问题,就只能一直挂着。
像是连环套。


我不太确定,我这个VHD是否与机器环境密切关联,
换一台机器的话,VHD启动时会重新出现“正在准备设备”
进度提示。

感觉这个也可能和 SVBus 驱动有关。
回复

使用道具 举报

489#
发表于 2020-12-11 11:35:47 | 只看该作者
本帖最后由 2011whp 于 2020-12-11 11:40 编辑
江南一根葱 发表于 2020-12-10 14:20
efiload那个 ntfs驱动后会不会可以认ntfs分区里的

intel 就是这么造的(我想开源后,也是这样的),只是没人用,(我这么用了一段时间了
转到shell  认准 venhw虚拟控制器上的设备
回复

使用道具 举报

490#
发表于 2020-12-11 12:09:50 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-11 18:48 编辑

基于svbus驱动+grub4dos或grub2制作的UEFI-WIN10RAMOS和BIOS-WIN10RAMOS教程 - RAMOS - 无忧启动论坛 - Powered by Discuz! http://bbs.wuyou.net/forum.php?m ... 1&extra=#pid4192803
回复

使用道具 举报

491#
发表于 2020-12-11 16:56:42 来自手机 | 只看该作者
wintoflash 发表于 2020-12-10 18:33
这和我说的 "NTBOOT" 方式一样。

你还是没有理解 map 到底做了什么。map 是创建了一整个虚拟的硬 ...

VHD内部我调整为激活的FAT32+NTFS双分区,用g4e+ svbus成功启动了WIN7_RAMOS,但是总grub2加载就出错,命令行截图。1210版本的grub2

IMG_20201211_162712.jpg (33.75 KB, 下载次数: 155)

IMG_20201211_162712.jpg

IMG_20201211_162645.jpg (37.95 KB, 下载次数: 261)

IMG_20201211_162645.jpg

IMG_20201211_162703.jpg (36.55 KB, 下载次数: 225)

IMG_20201211_162703.jpg
回复

使用道具 举报

492#
 楼主| 发表于 2020-12-11 17:10:30 | 只看该作者
liuzhaoyzz 发表于 2020-12-11 16:56
VHD内部我调整为激活的FAT32+NTFS双分区,用g4e+ svbus成功启动了WIN7_RAMOS,但是总grub2加载就出错,命 ...

你是不是用grub4dos启动的grub2,或者用一个grub2 map之后又启动了另一个grub2?
回复

使用道具 举报

493#
发表于 2020-12-11 17:13:24 | 只看该作者
wintoflash 发表于 2020-12-11 17:10
你是不是用grub4dos启动的grub2,或者用一个grub2 map之后又启动了另一个grub2?

没有啊,启动的时候按F12键,直接从grub2引导的,g4e和grub2互不干扰。
回复

使用道具 举报

494#
 楼主| 发表于 2020-12-11 17:21:06 | 只看该作者
本帖最后由 wintoflash 于 2020-12-11 17:22 编辑
liuzhaoyzz 发表于 2020-12-11 17:13
没有啊,启动的时候按F12键,直接从grub2引导的,g4e和grub2互不干扰。

那为啥进grub2之后,内存0x9f000附近被占用了?
肯定有什么东西搞鬼了。
你先关机,再开机进grub2,手动敲命令 map 一个vhd,截图。
再关机,开机进grub2,手动敲命令 map 另一个 vhd,截图。
我就不信了,这还有什么区别?
主要关注这个的地址:
回复

使用道具 举报

495#
发表于 2020-12-11 18:12:00 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-11 18:15 编辑
wintoflash 发表于 2020-12-11 17:21
那为啥进grub2之后,内存0x9f000附近被占用了?
肯定有什么东西搞鬼了。
你先关机,再开机进grub2,手 ...

那台电脑是在办公室,现在没法测试了,我回家了。我估计是哪个vhd损坏了,中间死机了好多次,但是为啥用bootmgfw.efi直接引导那个vhd正常呢。

好消息! grub2+svbus+win8.1RAMOS启动成功!vhd里面也是用的激活的FAT32+NTFS分区双分区方案,单分区方案就是不行!WIN10单分区就可以啊,邪门!


32GB内存=vhd占用6GB+Windows使用了1.6GB+剩余可用24.3GB


svbus-uefi-win8.1-ramos.jpg (175.54 KB, 下载次数: 209)

svbus-uefi-win8.1-ramos.jpg
回复

使用道具 举报

496#
发表于 2020-12-12 08:31:21 | 只看该作者
本帖最后由 wuwuzz 于 2020-12-12 11:28 编辑
wintoflash 发表于 2020-12-10 19:03
run.efi是很久以前弄的,出现问题应该和grub2没什么关系。应该是 SVBus 不太靠谱。

“你不加载到内存也能启动VHD? 我这边不行,会蓝屏。”

我这里复现了ramos vhd这个蓝屏故障。

又新买了1个128G的3267盘,AMI UEFI V2017下,4G内存机环境。
G4E/Grub2可以成功map(不带mem参数)、启动我的25G 测试版fixwtg.vhd;也可以成功启动G4E帖中svbusPE img。
唯独W大提供的ramos VHD是半通过:g4e可以成功启动;grub2会蓝屏死机,错误码--不可访问的boot device。

并且,这个蓝屏故障影响很大(可能损坏了ramos VHD)。一旦出现蓝屏,再重新启动,用G4E引导这个VHD,也会蓝屏。

=============
map --type=HD  --rt /ramos.vhd.xz,直接map压缩文件也有问题,

1.在上述测试环境中,ramos.vhd.xz读取进度到100%,又重新从0%开始,一直死循环。

2.我在测试中好像是碰到了下面这种情况,不确定:
当已经存在/ramos.vhd时,map --type=HD  --rt /test/ramos2.vhd.xz
进行解压时,好像会破坏/ramos.vhd? 现象:当解压循环故障出现后,关机,冷启。
原来引导正常的/ramos.vhd,此时再引导,会蓝屏。
其中:ramos2.vhd.xz与ramos.vhd.xz相同。


回复

使用道具 举报

497#
发表于 2020-12-12 14:06:04 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-12 14:09 编辑
wintoflash 发表于 2020-12-11 17:21
那为啥进grub2之后,内存0x9f000附近被占用了?
肯定有什么东西搞鬼了。
你先关机,再开机进grub2,手 ...

内存0x9f000附近被占用了?你从哪里知道的?我没看到截图里面有0x9f000关键字啊?

485楼VHD是NTFS单分区,http://wuyou.net/forum.php?mod=r ... 2339&fromuid=298214

499楼VHD是激活的FAT32+NTFS双分区,http://wuyou.net/forum.php?mod=r ... 2979&fromuid=298214

是不是分区变了,导致内存占用变了。

昨天重启过好几次了,不清楚内存占用有没有变化。


另外,想请问下,有没有用类似NTBOOT之类的方法,虚拟一个FAT32启动盘,搭配SVBUS驱动,启动RAMOS?有没有可能实现?这个虚拟的FAT32启动盘,启动之后是否存在无所谓,只要能够完成启动的任务,他的使命就完成了。这样子VHD里面就不需要用双分区那么麻烦了,一般地winntsetup默认安装的都是单分区NTFS格式的,调整分区有点麻烦。
回复

使用道具 举报

498#
发表于 2020-12-12 16:43:00 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-12 17:56 编辑
wintoflash 发表于 2020-12-11 17:21
那为啥进grub2之后,内存0x9f000附近被占用了?
肯定有什么东西搞鬼了。
你先关机,再开机进grub2,手 ...


SX70211.vhd直接死机了。这个VHD,用G4E map --mem --top启动正常。





强制关闭电源,重启,另外一个200MB的固定大小的test.vhd也失败,直接上图,一张图分成左中右三部分拍照,拍电脑屏幕感觉有黑影,怎么把字体搞成带颜色的,前景色字体,我都是照抄。







回复

使用道具 举报

499#
 楼主| 发表于 2020-12-12 19:00:00 | 只看该作者
本帖最后由 wintoflash 于 2020-12-12 20:21 编辑
liuzhaoyzz 发表于 2020-12-12 16:43
SX70211.vhd直接死机了。这个VHD,用G4E map --mem --top启动正常。

grubx64.efi.tar.gz (678.81 KB, 下载次数: 6)
还有 @wuwuzz  试试这个。
按 左Ctrl+左Alt+F12 可截图,截图保存在某 FAT分区里面。

不要加载任何其他的模块。
回复

使用道具 举报

500#
发表于 2020-12-12 19:08:19 | 只看该作者
哈哈,起初我也遇到过你们在说的问题
我的解决过程是,pe下chkdsk一下vhd所在分区,然后强制trim一下vhd所在的SSD,重建一个vhd,问题解决
回复

使用道具 举报

501#
发表于 2020-12-12 20:30:40 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-12 21:18 编辑
江南一根葱 发表于 2020-12-12 19:08
哈哈,起初我也遇到过你们在说的问题
我的解决过程是,pe下chkdsk一下vhd所在分区,然后强制trim一下vhd所 ...


晚点试试看

试过了,chkdsk /f没用,从github下载grub2 1212版本结果一样。
回复

使用道具 举报

502#
发表于 2020-12-12 22:07:37 来自手机 | 只看该作者
        另外想请问下,grub2是否支持vdf镜像直接map?比如map xxx.vdf (hd0)这样子,我忘了以前的帖子了。
回复

使用道具 举报

503#
发表于 2020-12-12 22:34:18 | 只看该作者
wintoflash 发表于 2020-12-12 19:00
还有 @wuwuzz  试试这个。
按 左Ctrl+左Alt+F12 可截图,截图保存在某 FAT分区里面。

一、1212版测试结果如下:
svbusPE.img  无论加不加mem参数map,都可成功并进入桌面
fixwtg.vhd   我的装有svbus的25G VHD,不加mem参数,可成功map并进入桌面
ramos.vhd    与之前结果相同,G4E可成功map并进入桌面。重启,grub2 map启动仍然蓝屏出错。
                   且出错后,重启,换用G4E MAP和引导,也蓝屏。

   
   


二.后续增加了以下步骤:在蓝屏出错后,启动本地硬盘win10挂载ramos.vhd,对ramos.vhd的
EFI、NTFS分区,属性--工具--检查,未检查到错误。


点评

[attachimg]470575[/attachimg] 这里写的是 0x9d000,你在执行 "boot" 之前,执行 "hexdump (mem) -s 0x9d000" 查看一下内存。 还有,你说 grub4dos 可以不加载到内存正常启动,那先在 g4d 下 map,然后 chainlo  详情 回复 发表于 2020-12-13 10:09
回复

使用道具 举报

504#
发表于 2020-12-13 10:06:57 | 只看该作者
liuzhaoyzz 发表于 2020-12-12 20:30
晚点试试看

试过了,chkdsk /f没用,从github下载grub2 1212版本结果一样。

是vhd要重做,坏了,
我遇到的情况是启动失败后,再把vhd挂载出来,再用dism++查看添加驱动页面,提示不支持该接口
回复

使用道具 举报

505#
发表于 2020-12-13 10:07:48 | 只看该作者
我怀疑是这样“操作内存”后,uefi固件和windows其中之一疯了。
回复

使用道具 举报

506#
 楼主| 发表于 2020-12-13 10:09:15 | 只看该作者
wuwuzz 发表于 2020-12-12 22:34
一、1212版测试结果如下:
svbusPE.img  无论加不加mem参数map,都可成功并进入桌面
fixwtg.vhd   我的 ...



这里写的是 0x9d000,你在执行 "boot" 之前,执行 "hexdump (mem) -s 0x9d000" 查看一下内存。
还有,你说 grub4dos 可以不加载到内存正常启动,那先在 g4d 下 map,然后 chainloader grub2,在grub2 下查看内存:
hexdump (mem) -s 0x9f000
hexdump (mem) -s 0x9d000
回复

使用道具 举报

507#
 楼主| 发表于 2020-12-13 10:11:03 | 只看该作者
liuzhaoyzz 发表于 2020-12-12 22:07
另外想请问下,grub2是否支持vdf镜像直接map?比如map xxx.vdf (hd0)这样子,我忘了以前的帖子了。

发我一个小点的 vdf ,我看看。
vdf有没有像 vhd 那样,分为 "固定大小" 和 "动态" 的?
回复

使用道具 举报

508#
发表于 2020-12-13 10:24:56 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-13 10:27 编辑
wintoflash 发表于 2020-12-13 10:11
发我一个小点的 vdf ,我看看。
vdf有没有像 vhd 那样,分为 "固定大小" 和 "动态" 的?

链接: https://pan.baidu.com/s/1m0RF_WFGJgQ1-dDgTVTh-g 提取码: uwvc

vdf是primo驱动生成的,diskgenius也能够打开吧,有没有"固定大小" 和 "动态"之分,我还真不知道。
回复

使用道具 举报

509#
发表于 2020-12-13 10:27:15 | 只看该作者
江南一根葱 发表于 2020-12-13 10:06
是vhd要重做,坏了,
我遇到的情况是启动失败后,再把vhd挂载出来,再用dism++查看添加驱动页面,提示不 ...

没有道理怀疑vhd坏了。
因为同一个vhd,用bootmgfw.efi启动它没有问题;用g4e的map --mem --top启动它也没问题。
回复

使用道具 举报

510#
发表于 2020-12-13 11:48:28 | 只看该作者
wintoflash 发表于 2020-12-12 19:00
还有 @wuwuzz  试试这个。
按 左Ctrl+左Alt+F12 可截图,截图保存在某 FAT分区里面。

好消息,用你在499楼分享的grubx64.efi.tar.gz,成功搞定了grub2+svbus+WIN7X64-UEFI-RAMOS!

1、在499楼,你只 @wuwuzz  试试这个,并没有有@我,我都不知道要用这个来测试,差点错过了!
2、感觉grub2读盘速度一直较慢,不稳定,感觉不如g4e稳定,请看下还有没有提升的空间。



3、还有个问题:启动vhd-ramos的时候,能否优先搜索FAT32/ESP分区里面的bootx64.efi,如果找不到再找NTFS分区里面的bootx64.efi?
对于g4e,我发现如果优先查找NTFS里面的bootx64.efi会出错,不知道grub2是怎么考虑处理的?



svbus-WIN7X64-UEFI-RAMOS.jpg (220.01 KB, 下载次数: 182)

svbus-WIN7X64-UEFI-RAMOS.jpg
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 10:09

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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