无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
751#
 楼主| 发表于 2020-12-11 07:44:45 来自手机 | 只看该作者
liuzhaoyzz:你把WIN81.VHD里的大文件都去除,体积不要改变,然后用其他工具压缩,发上来,我研究一下。

点评

这个已经是极限了啊,这是飞天舞做的,如果再精简,估计windows都不能启动了,esd需要用winntsetup安装到本机vhd里面。  详情 回复 发表于 2020-12-11 12:11
回复

使用道具 举报

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

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

使用道具 举报

753#
发表于 2020-12-11 12:11:17 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-13 10:33 编辑
2011yaya2007777 发表于 2020-12-11 07:44
liuzhaoyzz:你把WIN81.VHD里的大文件都去除,体积不要改变,然后用其他工具压缩,发上来,我研究一下。

这个已经是极限了啊,这是飞天舞做的,如果再精简,估计windows都不能启动了,esd需要用winntsetup安装到本机vhd里面。


NTFS分区可以用NTFS压缩减小体积。
回复

使用道具 举报

754#
 楼主| 发表于 2020-12-11 12:20:04 来自手机 | 只看该作者
本帖最后由 2011yaya2007777 于 2020-12-11 12:22 编辑

因为失败在chainloader,所以不需要启动windows,可能与vhd结构有关,我瞎猜。

点评

vhd单分区我成功启动了的啊。你看734楼。http://wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4191843&fromuid=298214 实在是费解,WIN10-RAMOS可以启动,WIN7 8-RAMOS失败。  详情 回复 发表于 2020-12-11 14:19
试: 硬改 img护展名 为 vhd bcd不出菜单 结论:img 和 vhd 是有差别的  详情 回复 发表于 2020-12-11 12:39
回复

使用道具 举报

755#
发表于 2020-12-11 12:39:15 | 只看该作者
本帖最后由 2011whp 于 2020-12-11 13:31 编辑
2011yaya2007777 发表于 2020-12-11 12:20
因为失败在chainloader,所以不需要启动windows,可能与vhd结构有关,我瞎猜。

试:   硬改 img护展名 为 vhd  

bcd不出菜单

结论:img  和 vhd 是有差别的

点评

肯定是有差别的呀,结合当时上下文环境的语意,我的意思是说,0xc0000225和0xc0000017这样子的错误与img或者vhd格式关系不大,后来的事实也证明,应该是efi环境想要抢占某片内存地址,windows loader说这是它的底盘  详情 回复 发表于 2020-12-11 14:24
回复

使用道具 举报

756#
发表于 2020-12-11 13:07:02 | 只看该作者
非常奇怪,为什么map --mem(和map --mem --top)失败以后map --status会多出两项来?
使用的是wintoflash提供的那个vhd,内存16GB,vhd解压后5GB。使用的命令行见图。







——————作为对照,开机后直接displaymem的结果——————


回复

使用道具 举报

757#
 楼主| 发表于 2020-12-11 13:28:27 来自手机 | 只看该作者
加载了一个光盘镜像,还有一个软盘镜像,就是启动分区,或者叫启动软盘。

点评

Good News!我搞定了g4e+UEFI-WIN7-RAMOS了!但是grub2+UEFI-WIN7-RAMOS仍然失败,我去grub2那个帖子贴个图。 UEFI-WIN8-RAMOS回家再试。 2、分区调整好之后,还要调整VHD内部的BCD,(FAT32/ESP)\EFI\Microsoft  详情 回复 发表于 2020-12-11 16:49
回复

使用道具 举报

758#
发表于 2020-12-11 14:19:27 | 只看该作者
2011yaya2007777 发表于 2020-12-11 12:20
因为失败在chainloader,所以不需要启动windows,可能与vhd结构有关,我瞎猜。

vhd单分区我成功启动了的啊。你看734楼。http://wuyou.net/forum.php?mod=r ... &fromuid=298214
实在是费解,WIN10-RAMOS可以启动,WIN7 8-RAMOS失败。
回复

