无忧启动论坛

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

[原创] GRUB4DOS for UEFI

    [复制链接]
61#
 楼主| 发表于 2020-11-9 12:06:42 来自手机 | 显示全部楼层
回复

使用道具 举报

62#
 楼主| 发表于 2020-11-9 12:14:15 来自手机 | 显示全部楼层
L大,你忘了执行 chainloader (0xff)。
回复

使用道具 举报

63#
 楼主| 发表于 2020-11-9 12:29:03 来自手机 | 显示全部楼层
前几天有人问,支持参数传递不。efi文件支持传递参数。我希望使用ipxe启动本文件时,把调用接口传递过来,这样grub4dos就有可能使用ipxe了。
回复

使用道具 举报

64#
 楼主| 发表于 2020-11-9 14:35:12 | 显示全部楼层
https://cloud.189.cn/t/FjyAZfmmeuEf

打不开,麻烦上传个壳。
回复

使用道具 举报

65#
 楼主| 发表于 2020-11-9 14:54:52 | 显示全部楼层
能启动就好。文件不用上传了。
回复

使用道具 举报

66#
 楼主| 发表于 2020-11-9 15:45:31 | 显示全部楼层
可以把代码打包传给我或上传到某个地方,我拉个新的分支,上传第一个版本。

谢谢C大!我尽快整理完毕,打包上传到这里。
回复

使用道具 举报

67#
 楼主| 发表于 2020-11-9 16:29:15 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2020-11-9 16:30 编辑
如果菜单文件在菜单项前有 SLIC 命令在话,铁定花屏

SLIC 命令是什么?
背景图与设定屏幕分辨率不同

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

3,4项不清楚。
5项不用纠结,下一发布版本菜单放在 /EFI/BOOT/menu.lst
回复

使用道具 举报

68#
 楼主| 发表于 2020-11-9 16:44:32 | 显示全部楼层
本帖最后由 2011yaya2007777 于 2020-11-9 16:52 编辑
这个方案不错,劳动量变得更小了

如果使用菜单变量,那后续工作就可能与 SVBus 无关了。
回复

使用道具 举报

69#
 楼主| 发表于 2020-11-9 16:59:30 | 显示全部楼层
SLIC 是 G4D 下一个外部命令文件

外部命令可能需要修改,不是实模式,找不到命令、变量入口了。
回复

使用道具 举报

70#
 楼主| 发表于 2020-11-9 17:04:45 | 显示全部楼层
加载菜单死机了。虚拟机和实机结果一样

在UEFI环境测试BIOS的东西!
启动EFI文件或者硬盘、光盘。
回复

使用道具 举报

71#
 楼主| 发表于 2020-11-9 18:16:47 | 显示全部楼层
菜单变量是啥啊……

不好意思,打错了。是采用变量...
回复

使用道具 举报

72#
 楼主| 发表于 2020-11-9 18:17:01 | 显示全部楼层
但是删除menu.lst,或者把menu.lst改名为menu1.lst 都能进入命令行。

肯定是menu.lst的内容有问题。我没有找到menu.lst。看其他菜单,你调用了外部命令。现在外部命令可能得修改。
回复

使用道具 举报

73#
 楼主| 发表于 2020-11-9 18:50:44 来自手机 | 显示全部楼层
菜单可以在命令行一条一条地输入,看看哪条死机。
回复

使用道具 举报

74#
 楼主| 发表于 2020-11-9 20:28:54 来自手机 | 显示全部楼层
不支持ipxe,不支持kernel。    死机的图形模式命令,后面紧跟 -1 800就行了。置顶菜单sili
回复

使用道具 举报

75#
 楼主| 发表于 2020-11-9 20:31:33 来自手机 | 显示全部楼层
示例里面有。或者指定图形模式。怎么知道支持哪些图形模式,有命令,置顶说明里面有。
回复

使用道具 举报

76#
 楼主| 发表于 2020-11-9 20:54:13 来自手机 | 显示全部楼层
在命令行执行graphicsmode,就知道支持不支持图形模式,知道支持什么尺寸。
回复

