无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 2011yaya2007777
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
31#
发表于 2020-11-9 11:26:08 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-10 08:09 编辑
sunsea 发表于 2020-11-9 11:08
请问这个是怎么处理映射信息传递的?拷贝进前640KB还是放置UEFI变量?需要我做什么吗

        刚才试了下305楼的bootx64.efi文件,2020年11月9日的。
1、这个解决了有多个光驱的时候启动的问题。
2、有个新问题是,能够启动某些PE.ISO,比如微PE、立帮电子的PE,但是无法启动我用wimbuilder2制作出来的PE,直接上图。20201029版本没有这个问题。
https://cloud.189.cn/t/FjyAZfmmeuEf

启动菜单:

title /boot/imgs/SXWIN10PEX64_17763_NET20201106.iso
find --set-root /boot/imgs/SXWIN10PEX64_17763_NET20201106.iso
map --mem /boot/imgs/SXWIN10PEX64_17763_NET20201106.iso (0xff)
chainloader (0xff)

这个pe.iso应该是用oscdimg.exe制作的,参数大概如下:
oscdimg.exe -b"%ISO_DIR%\boot\etfsboot.com" -h -l"%WB_ISO_LABEL%" -m -u2 -udfver102 "%ISO_DIR%" "%Factory%\%WB_ISO_NAME%.iso"



GPT-TEST-2020-11-09-11-12-11.png (2.73 KB, 下载次数: 191)

GPT-TEST-2020-11-09-11-12-11.png

GPT-TEST-2020-11-09-11-15-48.png (10.48 KB, 下载次数: 185)

GPT-TEST-2020-11-09-11-15-48.png
回复

使用道具 举报

32#
发表于 2020-11-9 14:00:02 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-9 14:06 编辑
2011yaya2007777 发表于 2020-11-9 12:14
L大,你忘了执行 chainloader (0xff)。

哦,截图里面的确少输入了一个chainloader (0xff),但是菜单里面是不缺少这个的,启动最后截图就是307楼的那个截图。截图里面,map完了之后就抛出了个错误:IError: invalid boot indicator(0x20) for entry 0.



回复

使用道具 举报

33#
发表于 2020-11-9 14:01:30 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-9 14:08 编辑
窄口牛 发表于 2020-11-9 12:17
你的ISO没有efi支持的img引导文件。307楼。

        什么是efi支持的img引导文件?文件名是什么?
回复

使用道具 举报

34#
发表于 2020-11-9 14:53:10 | 显示全部楼层
窄口牛 发表于 2020-11-9 14:16
你这个命令打包的ISO能从efi启动?

        @窄口牛,@2011yaya2007777,检查了下,果然是efi启动文件不全,启动没问题了。我正在上传。
回复

使用道具 举报

35#
发表于 2020-11-12 11:40:54 | 显示全部楼层
2011yaya2007777 发表于 2020-11-11 08:59
熟悉并使用过 SVBus、FiraDisk、WinVblock 的坛友,请释疑一下:
是往 windows 传递了软盘?硬盘?光盘? ...
熟悉并使用过 SVBus、FiraDisk、WinVblock 的坛友,请释疑一下:
是往 windows 传递了软盘?硬盘?光盘?是一个还是多个?

他们似乎都是传递了硬盘,就是把grub4dos仿真到内存盘的这个(rd),从grub4dos下的实模式“传递”到windows保护模式里面。
看下内置了svbus的vhd启动菜单就知道了啊。
title WIN10X64-SVBUS (/VHD/ltsb-svbus.vhd)
find --ignore-floppies --ignore-cd --set-root /VHD/ltsb-svbus.vhd
map --mem --top /VHD/ltsb-svbus.vhd (hd0)
map (hd0) (hd1)
map --e820cycles=-1
map --hook
root (hd0,0)
chainloader (hd0,0)/bootmgr
回复

使用道具 举报

36#
发表于 2020-11-19 14:19:43 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-11-19 14:21 编辑
友情提示,菜单应当是 utf-8 格式,默认位置在
/menu.lst
/boot/grub/menu.lst
/grub/menu.lst

        一楼的介绍,是不是可以直接改为:
友情提示,菜单应当是 utf-8 格式,默认位置在/efi/grub/menu.lst
我还特地尝试了下。


看了grub4dos-0.4.6a_for_UEFI-2020-11-18里面的menu.lst的demo和ChangeLog_UEFI.txt,简单明了,很好啊!