使用道具 举报

759#
发表于 2020-12-11 14:24:27 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-11 19:27 编辑
2011whp 发表于 2020-12-11 12:39
试:   硬改 img护展名 为 vhd  

bcd不出菜单

肯定是有差别的呀,结合当时上下文环境的语意,我的意思是说,0xc0000225和0xc0000017这样子的错误与img或者vhd格式关系不大,后来的事实也证明,应该是efi环境想要抢占某片内存地址,windows loader说这是它的地盘,不让用导致启动失败。

不知道WIN7 WIN8-RAMOS启动失败是不是也是这个原因,就是“内存冲突”,天马行空,胡乱猜测的,高手勿笑。

回复

使用道具 举报

760#
 楼主| 发表于 2020-12-11 15:18:05 来自手机 | 只看该作者
Taviruni 说,有可能是WIN7,8只支持旧版本的UEFI,新的扩展函数不支持。
回复

使用道具 举报

761#
发表于 2020-12-11 15:56:50 | 只看该作者
在我的台式机上,(hd-1,1) 是 FAT32 的 ESP 分区,里面有传统 BIOS 和 EFI 启动的相关文件,G4E 直接 chainloader /efi/microsoft/boot/bootmgfw.efi 时,都会出现 BCD 错误而启动不了 Windows,但是如果只是 chainloader (hd-1)  却正常。而使用 chainloader (hd-1,1) 时,可以出来 BCD 菜单,但是选择启动菜单中的 Windows 系统时,会提示“可能是最近更改了硬件或软件”而启动不了。

另外,G4E 的硬盘排序似乎有些问题?我 SATA1 上挂的是 MBR 格式的 SSD,SATA2 挂的是 GPT 格式的机械硬盘,G4D 和 UEFI BIOS 都将 SSD 盘识别为 0,但是 G4E 总是将 SSD 识别为 1,机械盘才是 0。
回复

使用道具 举报

762#
发表于 2020-12-11 16:04:52 来自手机 | 只看该作者
本帖最后由 sunsea 于 2020-12-11 16:08 编辑

其实从头到尾最让我迷惑的还是为什么chainloader (hd1)就能正常启动直接加载哪怕是本地硬盘上的bootmgfw.efi文件就不行(不会报错,直接boot指令后黑屏死机,中间花一条线)……难道在UEFI时代了M$还只认0x80吗……
回复

使用道具 举报

763#
 楼主| 发表于 2020-12-11 16:34:16 来自手机 | 只看该作者
这个问题困扰我多时了,就是没有答案。

点评

感觉可以研究一下grub2怎么做的,人家直接set root=XXXX然后就chainloader bootmgfw.efi了就没出问题……  详情 回复 发表于 2020-12-11 16:50
在代码层次这两个有区别吗?  详情 回复 发表于 2020-12-11 16:37
回复

使用道具 举报

764#
发表于 2020-12-11 16:37:56 | 只看该作者
2011yaya2007777 发表于 2020-12-11 16:34
这个问题困扰我多时了,就是没有答案。

在代码层次这两个有区别吗?
回复

使用道具 举报

765#
发表于 2020-12-11 16:49:44 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-13 10:34 编辑
2011yaya2007777 发表于 2020-12-11 13:28
加载了一个光盘镜像,还有一个软盘镜像,就是启动分区,或者叫启动软盘。

Good News!我搞定了g4e+UEFI-WIN7-RAMOS了!但是grub2+UEFI-WIN7-RAMOS仍然失败,我去grub2那个帖子贴个图。
UEFI-WIN8-RAMOS回家再试。


多出来3个盘符,外国网友也是这么说的:




果然如yaya和Wintoflash所说,国外网友也是这么建议的,VHD内部最好采用双分区,我的VHD内部是MBR分区格式,激活的FAT32分区+NTFS分区,对于WIN10似乎VHD内只要一个分区即可,但是对于WIN7,必须要双分区,本人亲测!


