无忧启动论坛

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

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

    [复制链接]
发表于 2019-11-9 19:55:44 来自手机 | 显示全部楼层
我把bootmgrfw.efi,建立个bcd放到里面可以启动吗?        

点评

不清楚  详情 回复 发表于 2019-11-9 20:42
回复

使用道具 举报

 楼主| 发表于 2019-11-9 20:42:19 | 显示全部楼层
liuzhaoyzz 发表于 2019-11-9 19:55
我把bootmgrfw.efi,建立个bcd放到里面可以启动吗?

不清楚
回复

使用道具 举报

发表于 2019-11-9 20:44:29 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-11-9 21:09 编辑

你上传个ntfs.efi我试试看

点评

https://efi.akeo.ie/downloads/efifs-1.3/x64/ntfs_x64.efi  详情 回复 发表于 2019-11-9 20:57
回复

使用道具 举报

 楼主| 发表于 2019-11-9 20:57:52 | 显示全部楼层
回复

使用道具 举报

发表于 2019-11-9 21:12:43 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-11-9 21:15 编辑

加载了ntfs_x64.efi,用一楼的那些模块,grub2是从github-master刚下载的最新版,补齐了bootx64.efi,bootmgrfw.efi,bcd都在VHD里面,启动的时候过了BCD选择界面,证明VHD里面的bcd被加载了,ntfs_x64.efi应该是起作用了,但是紧接着出现0xc0000225错误,上图。
QQ图片20191109211025.jpg

点评

你应当把这个看作grub4dos的map。 到这个阶段,map已经成功了(bootmgfw可以正常读取VHD) 剩下的事情与map无关了,也没法有关。 首先bootmgfw直启的VHD和完整的系统是不是有区别。 其次,需要有驱动。 这些,都  详情 回复 发表于 2019-11-9 21:44
回复

使用道具 举报

发表于 2019-11-9 21:20:54 | 显示全部楼层
vhd这个虚拟盘win应该不认识吧

点评

wintoflash不是已经启动了吗?win不认是什么意思,直接从C盘可以启动这个vhd。  详情 回复 发表于 2019-11-9 21:25
回复

使用道具 举报

发表于 2019-11-9 21:25:28 | 显示全部楼层
江南一根葱 发表于 2019-11-9 21:20
vhd这个虚拟盘win应该不认识吧

wintoflash不是已经启动了吗?win不认是什么意思,直接从C盘可以启动这个vhd。

点评

他启的是iso啊  详情 回复 发表于 2019-11-9 21:28
回复

使用道具 举报

发表于 2019-11-9 21:28:49 | 显示全部楼层
liuzhaoyzz 发表于 2019-11-9 21:25
wintoflash不是已经启动了吗?win不认是什么意思,直接从C盘可以启动这个vhd。

他启的是iso啊

点评

一楼二楼明显说的是vhd啊,怎么是iso,pe.iso,pe.wim我这边启动没问题。  详情 回复 发表于 2019-11-9 21:30
回复

使用道具 举报

发表于 2019-11-9 21:30:36 | 显示全部楼层

一楼二楼明显说的是vhd啊,怎么是iso,pe.iso,pe.wim我这边启动没问题。

#加载VHD文件,支持动态VHD,使用--disk参数时,默认类型为硬盘
vhd vhd0 /test.vhd
map --disk --type=HD vhd0

点评

加载啊,不是启动  详情 回复 发表于 2019-11-9 21:33
回复

使用道具 举报

发表于 2019-11-9 21:33:01 | 显示全部楼层
liuzhaoyzz 发表于 2019-11-9 21:30
一楼二楼明显说的是vhd啊,怎么是iso,pe.iso,pe.wim我这边启动没问题。

加载啊,不是启动

点评

我怎么看帖子好像是能够启动~~~我误会了?  发表于 2019-11-9 21:37
回复

使用道具 举报

 楼主| 发表于 2019-11-9 21:44:18 | 显示全部楼层
本帖最后由 wintoflash 于 2019-11-9 21:45 编辑
liuzhaoyzz 发表于 2019-11-9 21:12
加载了ntfs_x64.efi,用一楼的那些模块,grub2是从github-master刚下载的最新版,补齐了bootx64.efi,bootmg ...


你应当把这个看作grub4dos的map。
到这个阶段,map已经成功了(bootmgfw可以正常读取VHD)
剩下的事情与map无关了,也没法有关。
首先bootmgfw直启的VHD和完整的系统是不是有区别。
其次,需要有驱动。
这些,都是VHD里面的系统需要解决的。
我没用过Windows的VHD系统,也不会搞VHD系统,不清楚SVBUS之类的能不能用。
Linux是可以的。

