无忧启动论坛

标题: 请问下g4d/g4e有没有一个命令显示grub4dos的版本号? [打印本页]

作者: liuzhaoyzz    时间: 2022-11-13 16:49
标题: 请问下g4d/g4e有没有一个命令显示grub4dos的版本号?
请问下g4d/g4e有没有一个命令显示grub4dos的版本号?
每次都要问网友你所用的grub4dos版本是什么,BIOS还是UEFI,如果有个命令或者内部变量能够显示其版本,就不用问了,写在菜单中,运行的时候echo显示出来。
有没有?


作者: 不点    时间: 2022-11-13 17:01
顶行就是版本和日期。有人喜欢把顶行去掉,那就没办法了。弄个版本命令,会占用代码空间。建议不要在 for bios 下干这个事。efi 底下,我不知道代码体积的影响有多大,没发言权。

在 for bios 版本下,我甚至建议,应该再删除一些不常用的代码(以及不常用的命令),来尽量避免代码过大覆盖数据空间 的问题。因为 for bios 的环境, grub legacy 没有内存分配接口,都是我们自己划定的区域,用于代码,或用于数据。因此,代码无限增大,就会越界,就会与数据冲突。

作者: liuzhaoyzz    时间: 2022-11-13 17:09
本帖最后由 liuzhaoyzz 于 2022-11-13 17:40 编辑
不点 发表于 2022-11-13 17:01
顶行就是版本和日期。有人喜欢把顶行去掉,那就没办法了。弄个版本命令,会占用代码空间。建议不要在 for b ...

我知道屏幕顶端显示的是g4d/g4e的版本号。问题是有时候截屏出来反馈问题的是运行中的截屏,运行中的截屏没有显示g4d/g4e版本号的功能吧, g4d/g4e的版本号好像是以16进制型式保存在grldr/g4ebootx64.efi文件中,是不是需要转换才能显示。

代码占用空间的问题,完全理解。对于BIOS可以放在ext外部程序中吧,对于UEFI应该无所谓,不会占用多少内存空间。      

作者: 2011whp    时间: 2022-11-13 17:49
本帖最后由 2011whp 于 2022-11-13 18:00 编辑

calc *0x8278 > nul ;; set g4dver=%@retval%
if %@UEFI%==64  && echo g4e%g4dver% ! echo g4d%g4dver%

作者: liuzhaoyzz    时间: 2022-11-13 18:20
2011whp 发表于 2022-11-13 17:49
calc *0x8278 > nul ;; set g4dver=%@retval%
if %@UEFI%==64  && echo g4e%g4dver% ! echo g4d%g4dver%

果然是可以!

linux-2022-11-13-18-17-15.png (3.6 KB, 下载次数: 160)

linux-2022-11-13-18-17-15.png

作者: szwp    时间: 2022-11-13 18:52
***               在固定位置访问一些内部变量                               ***
******************************************************************************

地址            长度            说明
=========        ========        ==============================================
0000:8208        4字节(即双字) 启动分区号 install_partition (the boot partition)
0000:8280        4字节(即双字) 启动驱动器号(boot_drive)
0000:8284        4字节(即双字) pxe 客户端 ip (即本地ip)
0000:8288        4字节(即双字) pxe 服务器 ip
0000:828C        4字节(即双字) pxe 网关 ip
0000:8290        8字节(即四字) 最后访问的文件的大小(是执行"cat --length=0"后的文件大小)
0000:8298        4字节(即双字) 从 1M 开始的连续内存块的大小(以 KB 为单位)
0000:829C        4字节(即双字) 当前根分区号(current root partition)
0000:82A0        4字节(即双字) 当前根所在的驱动器(current root drive)
0000:82A4        4字节(即双字) 解压标志 (gzip非自动解压),非0时不自动解压
0000:82A8        8字节(即四字) 最后访问的分区的起始扇区号
0000:82B0        8字节(即四字) 最后访问的分区的扇区总数
0000:82B8        4字节(即双字) UD分区:磁头数,每磁道扇区数,真正驱动器号,最大每磁道扇区数(低位)
0000:8278        4字节(即双字)  GRUB4DOS编译的日期十进制数.
0000:82c0        8字节(即四字) 从 4G 开始的连续内存块的大小(以 KB 为单位)
作者: laonat    时间: 2022-11-20 03:09
过来看看,学习一下
作者: nowayer    时间: 2023-12-1 08:17
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3