1、如果原来VHD内部是单分区,可以进入PE,挂载该VHD,用傲梅分区助手在硬盘前部划分出一个分区出来,创建一个新的FAT32分区,然后格式化,然后用bcdboot修复引导,bcdboot %windisk%:\windows /s %bootdisk%: /l zh-CN /f %bootmode%,注意windows所在的盘符,要选择VHD的NTFS所在分区的那个盘符。 一键修复引导.rar (577 Bytes, 下载次数: 2)

然后删除NTFS分区里面的EFI和boot目录,(改个名字也可以),否则对于WIN7、WIN8,grub4dos UEFI版本加载的时候仍然会出现” boot_image_handle not found”的错误。


2、分区调整好之后,还要调整VHD内部的BCD,(VHD的FAT32/ESP)\EFI\Microsoft\Boot\BCD,手工选择启动磁盘和启动分区,启动分区就是VHD内部的那个NTFS分区:



2、VHD内部的启动分区调整好之后,还要调整VHD外部的BCD,否则用bootmgfw.efi启动vhd的时候会提示0xc000000f错误,(主硬盘FAT32/ESP)\EFI\Microsoft\Boot\BCD:




回复

使用道具 举报

766#
发表于 2020-12-11 16:50:26 来自手机 | 只看该作者
2011yaya2007777 发表于 2020-12-11 16:34
这个问题困扰我多时了,就是没有答案。

感觉可以研究一下grub2怎么做的,人家直接set root=XXXX然后就chainloader bootmgfw.efi了就没出问题……
回复

使用道具 举报

767#
 楼主| 发表于 2020-12-11 16:56:25 来自手机 | 只看该作者
在代码层次有区别。代码就是移植自GRUB2,当然做了一些调整。问题是没有看出本质区别。

点评

那就只能咨询一下wintoflash大佬了……真的非常迷惑  详情 回复 发表于 2020-12-11 17:02
回复

使用道具 举报

768#
发表于 2020-12-11 17:02:22 来自手机 | 只看该作者
本帖最后由 sunsea 于 2020-12-11 19:23 编辑
2011yaya2007777 发表于 2020-12-11 16:56
在代码层次有区别。代码就是移植自GRUB2,当然做了一些调整。问题是没有看出本质区别。

那就只能咨询一下 @wintoflash 大佬了……真的非常迷惑
回复

使用道具 举报

769#
发表于 2020-12-11 18:10:37 | 只看该作者
本帖最后由 2011whp 于 2020-12-12 19:06 编辑

那个 300M  svbus  imgpe  

img  
     没有碎片,不加  --mem  也能启动,识别为磁盘
     不会 人为制造 碎片,估计 有碎片 不加 --mem 也启动不了

后来把 boot.wim,加到 iso内(复制 到 U盘 有两个碎片)
    iso  不加 --mem  时 一直 在四格窗   那转圈
    iso   加  --mem   正常启动,识别为 光盘


点评

svbus是明确不支持碎片的,源代码就这样。  详情 回复 发表于 2020-12-11 18:18
回复

使用道具 举报

770#
发表于 2020-12-11 18:18:43 | 只看该作者
2011whp 发表于 2020-12-11 18:10
那个 300M  svbus  imgpe  

img  

svbus是明确不支持碎片的,源代码就这样。

点评

有碎片等于有“硬盘坏道”,我试过有碎片能认盘,但数据坏了不少。  详情 回复 发表于 2020-12-11 22:31
回复

使用道具 举报

771#
发表于 2020-12-11 18:21:13 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-11 18:23 编辑

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

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

点评

单分区估计用efishell下load ntfs_x64.efi或grub2环境efiload ntfs_x64.efi一下就可以 关键貌似efishell下并不能启动g4e。。  详情 回复 发表于 2020-12-11 22:30
估计 win10 的 winload 已经 不回向 检测引导 从哪来了, 而win8以下 有回向检测, 不管对错,咱先圆满现实  详情 回复 发表于 2020-12-11 18:52
回复

