无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
931#
发表于 2020-12-27 10:17:16 | 只看该作者
回复

使用道具 举报

932#
发表于 2020-12-27 15:52:34 | 只看该作者
收下我的膝盖!
回复

使用道具 举报

933#
发表于 2020-12-27 20:38:27 来自手机 | 只看该作者
  大神们,请问下这是怎么回事?      

IMG_20201227_133158.jpg (26.99 KB, 下载次数: 209)

IMG_20201227_133158.jpg

IMG_20201227_165027.jpg (53.43 KB, 下载次数: 177)

IMG_20201227_165027.jpg

IMG_20201227_165142.jpg (59.5 KB, 下载次数: 211)

IMG_20201227_165142.jpg

IMG_20201227_165154.jpg (40.9 KB, 下载次数: 184)

IMG_20201227_165154.jpg
回复

使用道具 举报

934#
发表于 2020-12-28 08:25:51 | 只看该作者
2011yaya2007777 发表于 2020-12-26 11:54
liuzhaoyzz :
可以使用这个测试。

        这个版本没有推送到github吗?chenall的网站没见到啊。我想让国外的网友试下FAT32+NTFS双分区模式下,激活的FAT32分区是否能够被优先引导。如果可以的话,NTFS分区的EFI目录就不需要改名字了。
回复

使用道具 举报

935#
 楼主| 发表于 2020-12-28 09:27:57 | 只看该作者
这个版本没有推送到github吗?

没有。但是在 https://github.com/chenall/grub4dos/issues/248,给 alacran 上传了一个。
回复

使用道具 举报

936#
 楼主| 发表于 2020-12-29 09:53:54 | 只看该作者
终于搞定了 1522Kb 的 bootmgfw.efi! 排查得好辛苦。

BOOTX64.rar

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

点评

OK 圆满 元旦 前 进入 正式版 VBOX试了,在试实机  详情 回复 发表于 2020-12-29 11:16
大神,请问下这个版本是什么意思?是给我的吗?用于解决939楼的failed to load virtual partition image的问题吗?  详情 回复 发表于 2020-12-29 09:59
回复

使用道具 举报

937#
发表于 2020-12-29 09:56:50 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-29 10:09 编辑
2011yaya2007777 发表于 2020-12-24 10:58
我看过前面论述primo的贴子,提到vdf有碎片,g4e就会抛出too many fragments这样的错误。
可是到底有没有 ...

本人今天亲测,SX70211.vhd放在机械硬盘,在g4e下面用blocklist显示有3个碎片(有截图),wincontig在windows下显示有4个碎片,直接map和map --mem都成功。vhd里面有svbus驱动加持。以前的关于碎片问题的场景倒底是怎么回事,搞不清楚了,可能多次测试导致的死机把vhd搞坏了吧。
title WIN7X64-SVBUS (/VHD/SX70211.vhd)
find --ignore-floppies --ignore-cd --set-root /EFI/grub/ntfs_x64.efi
load /EFI/grub/ntfs_x64.efi
find --ignore-floppies --ignore-cd --set-root /VHD/SX70211.vhd
map /VHD/SX70211.vhd (hd)
chainloader (hd-1)



另外,g4e在选择菜单的时候,似乎必须要按大写的"E"键才能进入菜单编辑模式,小写的"e"键似乎不行?


IMG_20201229_100638.jpg (68.27 KB, 下载次数: 385)

IMG_20201229_100638.jpg

点评

