无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
2341#
发表于 2022-3-26 10:40:20 来自手机 | 只看该作者
2011yaya2007777 发表于 2022-3-26 10:02
请测试。

大佬厉害了,这个ext4版本彻底解决了卡死故障了。ls (hd0,2)/ 功能终于正常了。find 命令也不会卡死了,reboot命令也没问题了。
回复

使用道具 举报

2342#
发表于 2022-3-26 10:42:00 来自手机 | 只看该作者
2011yaya2007777 发表于 2022-3-26 10:38
不管ext4的问题。我只是问,g4e由热重启改为冷重启,掉不掉me固件,内存是否仍然为零。

改成冷重启不会出现me固件掉的问题。
回复

使用道具 举报

2343#
 楼主| 发表于 2022-3-26 10:48:48 来自手机 | 只看该作者
嗷,明白了。一般情况,电脑冷重启的实现,只能是先关机,再开机。而UEFI固件居然可以这样实现冷重启。
回复

使用道具 举报

2344#
 楼主| 发表于 2022-3-26 11:02:00 来自手机 | 只看该作者
是我说错了。哪有ext4分区表,是ext4的bpb表 ,或者说是参数表。现在不需要了。
回复

使用道具 举报

2345#
发表于 2022-3-26 11:08:48 来自手机 | 只看该作者
liuzhaoyzz 发表于 2022-3-25 21:09
上面510819776测试了BOOTX64-cs7.rar啊。

我的ext4分区是用diskgenius4.9.5格式化出来的。你看下你那 ...

大佬已经解决了ext4的问题了。
回复

使用道具 举报

2346#
发表于 2022-3-26 11:47:48 | 只看该作者

BOOTX64-测试ext4-0.rar,我用这个版本实体机测试,可以出菜单了,启动PE没有问题。牛逼啊!倒底是什么原因导致的?是编译环境,还是代码本身有问题?      
回复

使用道具 举报

2347#
 楼主| 发表于 2022-3-26 12:12:54 来自手机 | 只看该作者
是代码问题。有一个读函数,它定义的一个虚参数(缓存),类型是 int,然而实体机测试时,这个缓存地址超过了4字节。见卡住时的打印数据,好像是3227…吧。虚拟机测试,缓存地址没有超过4字节(好像是10…)。这就解释了为什么虚拟机测试正常,而实体机测试失败。

点评

那就是与编译环境无关咯?之前看了changelog,以为是编译环境的问题,现在看来判断不对。 感谢@510819776,准确地定位了问题,功劳大大滴!感谢yaya解决问题!  详情 回复 发表于 2022-3-26 12:30
回复

使用道具 举报

2348#
发表于 2022-3-26 12:30:53 | 只看该作者
2011yaya2007777 发表于 2022-3-26 12:12
是代码问题。有一个读函数,它定义的一个虚参数(缓存),类型是 int,然而实体机测试时,这个缓存地址超过 ...

那就是与编译环境无关咯?之前看了changelog,以为是编译环境的问题,现在看来判断不对。

感谢@510819776,准确地定位了问题,功劳大大滴!感谢yaya解决问题!
回复

使用道具 举报

2349#
 楼主| 发表于 2022-3-26 12:43:07 来自手机 | 只看该作者
确实应当感谢510819776,不遗余力地测试。

点评

run模块是不是也要重新修改去适配这个BOOTX64-测试ext4-0.rar?我试了2022-03-26的版本,与run不能匹配。2022-01-18日的版本可以匹配run。菜单如下: title run-2011yaya2007777 find /EFI/grub/RUN | set bd= ;  详情 回复 发表于 2022-3-26 13:21
回复

使用道具 举报

2350#
发表于 2022-3-26 13:21:08 | 只看该作者
本帖最后由 liuzhaoyzz 于 2022-3-26 13:27 编辑
2011yaya2007777 发表于 2022-3-26 12:43
确实应当感谢510819776,不遗余力地测试。

run模块是不是也要重新修改去适配这个BOOTX64-测试ext4-0.rar?我试了2022-03-26的版本,与run不能匹配。2022-01-18日的版本可以匹配run。run的版本是RUN_包含NTBOOT_2022-01-18.rar,822kb这个。

菜单如下:

title run-2011yaya2007777
find /EFI/grub/RUN | set bd= ;; echo bd=%bd%
find --set-root ls /boot/imgs/
#find --set-root /boot/imgs/firadisk.img
#command --set-usrpath=%bd%/EFI/grub
command %bd%/EFI/grub/RUN --automenu /boot/imgs/