点评

我想应该是版主的镜像太大了,这个bug只能等NTFS的驱动更新才行,不是map的事,也不是系统的事,是驱动的问题  详情 回复 发表于 2019-11-9 21:49
回复

使用道具 举报

发表于 2019-11-9 21:49:58 | 显示全部楼层
wintoflash 发表于 2019-11-9 21:44
你应当把这个看作grub4dos的map。
到这个阶段,map已经成功了(bootmgfw可以正常读取VHD)
剩下的事情 ...

我想应该是版主的镜像太大了,这个bug只能等NTFS的驱动更新才行,不是map的事,也不是系统的事,是驱动的问题

点评

是的,是驱动的事情,只能等若干年了。  发表于 2019-11-9 21:55
回复

使用道具 举报

发表于 2019-11-9 21:52:53 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2019-11-9 21:54 编辑

明白你的意思了。grub2已经把能做的事情都做了,比如仿真vhd,比如仿真vhd到内存,缺乏的是让windows识别grub2的仿真盘或者内存盘的驱动,就是缺乏像firadisk/winvblock/svbus的这样一个驱动,我还以为grub2已经提供了呢,92楼的回复我误会了。那就只有等高人出现写驱动了。

点评

M大写过grub4dos map出来的仿真盘的windows驱动Imdisx.sys,不知道能不能同样适用于grub2的仿真盘。  详情 回复 发表于 2019-11-10 11:03
不过我在研究NTBOOT。如果移植到UEFI下,还能曲线救国。  详情 回复 发表于 2019-11-9 21:59
回复

使用道具 举报

 楼主| 发表于 2019-11-9 21:59:05 | 显示全部楼层
本帖最后由 wintoflash 于 2019-11-10 07:49 编辑
liuzhaoyzz 发表于 2019-11-9 21:52
明白你的意思了。grub2已经把能做的事情都做了,比如仿真vhd,比如仿真vhd到内存,缺乏的是让windows识别gr ...


不过我在研究NTBOOT。如果移植到UEFI下,还能曲线救国。
缺乏像firadisk/winvblock/svbus的这样一个驱动,我还以为grub2已经提供了呢

任何除了bootmgr之外的第三方引导器基本上都不可能自己提供windows的驱动。这个在技术上做不到。
就算vboot,也是分了两部分,还是要装windows驱动。

点评

以后可能实现Map VHDX吗?  详情 回复 发表于 2019-11-10 11:05
回复

使用道具 举报

发表于 2019-11-10 11:03:14 | 显示全部楼层
liuzhaoyzz 发表于 2019-11-9 21:52
明白你的意思了。grub2已经把能做的事情都做了,比如仿真vhd,比如仿真vhd到内存,缺乏的是让windows识别gr ...

M大写过grub4dos map出来的仿真盘的windows驱动Imdisx.sys,不知道能不能同样适用于grub2的仿真盘。
回复

使用道具 举报

发表于 2019-11-10 11:05:46 | 显示全部楼层
wintoflash 发表于 2019-11-9 21:59
不过我在研究NTBOOT。如果移植到UEFI下,还能曲线救国。

任何除了bootmgr之外的第三方引导器基本上 ...

以后可能实现Map VHDX吗?

点评

这个不太可能吧。grub4dos也不支持吧。 我的这个动态vhd支持是抄的vboot的开源部分,vboot是抄的VirtualBox的代码。 vboot的闭源部分貌似有什么支持差分VHD,vmdk之类的技术,可能支持vhdx吧。除此之外我也没见过什  详情 回复 发表于 2019-11-10 11:32
回复

使用道具 举报

 楼主| 发表于 2019-11-10 11:32:51 | 显示全部楼层
ddsony 发表于 2019-11-10 11:05
以后可能实现Map VHDX吗?

这个不太可能吧。grub4dos也不支持吧。
我的这个动态vhd支持是抄的vboot的开源部分,vboot是抄的VirtualBox的代码。
vboot的闭源部分貌似有什么支持差分VHD,vmdk之类的技术,可能支持vhdx吧。除此之外我也没见过什么关于vhdx的。

点评

g4d是支持vhdx的,我试过。  详情 回复 发表于 2019-11-10 15:24
回复

使用道具 举报