回复

使用道具 举报

37#
发表于 2020-11-19 14:50:57 | 显示全部楼层
2011yaya2007777 发表于 2020-11-19 14:34
我已经把一楼的菜单删除了,怎么又有了?再删除一次。

        一楼已经改好了。另外wintoflash大神说的else拼写错误,ChangeLog_UEFI.txt里面也有的,不单单是论坛帖子写错了,别忘了哟
回复

使用道具 举报

38#
发表于 2020-11-28 15:35:42 | 显示全部楼层
ko20010214 发表于 2020-11-28 00:02
好吧,我再问一个白得不能再白的问题,这个bootx64.efi 文件怎么用?
要放在哪个目录下面,要配合哪些文件 ...

grub4dos UEFI版本,必须要用完整版unifont.hex才行,你的菜单出不来,是因为没有加载字体。yaya在90楼已经分享了。
http://wuyou.net/forum.php?mod=r ... &fromuid=298214

点评

是的,我重新下载了90楼的完整版,字体显示完全。当时不知道怎么看走眼了,以为6500字的那个版本就是90楼的。  详情 回复 发表于 2020-11-29 10:04
回复

使用道具 举报

39#
发表于 2020-11-29 20:09:41 来自手机 | 显示全部楼层
ko20010214 发表于 2020-11-29 12:06
折腾了这么久,终于能正常显示了……

1. 据说,menu.lst一定要用utf-8的格式。

但是在X86环境下为毛不能引导啊,它不是已经做到2合1了吗?难道在X86下还得把它改名为booti32.efi 放进去吗?

        如果你的固件是64位的,肯定这台电脑只能用64位的bootx64.efi,是不可能用32位的bootia32.efi的,两者只能二选一。一般的电脑UEFI都是64位的,这是常识!

点评

如果固件是64位的?这里的固件是指什么啊(请原谅我等小白)。 在固件是64位的情况下,只能用到bootx64.efi,那由这个X64.efi加载的PE或系统能安装X86的系统吗? 好像我在64位CPU的机器上是能随便选择装X86或X64的  详情 回复 发表于 2020-11-30 21:30
朱玛12345678说:“(在VM里)如果你选择了x64的系统那么在选用UEFI引导时VM就会使用64位的UEFI固件,反之则会使用32位的UEFI固件”  详情 回复 发表于 2020-11-30 21:25
因为QEMU里可以选择 X64 EFI 和 IA32 EFI 还有 BIOS 三种启动环境,所以每个我都测试了一下。  详情 回复 发表于 2020-11-29 21:15
回复

使用道具 举报

40#
发表于 2020-12-1 08:32:45 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-1 08:36 编辑
ko20010214 发表于 2020-11-30 21:30
如果固件是64位的?这里的固件是指什么啊(请原谅我等小白)。
在固件是64位的情况下,只能用到bootx64. ...

直接百度有啊:

固件是固化在硬件中的软件,开机过程中,系统会先读取其内部的硬件设备初始化信息,使操作系统能够正确识别硬件,并为其他软件的运行提供最基本的依据,像硬盘、光驱等等硬件都有自己的固件。而BIOS是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。

现在的主板只要支持UEFI启动,那么该UEFI固件都是64位的。

      对于UEFI方式启动:

      64位的UEFI固件,只能安装64位且支持UEFI启动的系统;(目前绝大多数的机器都是这种情况)

      32位的UEFI固件,只能安装32位且支持UEFI启动的系统;(此情况基本很难遇到,早些年的WIN8刚出来的时候32位UEFI启动的平板电脑固件是32位的,现在基本没有了,研究这个基本上没有任何实战意义!)
   
64位的UEFI引导用bootx64.efi,32位x86的UEFI引导用bootia32.efi。

对于LEGACY BIOS启动的情况,64位CPU可以安装64位、32位的操作系统都可以。32位的CPU只能安装32位操作系统。



这样的基础知识,为什么不百度下,有很多啊!

回复

使用道具 举报

41#
发表于 2020-12-5 19:54:21 来自手机 | 显示全部楼层
wintoflash 发表于 2020-12-5 12:30
@liuzhaoyzz @sunsea
修改内存盘类型为 RUNTIME SERVICES DATA 之后,reboot.pro 那边已经有人确认,SVBu ...

        谢谢提醒,晚点试试看。
回复

使用道具 举报