启动PE出错了,提示Failed to load virtual disk image(8000000000000e)。

      

GPT-TEST-2022-03-26-13-01-59.png (3.12 KB, 下载次数: 497)

GPT-TEST-2022-03-26-13-01-59.png
回复

使用道具 举报

2351#
 楼主| 发表于 2022-3-26 13:51:33 来自手机 | 只看该作者
修改了,很快发布。
回复

使用道具 举报

2352#
发表于 2022-3-26 17:08:52 | 只看该作者
强悍!
回复

使用道具 举报

2353#
 楼主| 发表于 2022-3-26 19:15:14 | 只看该作者
新版本已经上传到官网。

点评

我感觉是g4e的问题,不是run的问题。 title WINPE (WePE64_V2.2.iso) debug 3 find --set-root /boot/imgs/WePE64_V2.2.iso map --mem /boot/imgs/WePE64_V2.2.iso (0xff) chainloader (0xff) pause 废话  详情 回复 发表于 2022-3-26 22:15
回复

使用道具 举报

2354#
发表于 2022-3-26 22:15:00 | 只看该作者
本帖最后由 liuzhaoyzz 于 2022-3-26 22:18 编辑
2011yaya2007777 发表于 2022-3-26 19:15
新版本已经上传到官网。

我感觉是g4e的问题,不是run的问题。我从官网下载的grub4dos-for_UEFI-2022-03-26.我记得有阵子这个问题解决了呀,怎么又重现了,感觉代码弄混了。

title WINPE (WePE64_V2.2.iso)
debug 3
find --set-root /boot/imgs/WePE64_V2.2.iso
map --mem /boot/imgs/WePE64_V2.2.iso (0xff)
chainloader (0xff)
pause

废话少说,直接上图!

GPT-TEST-2022-03-26-22-13-57.png (12.91 KB, 下载次数: 508)

GPT-TEST-2022-03-26-22-13-57.png
回复

使用道具 举报

2355#
 楼主| 发表于 2022-3-27 10:14:58 | 只看该作者
我感觉是g4e的问题,不是run的问题。

分析得非常正确。新版光盘启动,引导扇区尺寸等于1680时,我开放了“安装虚拟分区”,画蛇添足,惹了祸。

更新版本已经上传官网。

点评

grub4dos-for_UEFI-2022-03-26+822kB的RUN_包含NTBOOT_2022-03-15, 文件名称: RUN 文件大小: 822.60 KB (842,340 字节) 修改时间: 2022年03月15日,16:22:06 MD5: 0D66CDD2534D0DC69693F64839751920  详情 回复 发表于 2022-3-27 12:46
我在外面,等下回去试试看。 另外还有个多光驱启动的bug,修复了又重现,没有根除。  详情 回复 发表于 2022-3-27 11:21
回复

使用道具 举报

2356#
发表于 2022-3-27 11:21:38 来自手机 | 只看该作者
2011yaya2007777 发表于 2022-3-27 10:14
分析得非常正确。新版光盘启动,引导扇区尺寸等于1680时,我开放了“安装虚拟分区”,画蛇添足,惹了祸。 ...

我在外面,等下回去试试看。

另外还有个多光驱启动的bug,修复了又重现,没有根除。
回复

使用道具 举报

2357#
发表于 2022-3-27 12:46:22 | 只看该作者
本帖最后由 liuzhaoyzz 于 2022-3-27 12:52 编辑
2011yaya2007777 发表于 2022-3-27 10:14
分析得非常正确。新版光盘启动,引导扇区尺寸等于1680时,我开放了“安装虚拟分区”,画蛇添足,惹了祸。 ...

grub4dos-for_UEFI-2022-03-26+822kB的RUN_包含NTBOOT_2022-03-15,
文件名称: RUN
文件大小: 822.60 KB (842,340 字节)
修改时间: 2022年03月15日,16:22:06
MD5: 0D66CDD2534D0DC69693F64839751920


一、在没有光驱的前提下:
用上面的菜单,尝试了几个PE.ISO,PE.WIM,实体机、虚拟机启动均正常;run模块启动PE.ISO,PE.WIM,实体机、虚拟机启动均正常。

