过来看看,学习一下 |
*** 在固定位置访问一些内部变量 *** ****************************************************************************** 地址 长度 说明 ========= ======== ============================================== 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 为单位) |
参与人数 1 | 无忧币 +10 | 收起 理由 |
---|---|---|
liuzhaoyzz | + 10 | 很给力! |
本帖最后由 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 17:40 编辑 不点 发表于 2022-11-13 17:01 我知道屏幕顶端显示的是g4d/g4e的版本号。问题是有时候截屏出来反馈问题的是运行中的截屏,运行中的截屏没有显示g4d/g4e版本号的功能吧, g4d/g4e的版本号好像是以16进制型式保存在grldr/g4ebootx64.efi文件中,是不是需要转换才能显示。 代码占用空间的问题,完全理解。对于BIOS可以放在ext外部程序中吧,对于UEFI应该无所谓,不会占用多少内存空间。 |
顶行就是版本和日期。有人喜欢把顶行去掉,那就没办法了。弄个版本命令,会占用代码空间。建议不要在 for bios 下干这个事。efi 底下,我不知道代码体积的影响有多大,没发言权。 在 for bios 版本下,我甚至建议,应该再删除一些不常用的代码(以及不常用的命令),来尽量避免代码过大覆盖数据空间 的问题。因为 for bios 的环境, grub legacy 没有内存分配接口,都是我们自己划定的区域,用于代码,或用于数据。因此,代码无限增大,就会越界,就会与数据冲突。 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.