42#
发表于 2020-12-6 17:08:03 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-7 07:30 编辑
wintoflash 发表于 2020-12-5 12:30
@liuzhaoyzz @sunsea
修改内存盘类型为 RUNTIME SERVICES DATA 之后,reboot.pro 那边已经有人确认,SVBu ...

svbus在WIN10LTSB X64-UEFI上面死活安装不上去,提示“试图将驱动程序添加到存储区时遇到问题"。



好郁闷啊,BCD里面的驱动签名验证关了也不行,用yamingw制作的签名后的svbus1.1也不行。
按照以前的做法,gpedit.msc 确定——计算机配置——管理模板——系统——设备安装——设备安装限制——禁止安装未有其他策略组描述的设备(在右边),双击后设置为“未配置”或“禁用”——确定。重启了下,再安装,也还是不行,邪了门了!



哦,联系了朱玛,他制作了个带签名的,svbus顺利安装,没有上面的错误了。svbus好像必须用添加过时硬件的方法添加,否则设备管理器里面看不到。另外svbus安装成功之后,最好重启下电脑,确保驱动生效。



grub4dos-0.4.6a_for_UEFI-2020-12-05,在github下载的,参考了reboot.pro的菜单(顺便吐槽下,reboot.pro很难以连接上去!):
title WIN10X64-SVBUS (/VHD/ltsb-svbus.vhd)
find --ignore-floppies --ignore-cd --set-root /VHD/SX10090329.vhd
map --mem  /VHD/SX10090329.vhd (hd)
chainloader (hd-1)
#chainloader (hd0,0)/EFI/Microsoft/Boot/bootmgfw.efi
启动卡住了。


内存32GB,VHD13.1GB,我的vhd里面就是MBR分区,只有一个NTFS分区,我的华硕主板原生支持全部是NTFS的分区上面启动bootmgfw.efi,所以不应该是FAT32分区的问题,我电脑里面很多个VHD,都是MBR-NTFS单分区,用bootmgfw.efi启动没问题。


如果改成map --mem --top /VHD/SX10090329.vhd (hd),选择这个启动项之后没有反应,又跳回到原来的菜单,g4e是不是没有--top命令?












SVBus-朱玛.zip

41.33 KB, 下载次数: 57, 下载积分: 无忧币 -2

朱玛签名版

SVBus_V1.2_20200428.rar

66.76 KB, 下载次数: 19, 下载积分: 无忧币 -2

原版未签名!

回复

使用道具 举报

43#
发表于 2020-12-7 07:21:26 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-7 07:33 编辑
江南一根葱 发表于 2020-12-6 21:06
我在vmware下map --mem /xx.vhd (hd),会提示out of memory 分配 8G内存都没用
xx.vhd只有1.5G大

1、哦,上面656楼的那个截图“out of range poionter”,问题似乎无法重现了,可能是之前svbus驱动没有安装好,也可能是svbus安装之后没有重启吧。

现在的提示:13GB固定大小的VHD,提示out of memory,内存是31GB的。





2、请问下,现在的g4e是否支持动态vhd加载?我试了动态vhd之后,结果卡死。




3、
map --mem  /VHD/SX10090329.vhd (hd)
chainloader (hd-1)请问下,(hd) (hd-1)分别代表什么意思?以前都是(hd0)这样子的呀。





回复

使用道具 举报

44#
发表于 2020-12-7 07:28:18 | 显示全部楼层
2011yaya2007777 发表于 2020-12-6 21:22
再一个要看内存分布。尽管内存很大,但是碎片很多,当前最大碎片尺寸是否允许安装vhd。

不应该是内存碎片化的问题,这个13GB的vhd,我在BIOS-grub4dos下面成功加载过的,证明内存至少有13GB以上的连续空间。
回复

使用道具 举报

45#
发表于 2020-12-7 10:27:00 | 显示全部楼层
2011yaya2007777 发表于 2020-12-7 09:51
这个提示不是 G4E 的,提示 out of memory 是 G4E 的。
以前 G4D 支持动态 vhd 加载,现在的 G4E 也应当 ...

白天要上班,晚上回家试试看。
回复

使用道具 举报

46#
发表于 2020-12-7 12:42:21 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-7 12:49 编辑
2011yaya2007777 发表于 2020-12-7 09:51
这个提示不是 G4E 的,提示 out of memory 是 G4E 的。
以前 G4D 支持动态 vhd 加载,现在的 G4E 也应当 ...

