无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 393943|回复: 3283
打印 上一主题 下一主题

[原创] GRUB4DOS for UEFI

    [复制链接]
1#
发表于 2020-11-8 13:52:15 | 显示全部楼层
回复

使用道具 举报

2#
发表于 2020-11-8 14:49:14 | 显示全部楼层
liuzhaoyzz 发表于 2020-10-30 16:07
其实我一直在想能否和BIOS下的grub4dos共用一套菜单,比如MBR磁盘,根目录下有一个menu.lst,BIOS ...

我也想共用一套菜单,建议还是尽量兼容原有的版本命令。

另外,这个版本,搜索菜单并不是默认从根目录开始的:我的机上,EFI分区里有GRUB目录的MENU.LST文件,根目录下也有,结果启动后使用的是GRUB目录下的,而非根目录下的。
回复

使用道具 举报

3#
发表于 2020-11-8 15:30:57 | 显示全部楼层
有阴也有阳 发表于 2020-11-1 00:15
提一个建议,能否把支持UEFI启动的menu.lst菜单的位置设置成EFI/grub/menu.lst,

而原来只支持B ...

附议!这样即使不能同一套菜单,也不至于混乱了。
回复

使用道具 举报

4#
发表于 2020-11-8 18:17:42 | 显示全部楼层
下载了一楼的20201029版本试了下,发现不支持 LZMA 压缩格式、map --mem 不支持 --top 参数。还有,使用 chainloader /bootmgr 提示“cannot load image”,出错信息是“Invalid or unsupported executable format”。使用 chainloader /efi/microsoft/boot/bootmgfw.efi 命令,在输入 boot 后会返回到 grub> 命令行格式。手中有支持传统或/和 EFI 启动的 PE 镜像,没有一个能够启动的。

我是在真机上试的,G5400 CPU + H110主板,BIOS 设置可以双启动,平时默认传统方式启动,测试 G4D 时按 F11 选择 EFI 启动。一个 MBR 格式 120GB SSD 硬盘,分为安装非EFI的WIN7系统分区和工具数据两个区,无 EFI 分区,G4D 识别为 (hd1);另有一个 4TB 机械硬盘,分三个分区,其中第一个分区是 MSR,第二三分区是EFI启动的WIN10系统分区和数据分区,第四个分区是 EFI 分区,G4D识别为 (hd0,3),而 G4D 文件就放在这分区中。


现在感觉连 Windows 都启动不了,一点实用性都没有啊,哪里出错了?

点评

“测试 G4D 时按 F11 选择 EFI 启动” ---- 问题可能就出在这里。 yaya的这个版本G4D,我测试的结果,貌似需要纯UEFI环境 (BIOS/UEFI设置里---选择UEFI OS/关闭安全启动/关闭CSM)。 按Fn键从快捷启动菜单中选U  详情 回复 发表于 2020-11-8 20:51
回复

使用道具 举报

5#
发表于 2020-11-9 16:13:42 | 显示全部楼层
本帖最后由 xianglang 于 2020-11-9 16:14 编辑

今天又试了无数次,证实是支持 LZMA 压缩格式的;另外,也与按 F11 选择启动方式无关。另外,微 PE 等 ISO 可以正常 map --mem 使用。不过今天多次尝试,发现以下问题:

1、如果菜单文件在菜单项前有 SLIC 命令在话,铁定花屏,其他按键好像皆无效,但是可以三键重启。

2、背景图与设定屏幕分辨率不同(如我的背景图是800*600,但是设定屏幕分辨率为1024*768),会花屏,字体显示残缺不全,不能看出是什么字,键盘操作正常。

3、在命令行输入引导 Windows 的 bootmgfw.efi 会回到 GRUB> 提示符状态,在菜单中会提过任意键返回菜单;但是插入一个只有分区而没 MBR 的 4GB 传统和 EFI 双启 U 盘,则可以顺利进入 U 盘里的 BCD 菜单启动 Windows 系统。

4、同样是那个 4GB 的 U 盘,使用 G4D 的 BOOTX64.EFI 文件代替原来 Windows 的,则会黑屏,长时间没任何反应,但是可以三键重启——Windows 的 BOOTX64.EFI 是可以正常启动的。

5、G4D UEFI 搜索菜单文件的顺序是同一启动分区下的 /BOOT/GRUB、/GRUB 和根目录。

汗……刚才打好字刚想按回复主题,结果误触触摸板,全部消失了,只能再输入一次。


点评