发表于 2019-11-10 15:24:56 | 显示全部楼层
本帖最后由 hilsonma 于 2019-11-10 15:27 编辑
wintoflash 发表于 2019-11-10 11:32
这个不太可能吧。grub4dos也不支持吧。
我的这个动态vhd支持是抄的vboot的开源部分,vboot是抄的Virtual ...


g4d是支持vhdx的,我试过。只是不知道是不是通过map支持的,因为我用的是外部命令siso

点评

ntboot siso run模块之类用的是bootmgr启的vhd  详情 回复 发表于 2019-11-10 15:29
回复

使用道具 举报

发表于 2019-11-10 15:29:15 | 显示全部楼层
hilsonma 发表于 2019-11-10 15:24
g4d是支持vhdx的,我试过。只是不知道是不是通过map支持的,因为我用的是外部命令siso

ntboot siso run模块之类用的是bootmgr启的vhd

点评

那它们也要内置bootmgr和bcd呀,如果有人能把xorboot那套内置方法搞出来当成grub2外部程序用那也相当于grub2支持这类启动了。 那怕是外置的bootmgfw.efi和bcd也行,象wimboot那样,总之能通用启动就行,不需要每个v  详情 回复 发表于 2019-11-10 15:57
回复

使用道具 举报

发表于 2019-11-10 15:57:01 | 显示全部楼层
江南一根葱 发表于 2019-11-10 15:29
ntboot siso run模块之类用的是bootmgr启的vhd

那它们也要内置bootmgr和bcd呀,如果有人能把xorboot那套内置方法搞出来当成grub2外部程序用那也相当于grub2支持这类启动了。
那怕是外置的bootmgfw.efi和bcd也行,象wimboot那样,总之能通用启动就行,不需要每个vhdx各配一套efi+bcd就是成功了。
回复

使用道具 举报

发表于 2019-11-12 21:23:58 | 显示全部楼层
wintoflash 发表于 2019-11-10 16:21
SISO 的这部分功能来自 NTBOOT
NTBOOT是内置了一个小fat软盘,里面有bootmgr, bcd。通过改BCD, 启动bo ...

下图所示的Map屏显如何屏蔽掉?
1.png

点评

不能屏蔽.  详情 回复 发表于 2019-11-12 21:28
回复

使用道具 举报

 楼主| 发表于 2019-11-12 21:28:48 | 显示全部楼层
ddsony 发表于 2019-11-12 21:23
下图所示的Map屏显如何屏蔽掉?

不能屏蔽.

点评

那太碍眼了吧,这是Map模块的输出吗?  详情 回复 发表于 2019-11-12 21:32
回复

使用道具 举报

发表于 2019-11-12 21:32:37 | 显示全部楼层

那太碍眼了吧,这是Map模块的输出吗?
回复

使用道具 举报

 楼主| 发表于 2019-11-12 21:40:24 | 显示全部楼层
是的.
多显示点信息总是好的

点评

mapCдɡ  详情 回复 发表于 2019-11-12 22:52
是的,容易排错。  详情 回复 发表于 2019-11-12 21:45
回复

使用道具 举报

发表于 2019-11-12 21:45:03 | 显示全部楼层
wintoflash 发表于 2019-11-12 21:40
是的.
多显示点信息总是好的

是的,容易排错。
回复

使用道具 举报

发表于 2019-11-12 22:52:39 来自手机 | 显示全部楼层
本帖最后由 ddsony 于 2019-11-13 06:08 编辑

特殊需求,需要屏蔽。

点评

那你自己改代码吧,把grub-core/map/*.c和grub-core/commands/efi/map.c里面printf的语句都注释掉,然后编译。 挺多的,比较麻烦。  详情 回复 发表于 2019-11-13 08:06
回复

使用道具 举报

发表于 2019-11-13 04:38:31 来自手机 | 显示全部楼层
哇塞!
回复

使用道具 举报

 楼主| 发表于 2019-11-13 08:06:42 | 显示全部楼层
ddsony 发表于 2019-11-12 22:52
特殊需求,需要屏蔽。

那你自己改代码吧,把grub-core/map/*.c和grub-core/commands/efi/map.c里面printf的语句都注释掉,然后编译。
挺多的,比较麻烦。
回复

使用道具 举报

 楼主| 发表于 2019-11-14 16:10:18 | 显示全部楼层
现在32位UEFI下map模块也能正常工作了,感兴趣的可以下载。

点评

虽然没有32位的测试环境,但为这又一新增功能点赞  详情 回复 发表于 2019-11-14 17:17
好消息,下载,下载。  详情 回复 发表于 2019-11-14 16:43
回复

使用道具 举报

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

好消息,下载,下载。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 16:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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