试了这个1207版本的bootx64.efi,一样提示“out of memory”.跟上面的帖子665楼截图一样。

blocklist /VHD/UEFIltsb-svbus.vhd
好像是没有碎片。






另外想请问下,UEFI下面,displaymem命令还有没有用,能否正常指示内存碎片值?



回复

使用道具 举报

47#
发表于 2020-12-7 14:50:12 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-7 14:51 编辑
wintoflash 发表于 2020-12-7 14:11
displaymem当然是正常工作的。
bios下能分配那么多内存,uefi下就不一定。

        你看我displaymem,最后一行显示length=71F000000=10进制30584864768=28GB,这个应该是高位内存吧,应该足够放下13GB的vhd啊,4GB以内的内存块,似乎很零散。提示“out of memory”是不是因为g4e把vhd放到比较小的内存块上面去了?
回复

使用道具 举报

48#
发表于 2020-12-7 18:20:42 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-8 06:49 编辑
2011yaya2007777 发表于 2020-12-7 14:52
这就奇怪了!原来有两处提示 “out of memory“,我修改为不同的提示了。可否再仔细看看。
可否再仔细看看。

你是给我说的,还是给wintoflash说的,我这边想不出是什么原因,该怎么尝试。
“out of memory“,有没有可能不是主程序抛出的,是其调用的子程序抛出的?用文本内容搜索器比如filelocator搜索下这个关键字试试呢?
回复

使用道具 举报

49#
发表于 2020-12-8 18:16:06 | 显示全部楼层
2011yaya2007777 发表于 2020-12-8 15:33
看看使用 map --mem --top 能不能强制加载到4GB以上内存。

map --mem --top加载到高位内存成功了,因为看到了尺寸在变大,慢慢地达到100%那个尺寸。
然后启动的时候蓝屏了,0xc00000225错误,这个错误,我们在尝试UEFI-RAMOS的时候多次碰到过,不明白原因。

QQ图片20201208181253.jpg (51.88 KB, 下载次数: 81)

QQ图片20201208181253.jpg
回复

使用道具 举报

50#
发表于 2020-12-8 19:30:24 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-8 19:38 编辑
2011yaya2007777 发表于 2020-12-8 18:50
不知是不是因为4GB以上内存被占用引起的。
记得以前在BIOS模式,启动Windows前,在内存高位空白处写入一 ...

我觉得不是4GB以上内存被占用引起的。


windows的bootmgfw.efi是个黑盒子,关于这个黑盒子里面的秘密,在UEFI-RAMOS启动领域,已经有很多很多前辈们做过很多尝试,我感觉可能是windows的
\EFI\Microsoft\Boot\BCD不能顺利读取内存盘里面的\windows\sytem32\winload.efi文件引起的,不知道是不是因为svbus驱动启动时间太晚?按道理上来说,不应该晚啊,因为BIOS下面svbus所在的驱动组就没问题。
回复

使用道具 举报

51#
发表于 2020-12-8 19:34:16 | 显示全部楼层
2011whp 发表于 2020-12-8 19:25
winload.efi   一般有两个位置   \windows\winload.efi    或  \window\sytem32\winload.efi

会不会是 ...

vhd里面的bcd设置是这样子的,我感觉不应该是vhd里面的\Windows\System32\Boot\winload.efi路径指向的问题,因为同一个vhd,用bootmgfw.efi引导这个vhd完全没问题,引导路径就是vhd之外的bootmgfw.efi→BCD→vhd里面的bootmgfw.efi→VHD里面的BCD,如果BCD指向错误,VHD本身就不可能正常启动。

回复

使用道具 举报

52#
发表于 2020-12-8 20:20:43 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-8 20:35 编辑
2011whp 发表于 2020-12-8 19:47
直接启动 vhd  是不是方向错了,因为这样启动,本身短路了,微软的标准流程