我猜测是不是一些命令不能在uefi下面运行,导致没反应死机了。。。 建议uefi版本尽量兼容以前的菜单命令,如果该命令不能运行,应该直接退出。。。 如果不能实现兼容以前的命令,建议uefi版本默认还是用新的启动  详情 回复 发表于 2020-11-9 17:01
回复

使用道具 举报

6#
发表于 2020-11-9 16:52:26 | 显示全部楼层
2011yaya2007777 发表于 2020-11-9 16:29
SLIC 命令是什么?

背景图应当与屏幕分辨率相同,要么就不要背景图,不要设置菜单尺寸,这样适用于任 ...

SLIC 是 G4D 下一个外部命令文件,模拟品牌机 OEM 激活 Windows 用的。

点评

能否把slic命令文件跟常用xxx.bin打个包共享一下,好久没用grub4dos整win7了,找找感觉。  详情 回复 发表于 2020-11-9 19:46
回复

使用道具 举报

7#
发表于 2020-11-10 10:31:01 | 显示全部楼层
本帖最后由 xianglang 于 2020-11-10 10:46 编辑
9001 发表于 2020-11-9 19:46
能否把slic命令文件跟常用xxx.bin打个包共享一下,好久没用grub4dos整win7了,找找感觉。

没有问题,见附件,有两个,一个是 4KB 的,一个是 20KB 的,都可以使用。

slic.rar

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

点评

感谢! 我记着是chenall发的东东,没几天删除了。 以前吧都是搞硬刷bios,现在不流行了,还是来软的吧,哈哈  详情 回复 发表于 2020-11-10 14:38
回复

使用道具 举报

8#
发表于 2020-11-10 10:45:57 | 显示全部楼层
本帖最后由 xianglang 于 2020-11-10 10:47 编辑

我想了一下,G4D UEFI 是全新的,菜单文件名还是不是使用 MENU.LST 为好,改成 MENU-EFI.LST 比较好,直观,也不会与原来的菜单文件名混淆,至于存放目录,可以是 /GRUB、/BOOT/GRUB、/EFI/BOOT、 / 目录,并且按这样的优先顺序查找。因为 G4D 会有一大堆外部命令和相关文件,还是存放在专用的目录里比较清爽干净,存放在 / 和 /BOOT 目录,都显得太杂乱了一些。
回复

使用道具 举报

9#
发表于 2020-11-10 13:14:58 | 显示全部楼层
又发现两个问题:一是使用 halt 关机命令,在我的台式机上,执行的是重启,命令执行后不久 CPU 风扇停一下,风扇再转并正常启动,而在非 UEFI 版本正常关机。

二是使用诸如 map --mem (hd1,1)/vdf/win7x64.vhd (hd0) 之类命令,如果后面 (hd0) 是存在的磁盘,则会在将 VHD 读入内存完成后,提示磁盘不存在,(hd0) 仍然是原来已存在的磁盘,只有映射为一个不存在的磁盘号,才会正常。另外,我这个 VHD 中的 WIN7 安装有 SVBUS 驱动,可以在 G4D 中作为内存系统使用,EFI 启动时在 DCB 菜单中加载,也可以正常启动,不过用 UEFI 版映射到内存后启动它时,直接启动 (hd3) 会提示 BOOTX64.EFI 没有什么之类,启动 BOOTMGFW.EFI 会在出现 BCD 菜单前出错。
回复

使用道具 举报

10#
发表于 2020-11-10 14:58:06 | 显示全部楼层
9001 发表于 2020-11-10 14:38
感谢!
我记着是chenall发的东东,没几天删除了。
以前吧都是搞硬刷bios,现在不流行了,还是来软的 ...

有什么区别就不太清楚了,我这里 20K 那个会有一大堆显示信息闪过,我一般用 4K 那个。

点评

SLIC使用菜单命令什么,不会用  详情 回复 发表于 2020-11-10 15:18
回复

使用道具 举报

11#
发表于 2020-11-11 12:47:23 | 显示全部楼层
2011yaya2007777 发表于 2020-11-11 08:59
熟悉并使用过 SVBus、FiraDisk、WinVblock 的坛友,请释疑一下:
是往 windows 传递了软盘?硬盘?光盘? ...

SVBus、FiraDisk、WinVblock 这三个 G4D 的驱动,只要在 G4D 里映射了,就会在 Windows 里找到相应类型的磁盘,好像没有多少的限制?反正我将同一个 SVBUS 之类的 IMG 映射成软驱A、B,在 Windows 中都能够见到。
回复

