无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
1111#
发表于 2021-1-18 20:38:28 | 只看该作者
本帖最后由 2011whp 于 2021-1-18 20:53 编辑
liuzhaoyzz 发表于 2021-1-18 20:02
2002年,grub2.0 改进重写???        还没有发布,何谈改进重写?版本号不对吧。。。
       200 ...

2002年 改进重写 grub1.X
好比  yaya 的efi版  从起心开发,估计 一年以前了, 写ia32  估计  2020年初 动手实施

记不清了,我是 GRUB2.04 发布时,头脑热了一段时间, 历史是 当时的 查的,有不对的
记得的 ,说下g4d 历史时刻,还有g4d 在github上有分支在?是不是g4e接力上了



回复

使用道具 举报

1112#
发表于 2021-1-19 10:58:18 | 只看该作者
liuzhaoyzz 发表于 2021-1-18 16:44
这样的问题很奇怪,我现在测试的结果,svbus和primo驱动都是直接chainloader (hd-1)这样子的,没 ...

没有被修改过,元旦等版本,是没有问题的。BOOTX64.EFI 是论坛下载的 1,155,424 字节那个版本,好像就是你们提供的吧。我这里无论是实体硬盘和 VHD 虚拟硬盘,也不论是 MBR 还是 GPT 也都是一样的问题。
回复

使用道具 举报

