无忧启动论坛

标题: 请问各位: grub4dos 的 is64bit 怎么用? [打印本页]

作者: blank007    时间: 2023-10-31 10:38
标题: 请问各位: grub4dos 的 is64bit 怎么用?
本帖最后由 blank007 于 2023-11-1 10:09 编辑

请问各位: grub4dos 的 is64bit 怎么用?

我想实现以下功能:

grub4dos 在 bios 下,如果判断是 64 位的,则 configfile /menux64.txt。否则, configfile /menux86.txt


仿C语言的 伪代码:

if (true==is64bit())
    configfile /menux64.txt;
else
    configfile /menux86.txt;

现在,不知道如何获取、使用 is64bit 的返回值。

请各位大侠赐教


翻阅本坛资料,已经完美解决。代码如下:


clear


checkrange 2:3 is64bit && set BIOS=64
checkrange 0:1 is64bit && set BIOS=32


clear


if %BIOS%==64 configfile /EFI/Grub/BIOS/Menux64.txt
if %BIOS%==32 configfile /EFI/Grub/BIOS/Menux86.txt





多谢各位大神

作者: 2011yaya2007777    时间: 2023-10-31 11:00
在什么环境应用?
作者: blank007    时间: 2023-10-31 12:02
2011yaya2007777 发表于 2023-10-31 11:00
在什么环境应用?

传统的bios下
作者: blank007    时间: 2023-10-31 12:16
2011yaya2007777 发表于 2023-10-31 11:00
在什么环境应用?

传统 bios 下,如果识别硬件是 64 位的,就启动 64 位的微系统。反之,则启动 32 的微系统
作者: 不点    时间: 2023-10-31 12:35
本帖最后由 不点 于 2023-10-31 13:04 编辑

试试


is64bit || echo Not 64bit
is64bit && echo Is 64 bit


之类的语法。

【补充】上述答复并不特别准确。

起初的 is64bit 是精确判断 cpu 是否支持 64bit,返回值是 0 和 1.

后来,经过了改造,在返回值中用一个位表示是否支持 64 bit,用另一个位表示 cpu 的页面扩展,因为具有页面扩展的 cpu 也是可以访问 4G 以上高位内存的,这对于 grub4dos 的内存盘来说,是比较重要的。

所以,你可能需要:

先执行 is64bit 命令;
再用 chenall 的批处理语法来获得返回值;
然后再分析返回值的 “位”,判断出是否支持 64 位。

返回值的最低位,好像就表示是否支持 64 bit。

有点复杂,你需要看文档,研究一下 grub4dos 的批处理语法。


作者: blank007    时间: 2023-10-31 13:35
多谢各位的开示!

以前也问过类似的问题,到现在也是一直没搞懂。很惭愧。

看来需要再翻翻相关文档试试了。
作者: 不点    时间: 2023-10-31 13:49
本帖最后由 不点 于 2023-10-31 14:01 编辑

有些东西使用的人数少,就很难找到合适的文档、文章、帖子,只能自己去吃螃蟹,首次尝试。

grub4dos 中还开发了 “判断 cpu 是不是运行在虚拟机中” 的代码,但这更少见到有人用这个。所以,要想找到这个功能的用法,还得研究源代码才能知道。

现如今,grub4dos for legacy bios 已经逐步淘汰,新硬件不再支持了,所以,这些功能都是浮云。


甚至,从长远来看,32 位的硬件和软件系统,也将消失。今后将只留下清一色的 64 位系统。所以,不用特别费心去支持 32 位的旧硬件。


作者: blank007    时间: 2023-10-31 16:10
clear

checkrange 2:3 is64bit && configfile /EFI/Grub/BIOS/Menux64.txt  ! configfile /EFI/Grub/BIOS/Menux86.txt

这样的语句似乎可以做到:64位机器运行64位微系统,32位则运行32位微系统
作者: 不点    时间: 2023-10-31 16:33
blank007 发表于 2023-10-31 16:10
clear

checkrange 2:3 is64bit && configfile /EFI/Grub/BIOS/Menux64.txt  ! configfile /EFI/Grub/BIO ...

高!这段程序不知是谁写的,貌似以前见过。我这老年痴呆,再加上记忆力消退,就没有印象了。
作者: blank007    时间: 2023-10-31 17:28
@9楼  就是在本坛以  is64bit  搜到的




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