无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
991#
发表于 2021-1-10 12:39:13 | 只看该作者
昨天用gpdp2max引导x64位黑屏不能载入菜单
回复

使用道具 举报

992#
 楼主| 发表于 2021-1-10 16:59:08 | 只看该作者
你今天在github上传的版本好像运行不了外部命令

今天又上传了一个版本,仍然不行。
回复

使用道具 举报

993#
发表于 2021-1-10 20:38:13 | 只看该作者
2011yaya2007777 发表于 2021-1-10 11:28
这个网友一字千金,短短5个字,是想让人猜谜语。不显示英文只显示中文?估计是又要显示中文,又要显示英文。 ...

对于这样的网友,可以直接pass,等闲下来有空的时候再抽空回复他吧,或者等其他的网友给他回复。你们干的事情,重要的多得多。

我特别欣赏的是墨西哥的alacran,他真的是一个很好地使用者和反馈者,从reboot.pro到github,一路反馈,他的报告和反馈真的是棒极了,菜单怎么写的,有什么问题,什么需求,让人一目了然,感觉国内严重缺乏这样子的人(我其实很懒)。要知道两位大神的g4e/grub2,可是中国人修改之后才在UEFI-RAMOS领域大放异彩的,为啥中国人反馈的不多。


回复

使用道具 举报

994#
 楼主| 发表于 2021-1-10 20:46:25 来自手机 | 只看该作者
这几年人心浮躁,都想挣快钱,没几个人对技术感兴趣。即便是搞技术的,也喜欢索取,抄袭,弯道超车。
回复

使用道具 举报