1113#
发表于 2021-1-19 11:01:39 | 只看该作者
本帖最后由 xianglang 于 2021-1-19 11:02 编辑
liuzhaoyzz 发表于 2021-1-18 18:12
你的(hd3)是GPT分区的吗?有ESP分区吗?ESP分区里面/EFI/boot/bootx64.efi存在吗?
为什么find的结果,( ...

消失的 (hd3,1) 分区,可能是 MSR 分区,在我的 GPT 硬盘上,0分区就是 MSR 的,G4E 的 vol 都不会显示的,参看我前几天使用 vol 的截图(http://bbs.wuyou.net/forum.php?m ... &fromuid=112916)。
回复

使用道具 举报

1114#
发表于 2021-1-20 16:13:23 | 只看该作者
支持支持
回复

使用道具 举报

1115#
 楼主| 发表于 2021-1-20 18:49:39 | 只看该作者
支持差分VHD,请测试。
map --mem --parent-vhd-name="父VHD文件名称(带路径)“ 子VHD文件名称(带路径) (hd)
chainloader (hd-1)

BOOTX64.rar

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

点评

发现在 exit_g4d 退回 开机Fx 菜单了, 希望保住 这个功能 (两台机有这 现象) 测试 VHD 那个 2021-1-20版 http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=422652&pid=4221838&fromu  详情 回复 发表于 2021-1-23 19:04
示例 写的父子 颠倒了吧, 颠倒一下,有读内存提示 (QEMe测试)  详情 回复 发表于 2021-1-20 20:06
两级差分是不是这样: map --mem --parent-vhd-name="/vhd/win81_0.vhdx" "/vhd/win81_1b.vhdx" "/vhd/win.vhdx" (hd)  详情 回复 发表于 2021-1-20 20:04
用 bootice建了人 差分vhd map --mem --parent-vhd-name="/Wind400.vhd" /Wind400Z.vhd (hd) 显示器一行文字:booting command-list 死机(没见读内存提示) 这个怎么用呢  详情 回复 发表于 2021-1-20 19:38
回复

使用道具 举报

1116#
 楼主| 发表于 2021-1-20 18:52:23 | 只看该作者
关于官网编译的版本,也即64位环境编译的版本,不能运行外部命令的问题已经定位,近日将处理。
回复

使用道具 举报

1117#
发表于 2021-1-20 19:38:45 | 只看该作者
本帖最后由 2011whp 于 2021-1-20 19:41 编辑
2011yaya2007777 发表于 2021-1-20 18:49
支持差分VHD,请测试。
map --mem --parent-vhd-name="父VHD文件名称(带路径)“ 子VHD文件名称(带路径 ...

用 bootice建了个 差分vhd

map --mem --parent-vhd-name="/Wind400.vhd" /Wind400Z.vhd  (hd)


显示器一行文字:booting  command-list  死机(没见读内存提示)

这个怎么用呢,
回复

使用道具 举报

1118#
 楼主| 发表于 2021-1-20 19:47:58 来自手机 | 只看该作者
用法对。只是文件在当前根目录吗?

点评

[attachimg]473471[/attachimg] 在 g4e分区根目录 流程上,有没有读内存提示 两个vhd, 在win10 上能 挂上,改了 子vhd 父vhd 不变 (内容是:通过改 子vhd,为 refind启动盘)  详情 回复 发表于 2021-1-20 19:59
回复

使用道具 举报

1119#
发表于 2021-1-20 20:04:59 | 只看该作者
2011yaya2007777 发表于 2021-1-20 18:49
支持差分VHD,请测试。
map --mem --parent-vhd-name="父VHD文件名称(带路径)“ 子VHD文件名称(带路径 ...

两级差分是不是这样:
map --mem --parent-vhd-name="/vhd/win81_0.vhdx" "/vhd/win81_1b.vhdx" "/vhd/win.vhdx" (hd)
回复

使用道具 举报

1120#
发表于 2021-1-20 20:06:34 | 只看该作者
本帖最后由 2011whp 于 2021-1-20 20:25 编辑
2011yaya2007777 发表于 2021-1-20 18:49
支持差分VHD,请测试。
map --mem --parent-vhd-name="父VHD文件名称(带路径)“ 子VHD文件名称(带路径 ...



颠倒一下,有读内存提示  (QEMe测试)
颠倒 能读但 内容没有 综合上  子vhd
回复

使用道具 举报

1121#
 楼主| 发表于 2021-1-20 20:14:21 来自手机 | 只看该作者
我理解是:由父创建子。只支持一级差分。不支持vhdx.
回复

使用道具 举报

1122#
发表于 2021-1-20 20:36:53 | 只看该作者
本帖最后由 2011whp 于 2021-1-21 09:00 编辑



Wind400.vhd是 父 vhd




回复

使用道具 举报

1123#
 楼主| 发表于 2021-1-20 20:41:34 来自手机 | 只看该作者
blocklist /Wind400.vhd
回复

使用道具 举报

1124#
发表于 2021-1-20 20:50:46 | 只看该作者
本帖最后由 2011whp 于 2021-1-20 21:05 编辑



Wind400.vhd   400M (vbox虚拟机的g4e测试盘)
Wind400Z.vhd   14M
子vhd内容更改:
   根目录放了一个新文件
   efi/boot/  改名  efi/yboot/
    efi/boot 下为refind


回复

使用道具 举报

1125#
 楼主| 发表于 2021-1-20 21:00:06 来自手机 | 只看该作者
我测试时有一次也是这样,后来又正常了。我没有探究原因。你再启动几次,不行的话,明天再说。

点评

[attachimg]473498[/attachimg] 可以的,全新用 bootice 做了一个 (主vhd 用动态大小 ) 刹问题: 主vhd 是动态大小 是不是必要条件 vhd的 制作软件 是不是可以不同 …………  详情 回复 发表于 2021-1-21 09:29
回复

使用道具 举报

1126#
发表于 2021-1-21 09:29:20 | 只看该作者
本帖最后由 2011whp 于 2021-1-21 19:57 编辑
2011yaya2007777 发表于 2021-1-20 21:00
我测试时有一次也是这样,后来又正常了。我没有探究原因。你再启动几次,不行的话,明天再说。



全新用 bootice1.3.4 做了一个 (主vhd 用动态大小)
能启动 vhd内的 refind
(xiao.vhd   2MB (制作时选100MB)格式为fat32单分区
   xiaoZ.vhd  4MB )


拆解 问题:
主vhd 是动态大小    是不是必要条件
        前几层试的 Wind400.vhd 是固定大小的,用什么制做的忘了
vhd的 制作软件  是不是可以不同
vhd内多分区,有影响不
         前几层试的 Wind400.vhd 是 双分区
  …………

待证 知识:
   vhd固定大小: 首部 无扇区 55AA的MBR即第一扇区    尾部 1个扇区
   vhd动态大小: 首部 有扇区 55AA的MBR浮动    尾部 1个扇区
   子VHD 默认动态大小  第二扇区,有链 父vhd的 标识文件名

    vhdX    尾部 无识别扇区
vhd 所有者公司标识 是conectix     制作者标识 好像都是win








回复

使用道具 举报

1127#
 楼主| 发表于 2021-1-21 11:03:37 来自手机 | 只看该作者
昨天的版本,父vhd只能说动态的。现在正考虑父vhd是固定的。

点评

建议多层差分也考虑一下。 或者可以跟wintoflash参考一下,他改的grub2的ntboot模块是可以直接引导子vhdx的,不用指明父vhd,也不管有几层差分。  详情 回复 发表于 2021-1-22 10:04
为什么chenall网站那里每次发新版本都是那个2020-12-20的置顶呢,能不能改过来,让最新版本置顶。  详情 回复 发表于 2021-1-22 09:49
回复

使用道具 举报

1128#
发表于 2021-1-22 09:49:55 | 只看该作者
2011yaya2007777 发表于 2021-1-21 11:03
昨天的版本,父vhd只能说动态的。现在正考虑父vhd是固定的。

为什么chenall网站那里每次发新版本都是那个2020-12-20的置顶呢,能不能改过来,让最新版本置顶。

点评

这些是 CI 自动生成的页面,因为原来的 CI 已经不能使用了。 正在重新处理,目前自动编译的已经没有可以了,这些天我会处理一下发布页的问题。  详情 回复 发表于 2021-1-22 09:54
回复

使用道具 举报

1129#
发表于 2021-1-22 09:54:16 | 只看该作者
hilsonma 发表于 2021-1-22 09:49
为什么chenall网站那里每次发新版本都是那个2020-12-20的置顶呢,能不能改过来,让最新版本置顶。

这些是 CI 自动生成的页面,因为原来的 CI 已经不能使用了。

正在重新处理,目前自动编译的已经没有可以了,这些天我会处理一下发布页的问题。
回复

使用道具 举报

1130#
发表于 2021-1-22 10:04:11 | 只看该作者
2011yaya2007777 发表于 2021-1-21 11:03
昨天的版本,父vhd只能说动态的。现在正考虑父vhd是固定的。

建议多层差分也考虑一下。
或者可以跟wintoflash参考一下,他改的grub2的ntboot模块是可以直接引导子vhdx的,不用指明父vhd,也不管有几层差分。

点评

我以前说过,ntboot 不会读 vhd。读 vhd 的是 bootmgfw.efi,它支持什么样的格式,那就能启动什么样的vhd。 不是。只是借鉴了 chenall 的 ntboot 的原理。现在 grub2 的 ntboot 和 早期的版本完全不是一回事了。  详情 回复 发表于 2021-1-22 14:34
回复

使用道具 举报

1131#
 楼主| 发表于 2021-1-22 10:28:41 | 只看该作者
grub4dos 有 ntboot 模块,希望有人移植到 grub4dos for uefi。

点评

2021-01-22: 此版本不能正常运行外部命令。无论是从github上下载的,还是自己编译的,都不行。 [attachimg]473610[/attachimg]  详情 回复 发表于 2021-1-22 14:20
如果Wintoflash大神有兴趣,应该很简单。grub2的ntboot就是Wintoflash大神从chenall的ntboot移植过去的。  详情 回复 发表于 2021-1-22 13:51
回复

使用道具 举报

1132#
发表于 2021-1-22 13:51:33 | 只看该作者
2011yaya2007777 发表于 2021-1-22 10:28
grub4dos 有 ntboot 模块,希望有人移植到 grub4dos for uefi。

如果Wintoflash大神有兴趣,应该很简单。grub2的ntboot就是Wintoflash大神从chenall的ntboot移植过去的。
回复

使用道具 举报

1133#
发表于 2021-1-22 14:20:00 | 只看该作者
2011yaya2007777 发表于 2021-1-22 10:28
grub4dos 有 ntboot 模块,希望有人移植到 grub4dos for uefi。

[d039f8f]: . 解决64位环境编译的版本找不到固定数据区的问题。 (yaya)

2021-01-22: 此版本不能正常运行外部命令。
无论是从github上下载的,还是自己编译的,都不行。
是不是外部命令的头文件又要改?
回复

使用道具 举报

1134#
发表于 2021-1-22 14:34:33 | 只看该作者
本帖最后由 wintoflash 于 2021-1-22 14:36 编辑
hilsonma 发表于 2021-1-22 10:04
建议多层差分也考虑一下。
或者可以跟wintoflash参考一下,他改的grub2的ntboot模块是可以直接引导子vhd ...

我以前说过,ntboot 不会读 vhd。读 vhd 的是 bootmgfw.efi,它支持什么样的格式,那就能启动什么样的vhd。
如果Wintoflash大神有兴趣,应该很简单。grub2的ntboot就是Wintoflash大神从chenall的ntboot移植过去的。

不是。只是借鉴了 chenall 的 ntboot 的原理。现在 grub2 的 ntboot 和 早期的版本完全不是一回事了。
grub4dos 有 ntboot 模块,希望有人移植到 grub4dos for uefi。

等你弄好了外部命令,我肯定会弄 ntboot。我个人觉得没必要研究差分 vhd。因为微软的 bootmgfw.efi 支持直接启动差分 vhd,而 linux 下又没有启动差分 vhd 的方案,即使做了也没啥用。

点评

这个我是知道的,BIOS下面的ntboot和grub2-uefi下面的ntboot肯定差别非常之大,作为一个外行人来看你的开发记录和你参考过的知识技术就知道。 静候佳音!  详情 回复 发表于 2021-1-22 15:01
是我表达错误,没关系,可以的话,你就做个g4e的外部命令,让它能象grub2的ntboot一样生成bcd/boot.sdi,然后调用bootmgfw.efi启动vhd就好了。  详情 回复 发表于 2021-1-22 14:44
回复

使用道具 举报

1135#
发表于 2021-1-22 14:44:39 | 只看该作者
wintoflash 发表于 2021-1-22 14:34
我以前说过,ntboot 不会读 vhd。读 vhd 的是 bootmgfw.efi,它支持什么样的格式,那就能启动什么样的vhd ...

是我表达错误,没关系,可以的话,你就做个g4e的外部命令,让它能象grub2的ntboot一样生成bcd/boot.sdi,然后调用bootmgfw.efi启动vhd就好了。
回复

使用道具 举报

1136#
发表于 2021-1-22 14:59:02 | 只看该作者
本帖最后由 2011whp 于 2021-1-22 15:03 编辑

vhdx   x的意思是倍数   就是虚拟盘的 基本存储单位  不是一扇区   最大32扇区

vhd = vhdx  一扇区  (最大支持2T)
          vhdx  32扇区   (最大支持64T)


支持动态vhd好呀, 镜像小,--mem加载快 (好像是依靠文件系统加载了,不像扇区加载 还要加载空白扇区)

回复

使用道具 举报

1137#
发表于 2021-1-22 15:01:23 | 只看该作者
wintoflash 发表于 2021-1-22 14:34
我以前说过,ntboot 不会读 vhd。读 vhd 的是 bootmgfw.efi,它支持什么样的格式,那就能启动什么样的vhd ...
只是借鉴了 chenall 的 ntboot 的原理。现在 grub2 的 ntboot 和 早期的版本完全不是一回事了。

这个我是知道的,BIOS下面的ntboot和grub2-uefi下面的ntboot肯定差别非常之大,作为一个外行人来看你的开发记录和你参考过的知识技术就知道。

等你弄好了外部命令,我肯定会弄 ntboot。
静候佳音!
回复

使用道具 举报

1138#
发表于 2021-1-22 15:05:03 | 只看该作者
本帖最后由 2011whp 于 2021-1-22 15:17 编辑

新理论:

引导器:抽象技术  识应技术   前置技术

http://bbs.wuyou.net/forum.php?m ... =423059&pid=4181258
ntboot   属于 bootmgfw的 前置技术

目前 ntboot 已前置到 grub 205
(像 grub.exe  可前置到 dos 和 grub205传统)
回复

使用道具 举报

1139#
 楼主| 发表于 2021-1-22 16:27:51 | 只看该作者
2021-01-22: 此版本不能正常运行外部命令。 无论是从github上下载的,还是自己编译的,都不行。
是不是外部命令的头文件又要改?

我提交补丁以后等了一会,见没有编译。
我是想下载官网编译的版本进行测试,成功后再放出其他补丁。
我现在下载了官网编译的版本,是可以正常运行外部命令。不过意义不大,好像 chenall 已经改变成了 32 位编译环境。
wintoflash 可以发一个你编译的版本吗?

外部命令的头文件是改变了。

g4e_wb-2021-01-22.rar

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

点评

更新头文件之后没问题了。 你将来还会改外部命令的格式吗?如果不改了的话,我就把外部命令头文件传到 grubutils 源码仓库里面。  详情 回复 发表于 2021-1-22 16:57
grub4dos-for_UEFI-2021-01-22.7z 这个我试了不可以运行外部命令,估计是由于头文件改变的原因。 有可能的话还得整一个自动测试的功能。^_^ 有问题好提早发现。  详情 回复 发表于 2021-1-22 16:50
正常提交后10分钟左右会自动编译完成。 目前暂时还没有自动发布到grub4dos.chenall.net 编译后的文件可以在 release 里面下载。 对于测试功能,可以考虑创建新的分支,代码上传成功后发一个PR就会针对PR的  详情 回复 发表于 2021-1-22 16:45
回复

使用道具 举报

1140#
发表于 2021-1-22 16:45:42 | 只看该作者
2011yaya2007777 发表于 2021-1-22 16:27
我提交补丁以后等了一会,见没有编译。
我是想下载官网编译的版本进行测试,成功后再放出其他补丁。
我 ...

正常提交后10分钟左右会自动编译完成。

目前暂时还没有自动发布到grub4dos.chenall.net

编译后的文件可以在 release 里面下载。

对于测试功能,可以考虑创建新的分支,代码上传成功后发一个PR就会针对PR的内容自动编译
编译结果会自动上传到https://transfer.sh并回复下载地址,
这个是我用于测试的PR
https://github.com/chenall/grub4dos/pull/254

后续对于测试的功能还有一些调整,直接在这个测试分支修改并上传,同样会自动编译并回复编译结果。

测试完成之后再使用merge squash 功能合并回主开发分支。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 05:11

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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