无忧启动论坛

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

[已解决] 请问各位: grub4dos 的 is64bit 怎么用?

[复制链接]
跳转到指定楼层
1#
发表于 2023-10-31 10:38:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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





多谢各位大神
2#
发表于 2023-10-31 11:00:46 来自手机 | 只看该作者
在什么环境应用?

点评

传统 bios 下,如果识别硬件是 64 位的,就启动 64 位的微系统。反之,则启动 32 的微系统  详情 回复 发表于 2023-10-31 12:16
传统的bios下  详情 回复 发表于 2023-10-31 12:02
回复

使用道具 举报

3#
 楼主| 发表于 2023-10-31 12:02:36 | 只看该作者

传统的bios下
回复

使用道具 举报

4#
 楼主| 发表于 2023-10-31 12:16:12 | 只看该作者

传统 bios 下,如果识别硬件是 64 位的,就启动 64 位的微系统。反之,则启动 32 的微系统
回复

使用道具 举报

5#
发表于 2023-10-31 12:35:53 | 只看该作者
本帖最后由 不点 于 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 的批处理语法。

回复

使用道具 举报

6#
 楼主| 发表于 2023-10-31 13:35:20 | 只看该作者
多谢各位的开示!

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

看来需要再翻翻相关文档试试了。
回复

使用道具 举报

7#
发表于 2023-10-31 13:49:55 | 只看该作者
本帖最后由 不点 于 2023-10-31 14:01 编辑

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

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

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


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

回复

使用道具 举报

8#
 楼主| 发表于 2023-10-31 16:10:57 | 只看该作者
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

评分

参与人数 1无忧币 +5 收起 理由
不点 + 5 高!

查看全部评分

回复

使用道具 举报

9#
发表于 2023-10-31 16:33:08 | 只看该作者
blank007 发表于 2023-10-31 16:10
clear

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

高!这段程序不知是谁写的,貌似以前见过。我这老年痴呆,再加上记忆力消退,就没有印象了。
回复

使用道具 举报

10#
 楼主| 发表于 2023-10-31 17:28:09 来自手机 | 只看该作者
@9楼  就是在本坛以  is64bit  搜到的
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-28 13:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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