二、在有光驱+光盘挂载的前提下:
尝试了几个PE.ISO,虚拟机启动异常;run模块启动PE.ISO,虚拟机启动均异常。
这个问题可以准确重现,在虚拟机中设置硬盘启动优先,尝试启动PE1.ISO,在虚拟机的cdrom中挂载一个光盘PE2.ISO,启动的过程中看到了PE1.ISO map的数值变化,但是最终启动的却是PE2.ISO.要知道设置的是硬盘优先启动啊,为什么不是启动的硬盘上的PE1.ISO,却是PE2.ISO?
虚拟机硬盘启动PE1.ISO菜单如下:
title WINPE (WePE64_V2.2.iso)
debug 3
find --set-root /boot/imgs/WePE64_V2.2.iso
map --mem /boot/imgs/WePE64_V2.2.iso (0xff)
chainloader (0xff)
pause


前面这个问题说过,然后你解决了,中间又出现了, 这个问题从2021-1-18到现在,一年多了,一直存在,有很长时间了。
我找下前面的帖子。http://wuyou.net/forum.php?mod=r ... 1092&fromuid=298214

回复

使用道具 举报

2358#
 楼主| 发表于 2022-3-27 13:35:45 | 只看该作者
本帖最后由 2011yaya2007777 于 2022-3-27 13:41 编辑

我使用 QEMU 虚拟机测试,在虚拟机的cdrom中挂载一个光盘PE2.ISO,在虚拟机的hdd中挂载一个硬盘HD.IMG,启动时狂按 ESC 键,选择从硬盘启动。

启动后,从硬盘启动PE1.ISO,可以正常启动。
然而从硬盘启动WePE64_V2.2.iso,出现错误提示:0xc000000f

点评

更换vmware测试呢,qemu测试启动可以,但测试pe.iso启动实在是太卡了,卡巴斯基啊~~~ vmware5.5 6.0都可以,网上有32位的破解版,感觉vmware的速度和稳定性要比qemu,virtualbox啥的好太多,感觉比较接近真是场景  详情 回复 发表于 2022-3-27 14:19
回复

使用道具 举报

2359#
发表于 2022-3-27 14:19:51 来自手机 | 只看该作者
2011yaya2007777 发表于 2022-3-27 13:35
我使用 QEMU 虚拟机测试,在虚拟机的cdrom中挂载一个光盘PE2.ISO,在虚拟机的hdd中挂载一个硬盘HD.IMG,启 ...

更换vmware测试呢,qemu测试启动可以,但测试pe.iso启动实在是太卡了,卡巴斯基啊~~~
vmware5.5 6.0都可以,网上有32位的破解版,感觉vmware的速度和稳定性要比qemu,virtualbox啥的好太多,感觉比较接近真是场景下的usb量产光盘,wuwuzu有测试。
vmware里面,电源下拉菜单→开机时进入固件,可以直接进入固件设置硬盘启动优先。
回复

使用道具 举报

2360#
 楼主| 发表于 2022-3-27 15:46:03 来自手机 | 只看该作者
可惜vmware不能加载img格式的硬盘镜像,懒得转换。

点评

vmware可以直接挂载主机物理硬盘的某个分区。 也可以在vm里面新建个虚拟硬盘,把pe.iso拷贝到里面就可以测试了。  详情 回复 发表于 2022-3-27 17:02
回复

使用道具 举报

2361#
发表于 2022-3-27 17:02:16 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2022-3-27 17:48 编辑
2011yaya2007777 发表于 2022-3-27 15:46
可惜vmware不能加载img格式的硬盘镜像,懒得转换。

vmware可以直接挂载主机物理硬盘的某个分区,这里说的主机某个分区,可以是本地硬盘,也可以是优盘或者移动硬盘。
也可以在vm里面新建个虚拟硬盘,把pe.iso拷贝到里面就可以测试了。

注意硬盘里面的pe1.iso不能再次作为cdrom的pe2.iso挂载,会引起占用冲突,pe2.iso可以换个分区存放。
回复

使用道具 举报

2362#
 楼主| 发表于 2022-3-28 10:14:43 | 只看该作者
@liuzhaoyzz
帮忙测试一下双光盘启动。

BOOTX64.rar

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

点评