使用道具 举报

12#
发表于 2020-11-12 10:10:15 | 显示全部楼层
wintoflash 发表于 2020-11-11 21:54
你得先保证自己的windows系统是安装在gpt分区上的,有ESP分区,ESP分区里面有bootmgfw.efi,才可能支持UE ...

Windows 系统,并不只是安装在 GPT 分区上,才可以用 UEFI 启动,安装在 MBR 分区上也是可以的。我一个安装在 120GB SSD MBR 盘上的同一个 Windows 7 x64 系统,就可以使用传统和 UEFI 启动它,只要在相应的 BCD 菜单中加入相应启动项就行了。

点评

说了,不接受抬杠。 我回复的这个网友对UEFI一点了解也没有,你说了太多例外情况,他就迷糊了。  详情 回复 发表于 2020-11-12 12:45
回复

使用道具 举报

13#
发表于 2020-11-12 13:45:46 | 显示全部楼层
wintoflash 发表于 2020-11-12 12:55
SVBus之类的支持带文件碎片的map吗?

我迷糊了,是否支持带碎片映射,不是只是  G4D 之类的事情吗,好像与 SVBUS 之类无关?G4D 能够映射出来的磁盘,安装了 SVBUS 之类驱动的 Windows 都难认出来并使用啊。
回复

使用道具 举报

14#
发表于 2020-11-22 12:53:37 | 显示全部楼层
作为最终端的使用者,我对于 Grub 4 Dos for UEFI 的要求只有一个: 能象 G4D 一样,可以方便地映射 ISO、IMG、VHD 等镜像并成功启动,最好可以直接 chainloader /bootmgr 之类引导 Windows 系统——如果能s修改一下 SVBUS 之类使它能用于 RAMOS 就更妙了。

点评

哈哈。我与兄台想法几乎相同。  详情 回复 发表于 2020-11-22 16:25
回复

使用道具 举报

15#
发表于 2020-11-25 17:35:05 | 显示全部楼层
G4E 引导同一 EFI 分区里的 BOOTMGFW.EFI 仍然失败,放到识别为软驱格式的 4GB 的 U 盘中用它启动,黑屏(似乎是 G4E 不再支持软盘和光盘上启动了?)

有时候要维护老机,只能用软盘格式的 U 盘才能启动,其他除了 USB 光驱模式就不行。

点评

Ud 啊,经典的,为嘛不用  发表于 2020-11-25 20:02
回复

使用道具 举报

16#
发表于 2020-11-28 10:33:52 | 显示全部楼层
wintoflash 发表于 2020-11-28 08:43
前面说过,光盘上的bootmgfw.efi屁事多。必须启动软盘镜像里的bootmgfw.efi。

我直接在硬盘格式带EFI分区上的U盘上这样做,也是如此的错误,似乎与软盘镜像无关——我发现只要插上U盘,并有启动文件的时候,都可以 chainloader bootmgfw.efi,但是 BCD 菜单会出问题;而不手上U盘的话,会回到命令行状态。我现在怀疑,只要有 UEFI 能读取的分区的两个以上的硬盘,G4E都可以 chainloader bootmgfw.efi 成功,但是BCD菜单会出问题。

虽然我的台式机上有MBR SSD和GPT HDD,但是SSD上是NTFS格式,UEFI不认,GPT上有FAT32的EFI分区,因此不插U盘时就回命令行状态,插U盘就BCD出错——YAYA不妨考虑一下这种情况,着手找些解决思路。
回复

使用道具 举报

17#
发表于 2020-11-28 13:43:30 | 显示全部楼层
hilsonma 发表于 2020-11-28 12:04
我早期也是使用oscdimg制作iso,后来发现 mkisofs 制作速度更快,iso体积更小,就改用mkisofs了。

只 ...

硬盘启动时应该不是只找 /efi/boot/bootx64.efi 应该是优先找 /efi/microsoft/boot/bootmgfw.efi

我的台式机就是优先找 /efi/boot/bootx64.efi 文件的,发现不少电脑也是这样。



点评

相关问题双心版主有发起过讨论,可到相应贴子查阅,并反馈自己的经验,大家共同学习,共同进步。  发表于 2020-11-28 16:00
回复

使用道具 举报

18#
发表于 2020-11-30 16:44:47 | 显示全部楼层
wuwuzz 发表于 2020-11-30 13:28
后备方案:如果直接MAP ISO方法行不通,只要ventoy ima能成功,

借助ventoy也可以间接启动ISO。即:g4 ...