vhd  是否是 真的磁盘(没有 ...


       不管是什么原因,我感觉g4e或者grub2已经做完了他作为一个UEFI引导器该做的事情了,加载镜像到内存盘,并且做好了与svbus驱动的对接(因为众多国外网友反馈成功在RAMOS中看到了svbus的仿真磁盘,证明g4d引导器与svbus对接成功)。
       而svbus也做了他该做的事情了,就是让windows能够识别内存盘。
       剩下的问题,可能就需要对启动领域和RAMOS大神们继续深究下去了。现在面临的问题,就是如何让RAMOS启动流程继续下去的问题了。
回复

使用道具 举报

53#
发表于 2020-12-8 20:32:45 来自手机 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-8 20:40 编辑
2011whp 发表于 2020-12-8 20:26
嗯, 解决了加载大镜像 的问题,g4e 与svbus 握手方面也能了

估计,做成 img 的RAMOS 问题不大(除非 sv ...


        vhd与img区别不大,img似乎有两种,一种是软盘格式,没有MBR;一种是硬盘格式,有MBR的,这种格式似乎和VHD格式差不多,格式上的区别,对于启动影响应该不大吧。

直接 chainloader (hd-1),我现在的菜单就是的呀。

转到UEFI的shell下面去启动,感觉太绕了,太麻烦,已经有了g4e/grub2,转去shell下,感觉没什么意思,我没兴趣尝试,如果你有兴趣,等待你的探索结果。
回复

使用道具 举报

54#
发表于 2020-12-8 22:41:47 来自手机 | 显示全部楼层
江南一根葱 发表于 2020-12-8 20:51
说来怎么消除vhd的碎片?

方法一,复制粘贴该vhd,副本就是没有碎片的,前提是需要硬盘有足够的剩余空间用于腾挪。
方法二,直接用wincontig分析并整理文件。前提也是需要硬盘有足够的剩余空间。
一般地来说,上面的方法对于机械硬盘很有效。对于ssd不一定有效果,因为ssd有FTL逻辑转换电路中间层,ssd直接格盘拷贝文件进去,应该就是连续的吧。
回复

使用道具 举报

55#
发表于 2020-12-9 07:32:40 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-9 08:00 编辑
mdyblog 发表于 2020-12-8 23:29
支持 的Windows驱动程序和测试演示包: https://www.lanzoui.com/b089yxk9e
支持磁盘BLOCKLIST。 支持内存 ...

mdyblog大神,这些对于g4e或者grub2开发方面,有哪些可以借鉴的地方,原理或者部分源代码可以公开吗?

现在UEFI-RAMOS完成了一部分工作,卡在系统前期引导上面,你能否帮忙想想办法?


回复

使用道具 举报

56#
发表于 2020-12-9 08:12:13 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-9 11:52 编辑
sunsea 发表于 2020-11-28 00:46
做个SVBus的简单测试,结果QEMU虚拟机下卡在map进去的时候报0xc0000225 BCD损坏(用的是本楼里某人发的微PE ...

我又通篇地看了这个帖子。
sunsea说,
191楼,http://wuyou.net/forum.php?mod=r ... 8705&fromuid=298214
目前只要确定bootmgfw.efi能够正确从g4d uefi中map的磁盘里正确读取bcd,SYSTEM等几个文件,那么剩下的事情非常简单,但是考虑到map还分非mem和mem,那么imdisk可能会比较麻烦,还是SVBus比较好,只需要hack一下获取map信息的方式就好了……

265楼,http://wuyou.net/forum.php?mod=r ... 0903&fromuid=298214
2,有何种手段能够欺骗bootmgfw.efi让它能够正确读取仿真盘上的bcd等关键文件……不过看样子似乎这个问题已经被解决了

375楼,http://wuyou.net/forum.php?mod=r ... 3334&fromuid=298214
2,Imdisk工作依赖于【文件系统】(当然如果你直接指定\\.\PhysicalDrive0这种“镜像”当我没说),SVBus加载的时候(SCSI Miniport组),文件系统驱动还没有加载,只能扇区序列读。随后文件系统才到场对各个已经成型的设备进行识别。Imdisk也不认识映射插槽,所以硬要用Imdisk也可以,不过还是得有个工作在内核层次的东西处理插槽信息。
3,不在这种极端早期加载驱动,Windows就会读盘失败——SCSI Miniport这个驱动组加载完成以后Windows就用他们读盘而不是UEFI BIOS本身提供的功能读盘,所以这个时候之后再加载不出来Windows会直接BSOD掉,当年XP上很经典的0x7B还是啥的蓝屏就是这个,只不过当年是因为XP没有AHCI驱动而已。

573楼,http://wuyou.net/forum.php?mod=r ... 4078&fromuid=298214
做个SVBus的简单测试,结果QEMU虚拟机下卡在map进去的时候报0xc0000225 BCD损坏(用的是本楼里某人发的微PE)……
果然还是卡在了糊弄bootmgfw.efi这关吗……今天白天继续测。

576楼,http://wuyou.net/forum.php?mod=r ... 4128&fromuid=298214
真奇怪,map和map --mem后
chainloader (0xff)就可以读到bcd文件,(虽然卡在winload.efi那,提示找不到文件,估计是我打包有问题,过会继续排除)
chainloader (0xff)/efi/boot/bootx64.efi就会提示BCD损坏……
不知道又是什么申必bug

汇报一下测试结果。

采用的是github上的11.26版本。真机测试。
PE还是楼里的那个微PE。驱动顺序经过调整,usbstor等一系列驱动提前,以便认盘。

596楼,http://wuyou.net/forum.php?mod=r ... 4980&fromuid=298214
map --mem能见桌面,不过看不见虚拟的ISO。手动net start提示找不到文件。
直接map会THREAD_EXCEPTION蓝屏,svbusx64.sys蓝的。
作为对照,BIOS下map --mem也看不见虚拟ISO,怀疑是svbus自己的问题,准备接下来的空闲时间进行调试。不知道是不是和CSM冲突之类的原因。可能需要UEFI变量传递作为备选方案。机器是联想拯救者Y720-15KIB。

@sunsea  可在?可有好的解决办法?
sunsea担心的问题,也是我担心的问题,主要就是bootmgfw.efi能否正确从g4d uefi中map的磁盘里正确读取bcd,SYSTEM,winload.efi等几个文件,以保证启动流程继续。
实际上sunsea在573楼也碰到了0xc0000225的问题了,看下谁能够打开这个黑匣子。





回复

使用道具 举报

57#
发表于 2020-12-9 10:27:37 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-9 11:36 编辑
2011yaya2007777 发表于 2020-12-9 08:40
在 issues#248 ,Taviruni 汇报:
title Mini-10-UEFI.vhd (2360 MB MB) SVBus RAMDISK UEFI boot from HD ...

我看了https://github.com/chenall/grub4dos/issues/248
他的做法和我的区别是:
1、VHD分区格式也是MBR,不过里面有两个分区,FAT32+NTFS分区,我的只有一个MBR格式的NTFS分区。
2、WIN10用的compact lzx压缩模式安装的。
晚点我再试试看。

I suggest you to make a Win10XPE_x64.vhd FAT-32 single partition VHD (maybe 900 MB to 1 GB depending of the size of your ISO to start testing Ramboot, don't forget to delete the CDUsb.y file on the VHD or you will have problems during booting, this is just to make sure your PC UEFI firmware allows you to boot from it.
If this goes fine you should try latter a Mini-10 Wimboot install on a 1088 MB 2 partitions VHD wich is working fine on my PC. Maybe you are luckier and you don't get the extra virtual devices I get here.

alacran

我建议你做一个Win10XPE_x64.vhd FAT-32单分区vhd(可能900 MB到1 GB,取决于你的ISO的大小)来开始测试Ramboot,不要忘记删除VHD上的CDUsb.sys???文件,否则你在启动时会有问题,这只是为了确保你的PC UEFI固件允许你从它启动。

如果顺利的话,你应该试着在我的电脑上安装一个1088兆的VHD双分区,双分区在我的电脑运行良好。也许你更幸运,你没有得到我在这里得到的额外的虚拟设备。

alacran

回复

使用道具 举报

58#
发表于 2020-12-9 13:09:43 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-9 13:49 编辑
liuzhaoyzz 发表于 2020-12-9 10:27
我看了https://github.com/chenall/grub4dos/issues/248
他的做法和我的区别是:
1、VHD分区格式也是MB ...

我把vhd里面的分区调整为FAT32(已激活)+NTFS双分区,并把引导文件用bcdboot创建到引导分区。
map --mem --top之后,出现了0xc0000017错误。

grub2结果一样。
我用0xc0000017作为关键字,搜索结果感觉相关性不大。


我用0xc0000225和0xc0000017作为关键字搜索,在微软知识库里面,搜索到了这个:
https://support.microsoft.com/en-us/help/2209360/c0000225-or-c0000017-error-occurs-when-you-try-to-start-a-windows-pe-r
看微软的意思是“内存状态不同步,一个内存管理器使用的一些内存仍然被另一个内存管理器标记为可用”?什么叫做“内存状态不同步”?!费解。

部分翻译:
“c0000225”或“c0000017”错误发生在您试图在运行Windows 7或Windows Server 2008 R2的启用了UEFI的计算机上启动Windows PE RAM磁盘映像时适用于: Windows 7企业版Windows 7家庭基本版Windows 7家庭高级版 更多



可用更新

症状

考虑以下场景:
  • 您的计算机正在运行Windows 7或Windows Server 2008 R2。
  • 您在此计算机上启用了统一可扩展固件接口(UEFI)模式。
  • 您试图从基于Windows预安装环境(Windows PE)的内存磁盘映像启动计算机。例如,您可以选择修理你的电脑当您按下F8键后,或者当您尝试从u盘启动时,恢复计算机的选项。
在这种情况下,引导加载程序无法加载操作系统。此外,您会收到以下错误消息之一:启动选择失败,因为所需设备不可访问(c0000225)。



***致命错误0x00000001:
(参数1,参数2,参数3,参数4)


注意根据计算机的配置,此错误消息中的参数会有所不同。

Windows启动管理器

Windows无法启动。最近的硬件或软件可能是原因。
要解决该问题:

1.插入您的Windows安装光盘,然后重新启动计算机。

2.选择您的语言设置,然后单击“下一步”。

3.单击“修复您的计算机”。

状态:0xC0000017

信息:出现意外错误









原因

出现此问题是因为UEFI使用的内存管理器和引导加载程序使用的内存管理器之间分配的内存状态不同步。

一个内存管理器使用的一些内存仍然被另一个内存管理器标记为可用。因此,出现了“症状”部分中描述的问题。





解决

修补程序信息微软提供了受支持的修补程序。但是,此修补程序仅用于纠正本文中描述的问题。将此修补程序仅应用于遇到本文所述问题的系统。此修补程序可能会接受额外的测试。因此,如果您没有受到此问题的严重影响,我们建议您等待包含此修补程序的下一次软件更新。

如果该修补程序可供下载,则在这篇知识库文章的顶部有一个“修补程序下载可用”部分。如果此部分未出现,请联系微软客户服务和支持以获取修补程序。

注意如果出现其他问题或需要任何故障排除,您可能需要创建单独的服务请求。通常的支持费用将适用于不符合此特定修补程序的其他支持问题。有关微软客户服务和支持电话号码的完整列表或创建单独的服务请求,请访问以下微软网站:http://support.microsoft.com/contactus/?ws=support
注意“修补程序下载可用”表单显示修补程序可用的语言。如果您看不到您的语言,那是因为该语言没有可用的修补程序。先决条件














0xc0000017.jpg (60.33 KB, 下载次数: 122)

0xc0000017.jpg

一键修复引导.rar

577 Bytes, 下载次数: 7, 下载积分: 无忧币 -2

回复

使用道具 举报

59#
发表于 2020-12-9 21:10:51 | 显示全部楼层
本帖最后由 liuzhaoyzz 于 2020-12-10 09:57 编辑
2011yaya2007777 发表于 2020-12-9 15:18
内存类型由 GRUB_EFI_RUNTIME_SERVICES_DATA
修改为 GRUB_EFI_PERSISTENT_MEMORY,虚拟机测试,分配不成 ...

Good news!Good job!
用yaya2020.12.09分享的这个内存类型为GRUB_EFI_RESERVED_MEMORY_TYPE的版本,成功进入UEFI-WIN10-RAMOS!我现在VHD里面是MBR分区,一个激活的FAT32分区+一个NTFS分区,我估计单分区也可以,等下试下。

哦,刚才试了,VHD里面只有一个MBR格式的NTFS分区,也能够顺利启动UEFI-SVBUS-RAMOS,我想要表达的是,可能VHD之外的引导器比如bootmgfw.efi/bootx64.efi/g4e/grub2需要存放在FAT32分区,便于主板能够找到(有的主板支持全部都是NTFS分区UEFI启动),而VHD内部的bootmgfw.efi应该不需要放在FAT32分区。
晚点我做个详细的教程贴上来。


UEFI-SVBUS-WIN10.jpg (57.27 KB, 下载次数: 116)

UEFI-SVBUS-WIN10.jpg

内存已用.jpg (78.96 KB, 下载次数: 125)

内存已用.jpg
回复

使用道具 举报

60#
发表于 2020-12-9 21:36:26 | 显示全部楼层
2011yaya2007777 发表于 2020-12-9 21:17
好消息,棒棒哒!关键是你搜索到精准的能定位问题的信息。

感谢!点赞!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-7 15:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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