感谢yaya,这个版本启动正常了! 在虚拟机中设置硬盘启动优先,尝试启动PE1.ISO,在虚拟机的cdrom中挂载一个光盘PE2.ISO,启动的过程中看到了PE1.ISO map的数值变化,最终启动的是PE1.ISO. 虚拟机硬盘启动PE1.ISO  详情 回复 发表于 2022-3-28 11:55
在我的有实体光驱,Z840工作站上,启动ISO的PE是成功的!  详情 回复 发表于 2022-3-28 11:29
回复

使用道具 举报

2363#
发表于 2022-3-28 11:29:57 | 只看该作者
2011yaya2007777 发表于 2022-3-28 10:14
@liuzhaoyzz
帮忙测试一下双光盘启动。

在我的有实体光驱,Z840工作站上,启动ISO的PE是成功的!

点评

想问下,你的实体光驱里面挂载的有没有可启动光盘?要放一张可启动光盘才算数哟?  详情 回复 发表于 2022-3-28 11:56
回复

使用道具 举报

2364#
发表于 2022-3-28 11:55:15 | 只看该作者
2011yaya2007777 发表于 2022-3-28 10:14
@liuzhaoyzz
帮忙测试一下双光盘启动。

感谢yaya,这个版本启动正常了!
在虚拟机中设置硬盘启动优先,尝试启动PE1.ISO,在虚拟机的cdrom中挂载一个光盘PE2.ISO,启动的过程中看到了PE1.ISO map的数值变化,最终启动的是PE1.ISO.
虚拟机硬盘启动PE1.ISO菜单如下:
title WINPE (WePE64_V2.2.iso)
find --set-root /boot/imgs/WePE64_V2.2.iso
map --mem /boot/imgs/WePE64_V2.2.iso (0xff)
chainloader (0xff)


这个版本搭配RUN_包含NTBOOT_2022-03-15,我在vmware中测试了下,启动也正常。

辛苦了!感谢!Happy ending!




回复

使用道具 举报

2365#
发表于 2022-3-28 11:56:30 | 只看该作者
481416322 发表于 2022-3-28 11:29
在我的有实体光驱,Z840工作站上,启动ISO的PE是成功的!

想问下,你的实体光驱里面挂载的有没有可启动光盘?要放一张可启动光盘才算数哟?        

点评

是的,没问题  详情 回复 发表于 2022-3-28 12:00
回复

使用道具 举报

2366#
发表于 2022-3-28 12:00:54 | 只看该作者
liuzhaoyzz 发表于 2022-3-28 11:56
想问下,你的实体光驱里面挂载的有没有可启动光盘?要放一张可启动光盘才算数哟?

是的,没问题
回复

使用道具 举报

2367#
发表于 2022-3-29 06:40:27 来自手机 | 只看该作者
本帖最后由 liuzhaoyzz 于 2022-3-29 07:04 编辑
wuwuzz 发表于 2021-1-18 12:36
2021年1月各版本似乎引入了新BUG,MAP win10PE ISO工作不正常。
最后一个工作正常的版本是2020-12-15版。 ...


2022.3.28日的版本已经修正这个问题,请测试看看。
@wuwuzz
@xianglang
回复

使用道具 举报

2368#
发表于 2022-3-29 13:49:08 | 只看该作者
GRUB4DOS for UEFI
在实机环境下,用tiny PXE server 1.0.0.23仍然找不到菜单,启动后%@root%值为0xfffffff,请修正。

点评

UEFI+pxe启动的话,还是用ipxe方案吧,是非常成熟的方案了。如果要从头开始做起,感觉需要做的工作很多。  详情 回复 发表于 2022-3-29 14:13
回复

使用道具 举报

2369#
发表于 2022-3-29 14:13:34 | 只看该作者
2011xnsfgw 发表于 2022-3-29 13:49
GRUB4DOS for UEFI
在实机环境下,用tiny PXE server 1.0.0.23仍然找不到菜单,启动后%@root%值为0xfffff ...

UEFI+pxe启动的话,还是用ipxe方案吧,速度可以跑满网速,是非常成熟的方案了。如果要从头开始做起,感觉需要做的工作很多。
回复

使用道具 举报

2370#
发表于 2022-3-30 19:33:03 | 只看该作者
大佬 grub4efi 支持的磁盘文件压缩格式是lz4  lzma gz对吗?? 有没有zstd支持???
经过测试 map --mem hd.gz (hd2)  可以正常
但是 map --mem hd.lz4 (hd2) 不正常  我用魔改的7zip-zstd版本  弄得lz4压缩不行?

我应该用什么软件压缩成lz4 lzma???
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-27 22:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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