我刚才试了下,G4E 可以 map --mem /usbosv3.iso (0xff) 并 chainloader (0xff) 成功启动进入 Win10PE 桌面,但是不加 --mem 参数,则会在选择 BCD 菜单后转圈很长时间都进不了 Win10PE 桌面。

我这样的情况,不知道是不是和你们说的是一样的?G4E 能够引导 ISO 镜像的 WinPE,就有很大的实用性。再试下 SVBUS 看行不行?

点评

这种情况估计是 U盘 的大文件读写快,小文件(或叫 4K速度 慢)引起的, 现在U盘大部分是这样,利于宣传, 用固态级的u盘, 我估计 加不加 --mem 启动速度 差不了多少 你能试svbus 给力(测试外挂型Pe )  详情 回复 发表于 2020-11-30 17:44
不一回事。这里讲的是Insyde UEFI机下的map ima/iso出错(及后续处置)特例。你那个都进PE了。  发表于 2020-11-30 17:09
回复

使用道具 举报

19#
发表于 2020-12-1 09:58:25 | 显示全部楼层

RE: GRUB4DOS for UEFI

2011whp 发表于 2020-11-30 17:44
这种情况估计是 U盘 的大文件读写快,小文件(或叫 4K速度 慢)引起的,

现在U盘大部分是这样,利于宣 ...

SVBUS尝试失败,因为 EFI 不认 NTFS 格式的分区,直接 chainloader (hd) 再 boot 后,提示无 EFI 引导文件之类(大概意思)。或者有空可以试试用 FAT32 格式做个 VHD 装 SVBUS,看行不行。不过,我始终觉得,还是 G4E 解决引导 BOOTMGFW.EFI 来得直接和方便,也更能适应实际使用情况。

点评

分区启动测试svubs: 这个要双分区,参考 618楼  详情 回复 发表于 2020-12-1 10:16
回复

使用道具 举报

20#
发表于 2020-12-9 16:21:18 | 显示全部楼层
本帖最后由 xianglang 于 2020-12-9 16:22 编辑
2011yaya2007777 发表于 2020-12-9 15:18
内存类型由 GRUB_EFI_RUNTIME_SERVICES_DATA
修改为 GRUB_EFI_PERSISTENT_MEMORY,虚拟机测试,分配不成 ...

用这个版本,不加 --mem 参数 map win7x64.vhd(分两个区,NTFS 安装了朱玛修改的 SVBUS 驱动的 WIN 系统和30MB FAT EFI启动分区),成功进入桌面!如果 G4E 能够直接 chainloader bootmgr 就完美了!

因为这个 VHD 有 10GB 个头,而我的电脑只得 12GB 内存,使用 --mem 参数时显示 out of memory,而无法测试。

点评

对于VHD 也许winload.efi 就认可 map上的盘,(g4e map 上的 等同于 微软标准流程map上的) 如果测试svbus 应该先 map 一个img 然后再 map vhd 因为 vhd 微软已认可 能看到 img 才是 svbus  详情 回复 发表于 2020-12-9 17:49
回复

使用道具 举报

21#
发表于 2020-12-10 09:20:37 | 显示全部楼层
本帖最后由 xianglang 于 2020-12-10 14:49 编辑
2011whp 发表于 2020-12-9 17:49
对于VHD  也许winload.efi 就认可 map上的盘,(g4e map 上的 等同于  微软标准流程map上的)

如果测 ...

不用怀疑。没装 SVBUS 前,G4E map 出的 VHD 系统会蓝屏,安装了 SVBUS 后正常进入桌面,设备里的系统磁盘驱动,也由微软的改成了 SVBUS 的。

点评

完美 上传了个 svbus imgPE (img 300MB, 压缩包180MB)供试验 两个试用 PE(180MB 260MB) 链接:https://pan.baidu.com/s/1vOHmKJ2OxV2CZcg8scjV0g 提取码:eruh 各种菜单试验,svbus 认一个虚拟  详情 回复 发表于 2020-12-10 11:38
回复

使用道具 举报

22#
发表于 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。
回复

使用道具 举报

23#
发表于 2020-12-12 17:36:13 | 显示全部楼层
2011yaya2007777 发表于 2020-12-12 16:38
liuzhaoyzz :
vhd 搞两个分区,其中 fat32 分区放置什么文件?

FAT32 分区应该就是存放EFI启动相关的文件的分区,我使用 G4E + SVBUS 做的系统,就是这样的操作。
回复

使用道具 举报