--mem-2048-1-2 这么说 只要第一个碎片 足够大, 启动到 P驱 起作用,就可以了 这个vhd 是不是微软 适应 VHD了 (微软怎么完整化 vhd的,说不清,用着没区别么?) (难道 微软 已有svbus的 机制 重合  详情 回复 发表于 2020-12-29 11:24
回复

使用道具 举报

938#
发表于 2020-12-29 09:59:17 | 只看该作者
2011yaya2007777 发表于 2020-12-29 09:53
终于搞定了 1522Kb 的 bootmgfw.efi! 排查得好辛苦。

        大神,请问下这个版本是什么意思?是给我的吗?用于解决939楼的failed to load virtual partition image的问题吗?辛苦了!感谢!

我只有等中午或者晚上抽空回家,针对那个vdf镜像做测试了。
回复

使用道具 举报

939#
 楼主| 发表于 2020-12-29 10:51:28 | 只看该作者
请问下这个版本是什么意思?是给我的吗

不是专门给你的。
以前 chainloader /efi/microsoft/boot/bootmgfw.efi ,有的可以启动,但是 1522Kb 的那个启动失败。

本人今天亲测,SX70211.vhd放在机械硬盘

谢谢测试。直接map和map --mem都成功,有点奇怪。不用管他了,等以后遇到碎片问题再说吧。

g4e在选择菜单的时候,似乎必须要按大写的"E"键才能进入菜单编辑模式,小写的"e"键似乎不行?

小写“e”可以呀。是不是你的电脑特殊?

点评

台式机USB键盘没问题,笔记本的键盘好像有点问题,奇怪得很。不过这是个很小的问题。  详情 回复 发表于 2020-12-30 16:03
回复

使用道具 举报

940#
发表于 2020-12-29 11:16:14 | 只看该作者
本帖最后由 2011whp 于 2020-12-29 18:18 编辑
2011yaya2007777 发表于 2020-12-29 09:53
终于搞定了 1522Kb 的 bootmgfw.efi! 排查得好辛苦。

OK  圆满   元旦 前 进入    正式版

bootmgfw.efi 正常了  
   可以启动   wim
   实机   chainloader    /efi/boot/bootx64.efi   也可以了
@yaya  是什么原因呢,猜了一个多月了


回复

使用道具 举报

941#
发表于 2020-12-29 11:24:02 | 只看该作者
本帖最后由 2011whp 于 2020-12-29 20:54 编辑
liuzhaoyzz 发表于 2020-12-29 09:56
本人今天亲测,SX70211.vhd放在机械硬盘,在g4e下面用blocklist显示有3个碎片(有截图),wincontig在win ...

--mem-2048-1-2

这么说 只要第一个碎片 足够大,
启动到  P驱 起作用,就可以了

这个vhd  是不是微软 适应 VHD了
(微软标准启动   也是采用 map的 vhd,boot.sdi 作用没了,微软 自个 找到了呗)

点评

vhd里面是svbus驱动,bcd是分区。  详情 回复 发表于 2020-12-29 12:19
回复

使用道具 举报

942#
发表于 2020-12-29 12:19:17 来自手机 | 只看该作者
2011whp 发表于 2020-12-29 11:24
--mem-2048-1-2

这么说 只要第一个碎片 足够大,

vhd里面是svbus驱动,bcd是分区。
回复

使用道具 举报

943#
发表于 2020-12-29 13:18:54 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-29 13:34 编辑

2020-12-29日,报告下好消息,UEFI-RAMOS已被彻底攻克:
一、抛弃ntfs_x64.efi的情况下,grub2+ntboot已完成了通杀WIN7 8 10单镜像、双镜像:
1、ntboot启动WIN7 8.1 10+基于svbus驱动的vhd到内存成功。
2、ntboot启动WIN7 8.1 10+基于primo驱动的RAMOS成功,包括单镜像、双镜像模式。
WIN7 8.1 10双镜像模式支持无压缩、compact压缩、wimboot压缩。
有个win7英文版遇到问题,但我怀疑可能是系统搞坏了,以后有空再验证下。


二、保留ntfs_x64.efi的情况下,g4e/grub2的map已完成了通杀WIN7 8 10单镜像、双镜像:
1、map --mem启动WIN7 8.1 10+基于svbus驱动的vhd到内存成功。
2、直接map启动WIN7 8.1 10+基于primo驱动的RAMOS成功,包括单镜像、双镜像模式。
WIN7 8.1 10双镜像模式支持无压缩、compact压缩、wimboot压缩。
有个win7英文版遇到问题,但我怀疑可能是系统搞坏了,以后有空再验证下。
向Wintoflash、2011yaya2007777、sunsea等等等等各位大神,这么长时间的付出表示衷心的感谢!

点评

报告个好消息,WIN7英文版,单镜像测试没问题了,可能是系统搞乱了的问题,我重新做了个WIN7英文版测试,正常启动win7enpd-primo-ueif-ramos。ntboot和直接map都可以,没问题。 939楼截图中failed to load imag  详情 回复 发表于 2020-12-31 07:47
回复

使用道具 举报

944#
 楼主| 发表于 2020-12-29 14:57:12 | 只看该作者
本帖最后由 2011yaya2007777 于 2020-12-29 14:58 编辑

liuzhaoyzz:
首先要祝贺你,通过辛勤劳动取得了丰硕战果!

其次有点不甘心,还是想弄明白,到底 SVBus 是否支持碎片。
如果你 934# 的环境还在的话,不妨再进一步测试。
第三个碎片在 0x4f2926c0 扇区,也就是在 0x9e524d8000 字节。在 windows 使用 WinHex 打开物理驱动器(不是逻辑驱动器)hd0,定位到该字节,截图。

使用
map /VHD/SX70211.vhd (hd)
chainloader (hd-1)
进入 windows,使用 WinHex 打开这个虚拟的物理驱动器,定位到 (0xc00008+0x13f908)*0x200=0x1a7f22000字节,截图。

使用
map --mem /VHD/SX70211.vhd (hd)
chainloader (hd-1)
进入 windows,使用 WinHex 打开这个虚拟的物理驱动器,定位到 (0xc00008+0x13f908)*0x200=0x1a7f22000字节,截图。

研究这三张图,就有结论了。

点评

应该是943楼吧,环境还在的,等我试下,然后更新帖子。  详情 回复 发表于 2020-12-29 15:44
不支持。江南一根葱已经试过了。  详情 回复 发表于 2020-12-29 15:06
回复

使用道具 举报

945#
发表于 2020-12-29 15:06:44 | 只看该作者
2011yaya2007777 发表于 2020-12-29 14:57
liuzhaoyzz:
首先要祝贺你,通过辛勤劳动取得了丰硕战果!

不支持。江南一根葱已经试过了。
回复

使用道具 举报

946#
 楼主| 发表于 2020-12-29 15:22:13 | 只看该作者
本帖最后由 2011yaya2007777 于 2020-12-29 15:25 编辑
@yaya  是什么原因呢,猜了一个多月了

我先编译了一个 grub2,其中增加了一些调试信息。通过比对,发现 grub2 的文件路径包含分区信息。
将 G4E 的文件路径也增加分区信息后,还是不行。之后就卡壳了。
后来发现 UEFI 固件的分区信息里也有一个句柄,使用这个句柄替换加载镜像结构里的设备句柄,居然成功了!
UEFI 文档里是 device_handle,没有过多解释,以为就是设备句柄。也可能是没有仔细预读。

点评

你是说这个吧。 https://github.com/a1ive/grub/blob/ad36e323b92047615cd0b57750ca0a361ad8262f/grub-core/loader/efi/chainloader.c#L1028 /* LoadImage does not set a device handler when the image is  详情 回复 发表于 2020-12-29 15:43
回复

使用道具 举报

947#
 楼主| 发表于 2020-12-29 15:33:43 | 只看该作者
不支持。江南一根葱已经试过了。

那就是有结论了。
我不清楚,加载 SVBus 的情况,使用  map /xxx.vhd (hd) 的时候多,还是使用   map --mem /xxx.vhd (hd) 的时候多?
有没有必要给  SVBus 的作者提供一个支持碎片的补丁?
回复

使用道具 举报

948#
发表于 2020-12-29 15:43:29 | 只看该作者
2011yaya2007777 发表于 2020-12-29 15:22
我先编译了一个 grub2,其中增加了一些调试信息。通过比对,发现 grub2 的文件路径包含分区信息。
将 G4 ...

你是说这个吧。
https://github.com/a1ive/grub/bl ... chainloader.c#L1028
/* LoadImage does not set a device handler when the image is
     loaded from memory, so it is necessary to set it explicitly here.
     This is a mess.  */
回复

使用道具 举报

949#
发表于 2020-12-29 15:44:42 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-29 16:09 编辑
2011yaya2007777 发表于 2020-12-29 14:57
liuzhaoyzz:
首先要祝贺你,通过辛勤劳动取得了丰硕战果!

应该是943楼吧,环境还在的,等我试下,然后更新帖子。
第三个碎片在 0x4f2926c0 扇区,也就是在 0x9e524d8000 字节。在 windows 使用 WinHex 打开物理驱动器(不是逻辑驱动器)hd0,定位到该字节,截图。我不知道怎么跳转到字节。。。怎么截图都是0???navigation→goto offset?选择字节吗?


大葱验证了,我就不用验证了吧。。。
加载 SVBus 的情况,使用  map /xxx.vhd (hd) 的时候多,还是使用   map --mem /xxx.vhd (hd) 的时候多?
有没有必要给  SVBus 的作者提供一个支持碎片的补丁?

svbus肯定是用map --mem /xxx.vhd (hd) 的时候多,map /xxx.vhd (hd) 用的少,而且map /xxx.vhd (hd) 可以直接用bootmgfw.efi来引导xxx.vhd代替他。

回复

使用道具 举报

950#
 楼主| 发表于 2020-12-29 15:45:33 | 只看该作者
liuzhaoyzz:
alacran 反馈的问题:grub2 -> g4e,然后 map --mem /xxx.vhd (hd) ,不能加载大于 1.3Gb 的镜像(好像他的内存 8Gb)
你遇到此类问题吗?可否帮忙测试一下:
进入 grub2,测试一下内存发布(不知 brub2 有没有此类命令),然后进入 g4e ,执行 displaymem ,看看可用内存的变化情况。

虚拟机也好,实体机也好,必须关机后再启动,才能释放内存。我看他的截图,失败时状态码是 0x8000000000000009,就是内存不足。

点评

我没有遇到这样的问题,因为我从来就没想过尝试g4e→grub2来回跳转过。 需要怎样的测试?g4e我知道有displaymem命令,grub2我不知道,好象没有啊?  详情 回复 发表于 2020-12-29 16:14
回复

使用道具 举报

951#
 楼主| 发表于 2020-12-29 15:58:52 | 只看该作者
你是说这个吧。

我编译32位的时候就看到这句话了,但是没有理解了。我看到 grub_efi_loaded_image 结构里, device_handle 已经赋值,就以为 UEFI 固件改进了,此处注释过时了。
现在仔细想想,是由于 grub2 讲的是 磁盘、设备、文件,而 g4d 讲的是 磁盘、分区。同样问题,描述不同。
回复

使用道具 举报

952#
 楼主| 发表于 2020-12-29 16:03:54 | 只看该作者
svbus肯定是用map --mem /xxx.vhd (hd) 的时候多,map /xxx.vhd (hd) 用的少,而且map /xxx.vhd (hd) 可以直接用bootmgfw.efi来引导xxx.vhd代替他。

那就算了吧,不管 SVBus 的碎片问题了,省省心吧。
回复

使用道具 举报

953#
发表于 2020-12-29 16:14:34 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-29 16:18 编辑
2011yaya2007777 发表于 2020-12-29 15:45
liuzhaoyzz:
alacran 反馈的问题:grub2 -> g4e,然后 map --mem /xxx.vhd (hd) ,不能加载大于 1.3Gb 的 ...

我没有遇到这样的问题,因为我从来就没想过尝试g4e→grub2来回跳转过。

需要怎样的测试?g4e我知道有displaymem命令,grub2我不知道,好象没有啊?

hexdump (mem)
??

点评

lsmmap lsefimmap  详情 回复 发表于 2020-12-29 16:43
回复

使用道具 举报

954#
 楼主| 发表于 2020-12-29 16:26:44 来自手机 | 只看该作者
liuzhaoyzz:不用测试了。撤回2个测试请求。

点评

哦,好的。  发表于 2020-12-29 18:24
回复

使用道具 举报

955#
发表于 2020-12-29 16:43:36 | 只看该作者
liuzhaoyzz 发表于 2020-12-29 16:14
我没有遇到这样的问题,因为我从来就没想过尝试g4e→grub2来回跳转过。

需要怎样的测试?g4e我知道有d ...

lsmmap
lsefimmap
回复

使用道具 举报

956#
发表于 2020-12-30 09:20:45 | 只看该作者
29 号的版本太棒了!可以读取 NTFS 格式分区里的 EFI 文件了,也引导 BOOTMGFW.EFI 了!这样一来,单镜像单分区之类的 RAMOS 就更省心了!

至于使用 SVBUS 的情况,一般是内存居多,但是偶尔也需要非内存的——不知道是我自己电脑本身或者是制作的 WIN7 VHD 问题,还是其他什么问题,我的这个 VHD WIN7 自从安装了 SVBUS 之后,无论是传统还是 UEFI 下非 G4D/G4E 映射启动,都会在选择启动项后蓝屏,启动不下去!
回复

使用道具 举报

957#
发表于 2020-12-30 16:03:39 | 只看该作者
本帖最后由 liuzhaoyzz 于 2020-12-30 16:06 编辑
2011yaya2007777 发表于 2020-12-29 10:51
不是专门给你的。
以前 chainloader /efi/microsoft/boot/bootmgfw.efi ,有的可以启动,但是 1522Kb 的 ...
小写“e”可以呀。是不是你的电脑特殊?

台式机USB键盘没问题,笔记本的键盘好像有点问题,奇怪得很。不过这是个很小的问题。        

另外有网友反应g4e启动黑屏的问题。好象有三例了。
http://bbs.c3.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=423275&pid=4206391&fromuid=298214
回复

使用道具 举报

958#
 楼主| 发表于 2020-12-30 16:48:34 来自手机 | 只看该作者
本帖最后由 2011yaya2007777 于 2020-12-30 17:03 编辑

我已经回复了该帖。如果禁用图形模式成功,可能是不支持通用图形模式。如果任然不行,那就是启动管理器没有设置对。一般电脑插入U盘,启动管理器就会自动列入启动菜单。可是他的第一张截图,视乎是由什么软件设置的。
他可能是从硬盘启动的,可能是启动目录不合适。

点评

他的第一张图,用的是bootice添加UEFI引导序列的功能,这个功能我也在用没问题的。目录的问题,他有帖子截图了,我看了好像也是对的,问题有点奇怪。  详情 回复 发表于 2020-12-30 19:01
回复

使用道具 举报

959#
发表于 2020-12-30 19:01:06 来自手机 | 只看该作者
2011yaya2007777 发表于 2020-12-30 16:48
我已经回复了该帖。如果禁用图形模式成功,可能是不支持通用图形模式。如果任然不行,那就是启动管理器没有 ...

  他的第一张图,用的是bootice添加UEFI引导序列的功能,这个功能我也在用没问题的。目录的问题,他有帖子截图了,我看了好像也是对的,问题有点奇怪。      
回复

使用道具 举报

960#
发表于 2020-12-30 19:08:40 | 只看该作者
支持一下,,,,
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 15:13

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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