使用道具 举报

772#
发表于 2020-12-11 18:52:17 | 只看该作者
本帖最后由 2011whp 于 2020-12-15 17:38 编辑
liuzhaoyzz 发表于 2020-12-11 18:21
好消息! g4e/grub2+svbus+win8.1RAMOS启动成功!vhd里面也是用的激活的FAT32+NTFS分区双分区方案,单分区 ...

估计 win10 的 winload  已经 不回向 检测引导  从哪来了,
    而win8以下 有回向检测,  不管对错,咱先圆满现实
   

点评

svbus驱动目前已经通杀+win7 8 10-UEFI-RAMOS!  详情 回复 发表于 2020-12-11 18:55
回复

使用道具 举报

773#
发表于 2020-12-11 18:55:18 | 只看该作者
2011whp 发表于 2020-12-11 18:52
估计 win10 的 winload  已经 不回向 检测引导  从哪来了,
    而win8以下 有回向检测,  不管对错,咱 ...

svbus驱动目前已经通杀+win7 8 10-UEFI-RAMOS!就看看大家的电脑怎么样,还有没有其他的问题,需要更广泛的测试。
回复

使用道具 举报

774#
发表于 2020-12-11 21:03:38 | 只看该作者
又有G4E玩了啊,大半年没搞这个了,又忘得差不多了。
回复

使用道具 举报

775#
发表于 2020-12-11 22:30:58 | 只看该作者
liuzhaoyzz 发表于 2020-12-11 18:21
好消息! g4e/grub2+svbus+win8.1RAMOS启动成功!vhd里面也是用的激活的FAT32+NTFS分区双分区方案,单分区 ...

单分区估计用efishell下load ntfs_x64.efi或grub2环境efiload ntfs_x64.efi一下就可以
关键貌似efishell下并不能启动g4e。。

点评

g4e与efishell来回切换总感觉有点绕弯儿。 ntfs_x64.efi,感觉上有点当年的NTFS2DOS.exe那样,让DOS识别NTFS分区内的文件。  详情 回复 发表于 2020-12-12 13:54
试了,efi shell 下能启动 g4e (你说的情况,估计是g4e不支持递归,内存中不能有两个 g4e)  详情 回复 发表于 2020-12-12 08:06
回复

使用道具 举报

776#
发表于 2020-12-11 22:31:47 | 只看该作者
sunsea 发表于 2020-12-11 18:18
svbus是明确不支持碎片的,源代码就这样。

有碎片等于有“硬盘坏道”,我试过有碎片能认盘,但数据坏了不少。
回复

使用道具 举报

777#
发表于 2020-12-12 08:06:40 | 只看该作者
本帖最后由 2011whp 于 2020-12-12 14:11 编辑
江南一根葱 发表于 2020-12-11 22:30
单分区估计用efishell下load ntfs_x64.efi或grub2环境efiload ntfs_x64.efi一下就可以
关键貌似efishell ...

试了,efi shell 下能启动 g4e




回复

使用道具 举报

778#
 楼主| 发表于 2020-12-12 09:21:55 | 只看该作者
wintoflash :
你看看我修改的这个Makefile.in-i386,在你的电脑环境可否编译成功。
或者把你修改成功的发过来。

file.rar.txt

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

点评

可以。  详情 回复 发表于 2020-12-12 09:51
回复

使用道具 举报

779#
发表于 2020-12-12 09:51:47 | 只看该作者
2011yaya2007777 发表于 2020-12-12 09:21
wintoflash :
你看看我修改的这个Makefile.in-i386,在你的电脑环境可否编译成功。
或者把你修改成功的发 ...

可以。
回复

使用道具 举报

780#
发表于 2020-12-12 11:49:24 | 只看该作者
真心支持,要是支持nvram的读取就好了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 14:12

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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