使用道具 举报

77#
 楼主| 发表于 2020-11-9 21:37:50 来自手机 | 显示全部楼层
实机你是使用量产的cdrom起动的,怎么会被识别为软盘?它有启动镜像efi没有?你的U盘是不是还有一个量产单元,为软盘,也有efi启动文件?
回复

使用道具 举报

78#
 楼主| 发表于 2020-11-10 08:33:10 | 显示全部楼层
fixwtg.vhd 是固定尺寸的,还是动态尺寸的?如果是后者,要加 --mem
回复

使用道具 举报

79#
 楼主| 发表于 2020-11-10 17:19:45 来自手机 | 显示全部楼层
知心啊,哈哈哈
回复

使用道具 举报

80#
 楼主| 发表于 2020-11-10 19:57:41 来自手机 | 显示全部楼层
操作系统可以自行决定是否回收。那就是和引导时代码及引导时数据一样了?操作系统执行退出引导代码及数据时,同时收回了?

点评

还有如果映射能映射到0xffff了那我是不是驱动里的映射插槽也要修订一下…… 驱动里用的映射插槽还是这个 from to用的都还是8位的  详情 回复 发表于 2020-11-10 21:04
EFI_BOOT_SERVICES_CODE和EFI_BOOT_SERVICES_CODE是由uefi固件在系统启动的时候自动收回的,启动服务驱动用的就是这种。 EFI_LOADER_CODE 和 EFI_LOADER_DATA 是由loader或者系统自己决定的。 所以应该用runtime d  详情 回复 发表于 2020-11-10 20:29
估计变成概率问题了……所以总感觉这样非常不安全,容易引发各种问题……  详情 回复 发表于 2020-11-10 20:17
回复

使用道具 举报

81#
 楼主| 发表于 2020-11-10 19:59:57 来自手机 | 显示全部楼层
热键只是个功能,你可以不使用。不懂你说的兼容性是什么意思。

点评

照顾 复制粘贴族 只改个iso名 (0xffff),有次启动,怎么也map不上,后来 help map ,看到说明,是四位,map上了, 后来也没复现过,可以忽略。  详情 回复 发表于 2020-11-10 20:50
回复

使用道具 举报

82#
 楼主| 发表于 2020-11-10 20:03:17 来自手机 | 显示全部楼层
cchessbd:希望听到你关于344#的回答。
回复

使用道具 举报

83#
 楼主| 发表于 2020-11-11 08:59:36 | 显示全部楼层
熟悉并使用过 SVBus、FiraDisk、WinVblock 的坛友,请释疑一下:
是往 windows 传递了软盘?硬盘?光盘?是一个还是多个?

imagex 可以在 windows 挂载软盘、硬盘、光盘,难道不能满足需求,非要使用 SVBus、FiraDisk、WinVblock ,有充分的理由吗?

我看 SVBus 的源代码,他传递的是物理地址,也可以说是扇区序列。所以如果映像没有加载到内存,也就是说 map 的时候没有使用 --mem,映像必须连续!
G4D 之所以映像可以不连续,是因为有碎片映射表,并且有专用驱动程序。

点评