24#
发表于 2020-12-16 15:23:06 | 显示全部楼层
使用 G4E 2020-12-15 版本,使用以下菜单项成功启动单 NTFS 分区 VHD 格式的 Windows 7 RAMOS!至此,G4E 对于我来说,具备实际使用价值了!

title  Windows 7 x64 @ RAM \n 启动硬盘上的 Windows 7 x64 @ RAM 系统
  load /EFI/GRUB/NTFS_x64.efi
  map --mem --top (hd1,1)/VDF/Win7x64.vhd (hd)
  rootnoverify (hd-1,0)
  chainloader (hd-1)

点评

顺便试了下map也成功,2.5G的VHD,膜拜2011yaya2007777、wintoflash两位大佬  发表于 2020-12-17 00:15
依样画葫芦启动了win10 1909,之前需要分fat启动分区就偷懒没试  发表于 2020-12-17 00:05
好消息!很好的反馈,之前我也是这样子想的,我估计加载这个驱动,就不需要双分区了。  详情 回复 发表于 2020-12-16 17:25
回复

使用道具 举报

25#
发表于 2020-12-17 10:07:35 | 显示全部楼层
liuzhaoyzz 发表于 2020-12-16 17:25
好消息!很好的反馈,之前我也是这样子想的,我估计加载这个驱动,就不需要双分区了。

不过磁盘性能,SVBUS 比 PRIMO 差很多啊!而且传统 BIOS 下也比 UEFI 下稍快一些(传统 BIOS 下测速时,开了同花顺和国信通达信两个股票软件下测试的,会有所影响。)





点评

是的,svbus驱动速度跟primo驱动速度没法比,正版primo6.3.1速度是svbus速度的4倍多。  详情 回复 发表于 2020-12-17 10:32
回复

使用道具 举报

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

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

使用道具 举报

27#
发表于 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 都一样。

点评

文件名称: bootx64.efi 文件大小: 388.00 KB (397,312 字节) 修改时间: 2021年01月10日,16:30:22 MD5: 0EC017DA9D4C9041C5415B17DAEBC3B2 2021年01月10日的版本,启动内置了svbus的WIN7.VHD和基于primo  详情 回复 发表于 2021-1-12 13:53
你说的第一个问题,以前就是那样的,没有变化吧 第二个问题:参考下图,刹开问题去试[attachimg]472654[/attachimg] 你用了 esp 是不是 微软的 启动管理器已经运行了,而一个PC里只能有一个 start_win 启动管  详情 回复 发表于 2021-1-11 18:37
回复

使用道具 举报

28#
发表于 2021-1-12 11:42:45 | 显示全部楼层
2011yaya2007777 发表于 2021-1-11 17:44
这个 NTFS 分区有 /efi/boot/bootx64.efi 文件吗?
如果有,map 之后,使用 vol 探测一下文件所在分区, ...

这个 VHD 里有一个 656KB 的 BOOTX64.EFI 文件,UEFI 下就是用它启动的 Windows 7 x64。

之前的版本,是可以这样启动的,因为我的 ESP 分区里面,/EFI/BOOT 下是微软的 1.1MB 多的 BOOTX64.EFI 文件,而 G4E 的在 /EFI/GRUB 下面,开机时可以 F11 选择 G4E、GRUB2、微软等。
回复

使用道具 举报

29#
发表于 2021-1-12 11:51:28 | 显示全部楼层
2011whp 发表于 2021-1-11 18:37
你说的第一个问题,以前就是那样的,没有变化吧

之前 12.29、元旦等的版本,同样的环境是完全没有问题的。

至于抢启动的问题,也应该不存在,因为我的 ESP 分区或者 VHD 里的 NTFS 单分区,EFI 相应目录下,都是微软的 EFI 启动文件。

以前写过 Foxbase 程序,也试过修改了一些问题,导致出现原来没有问题的地方出问题,感觉 G4E 的这个情况,也可能类似。
回复

使用道具 举报

30#
发表于 2021-1-12 14:19:19 | 显示全部楼层
liuzhaoyzz 发表于 2021-1-12 13:53
文件名称: bootx64.efi
文件大小: 388.00 KB (397,312 字节)
修改时间: 2021年01月10日,16:30 ...

没有出现过非正常关机的情况。而且,同样的 VHD 文件中的系统,换回元旦等原来正常的 G4E 就正常了,而换10号的就不正常,因此我觉得还是 10号的 G4E 的原因。还有就是实体 SSD 盘,也是一样的情况。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-18 10:32

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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