995#
发表于 2021-1-10 22:14:08 | 只看该作者
2011yaya2007777 发表于 2021-1-9 09:06
编译64位代码时,内置的汇编代码通不过。所以在 i386 时有 is64bit 这个命令(也就是使用 bootia32.efi  ...

如果U盘合盘就要考虑通用性来判断当前环境是X86还是X64,适当的显示可用菜单
回复

使用道具 举报

996#
发表于 2021-1-11 08:22:20 | 只看该作者
2011yaya2007777 发表于 2021-1-10 16:59
今天又上传了一个版本,仍然不行。

是的,现象一样。

这种情况我这里不好排查,因为虽然可以重现错误状态,但是无论怎样我编译的外部命令都正常。

你的电脑有点邪门啊。
回复

使用道具 举报

997#
发表于 2021-1-11 08:52:48 | 只看该作者
谢谢楼主的分享。
回复

使用道具 举报

998#
发表于 2021-1-11 10:03:48 | 只看该作者
大力支持 甚至想捐钱
回复

使用道具 举报

999#
发表于 2021-1-11 10:52:56 | 只看该作者
二个iso镜像 一个240MB 一个416MB 都能独立启动 在虚拟机中测试 g4e 能正常启动240MB镜像,可416MB镜像出现如图:请教如何要如何处理?

2021-01-11_104309.png (2.32 KB, 下载次数: 113)

2021-01-11_104309.png
回复

使用道具 举报

1000#
发表于 2021-1-11 11:08:53 | 只看该作者
oym2016 发表于 2021-1-11 10:52
二个iso镜像 一个240MB 一个416MB 都能独立启动 在虚拟机中测试 g4e 能正常启动240MB镜像,可416MB镜像出现 ...

菜单有错误。贴出菜单。
回复

使用道具 举报

1001#
发表于 2021-1-11 12:41:54 | 只看该作者
本帖最后由 vuthang12345 于 2021-1-11 12:43 编辑

configfile /EFI/grub/Winpe.lst
Phiên bản: 29-12-2020 Bình thường

configfile /EFI/grub/Winpe.lst
Phiên bản:
lỗi 10-01-2021  

回复

使用道具 举报

1002#
发表于 2021-1-11 15:31:17 | 只看该作者
1月10日的版本,map --mem --top 已经没有问题,但是直接 chainloader (hd-1) 时,只有一个 NTFS 分区的固定容量 VHD 会有如下提示:

Failed to load virtual partition image .
Failed to load virtual partition image .

尝试 load /efi/boot/ntfs_x64.efi 后再 chainloader (hd-1) 可以成功启动 RAMOS ——也就是说,这个版本读 NTFS 格式分区失效或者出问题了。

但是在分了三分区(0分区 NTFS 系统、1分区 NTFS 数据、2分区 FAT32 ESP,G4E 从该 ESP 分区启动)的 SSD 硬盘里,直接 chainloader (hd0) 后,只有一个光标而没有了下文,无论是否加载 ntfs_x64.efi 都一样。
回复

使用道具 举报

1003#
发表于 2021-1-11 15:34:24 | 只看该作者
liuzhaoyzz 发表于 2021-1-11 11:08
菜单有错误。贴出菜单。

iftitle [if exist /imgs/pe10x64.iso]  Windows PE10 x64 \n /imgs/pe10x64.iso
        find --set-root /imgs/pe10x64.iso
         map /imgs/pe10x64.ISO (0xff)||map --mem /imgs/pe10x64.iso (0xff)
         chainloader (0xff)

iftitle [if exist /imgs/NetPE.iso]  Windows PE10 Net x64 \n /imgs/NetPE.iso
        find --set-root /imgs/NetPE.ISO
         map /imgs/NetPE.ISO (0xff)||map --mem /imgs/NetPE.ISO (0xff)
         chainloader (0xff)        
回复

使用道具 举报

1004#
发表于 2021-1-11 16:44:31 | 只看该作者
请问一下,如下菜单,在QEMU中测试,无论选择 EFI-IA32还是 EFI-X64都是只显示 #x64 部分的菜单, #86 部分的均不显示

请问这是什么原因?

版本 2021-01-10



#x64

#1

iftitle [is64bit] WinPE (x64)\n基于 Windows 10,内存要求: 1024 MB\n

chainloader --force /Boot/WinX/x64/WinX.efi


#2

iftitle [is64bit] Acronis (x64)\nAcronis 11.7 中文版,内存要求: 1024 MB\n

kernel /Boot/Acronis/x64/kernel.dat  quiet vga=ask product=bootagent media_for_windows

clear

initrd /Boot/Acronis/x64/initrd.dat /Boot/Acronis/x64/initrd.img


#x86

#1

iftitle [NOT is64bit] WinPE (x86)\n基于 Windows 10,内存要求: 1024 MB\n

chainloader --force /Boot/WinX/x86/WinX.efi


#2

iftitle [NOT is64bit] Acronis (x86)\nAcronis 11.7 中文版,内存要求: 1024 MB\n

kernel /Boot/Acronis/x86/kernel.dat  quiet vga=ask product=bootagent media_for_windows

clear

initrd /Boot/Acronis/x86/initrd.dat /Boot/Acronis/x86/initrd.img
回复

使用道具 举报

1005#
发表于 2021-1-11 17:05:57 | 只看该作者
oym2016 发表于 2021-1-11 15:34
iftitle   Windows PE10 x64 \n /imgs/pe10x64.iso
        find --set-root /imgs/pe10x64.iso
       ...

这个菜单好像也没有什么问题啊?!大家看看。
回复

使用道具 举报

1006#
发表于 2021-1-11 17:10:57 | 只看该作者
blank007 发表于 2021-1-11 16:44
请问一下,如下菜单,在QEMU中测试,无论选择 EFI-IA32还是 EFI-X64都是只显示 #x64 部分的菜单, #86 部分 ...

is64bit 的作用是检测 cpu 是否支持 64 位,而不是检测 uefi 是否为 64 位。

回复

使用道具 举报

1007#
 楼主| 发表于 2021-1-11 17:33:04 | 只看该作者
请问一下,如下菜单,在QEMU中测试,无论选择 EFI-IA32还是 EFI-X64都是只显示 #x64 部分的菜单, #86 部分的均不显示

calc *0x8272&0xff > nul
set ver=%@retval%

iftitle [if %ver%==64] WinPE (x64)\n基于 Windows 10,内存要求: 1024 MB\n
chainloader /Boot/WinX/x64/WinX.efi

iftitle [if %ver%==32] WinPE (x86)\n基于 Windows 10,内存要求: 1024 MB\n
chainloader /Boot/WinX/x86/WinX.efi

回复

使用道具 举报

1008#
 楼主| 发表于 2021-1-11 17:34:56 | 只看该作者
@oym2016
错误的
map /imgs/pe10x64.ISO (0xff)||map --mem /imgs/pe10x64.iso (0xff)

正确的
map /imgs/pe10x64.ISO (0xff) || map --mem /imgs/pe10x64.iso (0xff)
回复

使用道具 举报

1009#
 楼主| 发表于 2021-1-11 17:44:12 | 只看该作者
1月10日的版本,map --mem --top 已经没有问题,但是直接 chainloader (hd-1) 时,只有一个 NTFS 分区的固定容量 VHD 会有如下提示:
Failed to load virtual partition image .

这个 NTFS 分区有 /efi/boot/bootx64.efi 文件吗?
如果有,map 之后,使用 vol 探测一下文件所在分区,比如是 (hd2,0),那么
ls (hd2,0)/efi/boot/
看看结果。

但是在分了三分区(0分区 NTFS 系统、1分区 NTFS 数据、2分区 FAT32 ESP,G4E 从该 ESP 分区启动)的 SSD 硬盘里,直接 chainloader (hd0) 后,只有一个光标而没有了下文,无论是否加载 ntfs_x64.efi 都一样。

从 (hd0) 启动,然后又启动 (hd0)? 视乎不可以吧。
回复

使用道具 举报

1010#
发表于 2021-1-11 17:46:33 | 只看该作者
2011yaya2007777 发表于 2021-1-11 17:33
calc *0x8272&0xff > nul
set ver=%@retval%

谢谢您
回复

使用道具 举报

1011#
发表于 2021-1-11 17:46:44 | 只看该作者
wintoflash 发表于 2021-1-11 17:10
is64bit 的作用是检测 cpu 是否支持 64 位,而不是检测 uefi 是否为 64 位。

谢谢您
回复

使用道具 举报

1012#
发表于 2021-1-11 17:59:02 | 只看该作者
2011yaya2007777 发表于 2021-1-11 17:33
calc *0x8272&0xff > nul
set ver=%@retval%

显示 ver=0
回复

使用道具 举报

1013#
发表于 2021-1-11 18:10:01 | 只看该作者
本帖最后由 2011whp 于 2021-1-12 18:20 编辑

撤销  --mem 加 子参数 的建议

ntfs分区 有30%管理区(档案区),小文件直接写在管理区,大文件cotent内容属性才写在后面,这样的话 要截出 启动P驱的块,会很大 。破解ntfs也不现实。
所以  把vdf碎裂加载到内存,可行性 极小,效果无提升。还是 按P驱官网的路数去提升 vdf 性能好些。
至于 截 头尾部扇区,现在还想不到多大用处


回复

使用道具 举报

1014#
发表于 2021-1-11 18:37:32 | 只看该作者
本帖最后由 2011whp 于 2021-1-13 10:45 编辑
xianglang 发表于 2021-1-11 15:31
1月10日的版本,map --mem --top 已经没有问题,但是直接 chainloader (hd-1) 时,只有一个 NTFS 分区的固 ...

你说的第一个问题,以前就是那样的,没有变化吧


第二个问题:参考下图,刹开问题去试(下图为个人猜测,仅供参考)
你用了 esp 是不是 微软的 启动管理器已经运行了,而一个PC里只能有一个 start_win 启动管理器
工具盘,不用esp试下,好像 start_ Uefi 抢不过 start_win  (有的主板里有个设置操作系统顺序 : win   uefi  other   也没试过有什么用)
开机按Fx键时:微软列了启动项 uefi就不再重复列那个分区了



另说:
yaya  破 bootmgfw 时那个固件内的 设备句柄 是不是 NVROm小存储区 代表的 设备,bootmgfw 得运行在那个设备分区上

grub2 的三个初始化变量,1.启动文件所在分区(程序驻的分区) 2.资源path:  变量prefix (程序用的资产资源) 3. root变量:这是游移的
以上的 1 和3很容易搞乱   2不是绝对路径的话 依靠3

类比grub2分析bootmgfw: 1.NV分区 (模拟bootmgfw在这里) 2.bootmgfw资源分区,这个是看到的实体的esp分区(fat分区)

点评

之前 12.29、元旦等的版本,同样的环境是完全没有问题的。 至于抢启动的问题,也应该不存在,因为我的 ESP 分区或者 VHD 里的 NTFS 单分区,EFI 相应目录下,都是微软的 EFI 启动文件。 以前写过 Foxbase 程序  详情 回复 发表于 2021-1-12 11:51
回复

使用道具 举报

1015#
发表于 2021-1-11 18:40:14 | 只看该作者
本帖最后由 oym2016 于 2021-1-11 18:44 编辑
2011yaya2007777 发表于 2021-1-11 17:34
@oym2016
错误的
map /imgs/pe10x64.ISO (0xff)||map --mem /imgs/pe10x64.iso (0xff)

手工输入 出错依就,显示已读入内存完毕后

2021-01-11_183802.png (2.68 KB, 下载次数: 112)

2021-01-11_183802.png

2021-01-11_184336.png (3.15 KB, 下载次数: 96)

这个能正常启动

这个能正常启动
回复

使用道具 举报

1016#
发表于 2021-1-11 18:41:46 | 只看该作者
2011yaya2007777 发表于 2021-1-11 17:33
calc *0x8272&0xff > nul
set ver=%@retval%

真机下也是 ver=0
回复

使用道具 举报

1017#
发表于 2021-1-11 18:46:14 | 只看该作者
oym2016 发表于 2021-1-11 18:40
手工输入 出错依就,显示已读入内存完毕后

imgs应该是小写吧。大小写敏感的。
回复

使用道具 举报

1018#
发表于 2021-1-11 18:46:47 | 只看该作者
本帖最后由 2011whp 于 2021-1-11 18:48 编辑

blank007 PE本身的问题 排除了吗,比如 grub205   ventoy能启动吗(或者虚拟机能启动iso吗)

点评

还没有进入各类 WinPE ,仅仅是菜单显示阶段  详情 回复 发表于 2021-1-11 18:48
回复

使用道具 举报

1019#
发表于 2021-1-11 18:48:07 | 只看该作者
2011whp 发表于 2021-1-11 18:46
blank007 PE本身的问题 排除了吗,比如 grub205   ventoy能启动吗

还没有进入各类 WinPE ,仅仅是菜单显示阶段
回复

使用道具 举报

1020#
 楼主| 发表于 2021-1-11 18:48:58 | 只看该作者
真机下也是 ver=0

你使用什么版本?截图反馈!!!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-12 07:06

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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