他们似乎都是传递了硬盘,就是把grub4dos仿真到内存盘的这个(rd),从grub4dos下的实模式“传递”到windows保护模式里面。 看下内置了svbus的vhd启动菜单就知道了啊。 title WIN10X64-SVBUS (/VHD/ltsb-svbus.vhd  详情 回复 发表于 2020-11-12 11:40
SVBus、FiraDisk、WinVblock 这三个 G4D 的驱动,只要在 G4D 里映射了,就会在 Windows 里找到相应类型的磁盘,好像没有多少的限制?反正我将同一个 SVBUS 之类的 IMG 映射成软驱A、B,在 Windows 中都能够见到。  详情 回复 发表于 2020-11-11 12:47
1,有多少插槽创建多少设备,反正对于它在的那个层次(SCSI Miniport),Windows不区分,统一下发SCSI指令,区分由更高层的驱动处理 2,Imdisk工作依赖于【文件系统】(当然如果你直接指定\\.\PhysicalDrive0这种“  详情 回复 发表于 2020-11-11 10:53
回复

使用道具 举报

84#
 楼主| 发表于 2020-11-11 12:28:21 | 显示全部楼层
然后硬编码了from_drive<0x80时认为是软盘,>0xA0时认为是光盘
from to用的都还是8位的

一共8个插槽,from_drive<0x80时认为是软盘,>=0xA0时认为是光盘。
复制的插槽结构与SVBus一致。

看了楼上你的解答,我理解是这个正在启动过程中windows,要加载某个缺少驱动程序,而这个驱动程序,是由G4D映射,并通过SVBus提供。

点评

做PE的时候,很多都有【复杂环境下找到外置或者其他什么虚拟盘】的需求。尤其是从UD启动的时候。当然UEFI没UD了,但是如果是一些隐藏方案的话启动时认虚拟盘需求仍在。 以及做RAMOS。都需要有驱动来帮Windows认盘,  详情 回复 发表于 2020-11-11 12:42
回复

使用道具 举报

85#
 楼主| 发表于 2020-11-11 12:56:14 来自手机 | 显示全部楼层
cchessbd:1. 你的设备不支持图形模式。至于为什么不正常退出而死机,待查。可是第四项你能显示汉字,奇怪了。2. 怎么根目录会在rd0,而且丢失了光盘,很奇怪。你的menu.lst在软盘里?目前启动不了bootmgr.efi,以后再改进。3. 这个菜单是启动BIOS里面的grldr,与本楼不搭建。4. 既然不支持图形模式,怎么进入了图形模式?

点评

我注释了graphicsmode,uefi没有进入图形模式,是文本菜单显示了汉字。正常显示了图片加汉字的是bios启动后的菜单。  详情 回复 发表于 2020-11-11 13:29
回复

使用道具 举报

86#
 楼主| 发表于 2020-11-11 13:09:53 来自手机 | 显示全部楼层
谢谢S大,解释的非常清楚!
回复

使用道具 举报

87#
 楼主| 发表于 2020-11-12 13:40:30 来自手机 | 显示全部楼层
不支持。要支持的话,它的把碎片插槽读进来。怎么传递给windows?还是内部拦截读程序,指挥windows读那一段?

点评

如果要处理碎片插槽的话,我觉得可以给这些驱动打个补丁……比如说还可以再在640KB的区域里再加一个$G4DBLCK这种特征签名的开头然后后面是碎片插槽,现在这些驱动里映射插槽只用了CHS,起始扇区和长度,以及from to_  详情 回复 发表于 2020-11-12 14:41
回复

使用道具 举报

88#
 楼主| 发表于 2020-11-12 13:57:22 来自手机 | 显示全部楼层
windows读文件系统,不连续的话,查簇表。而现在讨论的是扇区序列。
回复

使用道具 举报

89#
 楼主| 发表于 2020-11-12 15:16:25 来自手机 | 显示全部楼层
我不清楚,是由SVBus安装的驱动吗?是,就好办。有人修改它吗?不是,后续windows或者其他程序还要读映射的社区序列的虚拟盘,就比较麻烦了。

点评

?安装驱动是什么情况? 说了好几遍只是为了认出系统文件而已…… SCSI Miniport这个层次,从上面收来的指令很简单的,就是读XXX扇区开始多长的几个扇区……所以应该还算好处理  详情 回复 发表于 2020-11-12 15:29
回复

使用道具 举报

90#
 楼主| 发表于 2020-11-12 19:49:36 来自手机 | 显示全部楼层
有点误解。我的意思是:假如读文件段90-120,现在是从450开始读30,480结束。应当是从450开始10,然后从5148读20,5168结束。

点评

实体文件如下: 90-100 对应450 起 10 100-120 对应5148起 20 交给 svbus 内部再怎么读是另一会事 如 subus 读 95 它会自动换成读 455  详情 回复 发表于 2020-11-12 20:03
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-29 16:41

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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