无忧启动论坛

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

GRUB4DOS更新建议、bug反馈专帖

    [复制链接]
211#
发表于 2017-10-17 13:44:27 | 显示全部楼层
xhwfq 发表于 2017-10-17 12:28
上传图片附件好象有问题

你只试验了 hd0, 没有试试 fd0 以及 hd1, hd2, hd3。尽管可能性不大,但试试总是没坏处的。

你的 map --status 显示,软盘和硬盘个数都是 0。这可能暗示,你的 PXE BIOS 已经封杀了硬盘的 BIOS 接口。可能没啥希望了。不过,你可以把死马当成活马医。用如下命令强制设置硬盘个数为 1,再试试。

map --harddrives=1

geometry (hd0)
cat   --hex   (hd0)+1

虽然硬盘 BIOS 接口被封杀了,但你仍然有可能进入 Windows 或 Linux。因为 Windows 和 Linux 不完全依赖 BIOS。你把 Windows 安装文件放在 pxe 服务器上,设置好,就可以启动进入 Windows 了。关于 pxe,我接触得不太多,你可以搜索 Internet,学习一下。

点评

发现是这玩意在作怪: “UEFI:IPV4 Realtek Ethernet Controller” 不知用什么来搞定它?  详情 回复 发表于 2017-10-17 18:06
试了map --harddrives=1,还是没用。看样子确实是PXE BIOS的问题,感谢不点大师的指点。  详情 回复 发表于 2017-10-17 14:04
回复

使用道具 举报

212#
发表于 2017-10-17 19:10:48 | 显示全部楼层
EFI 本来就是与 BIOS 不兼容的。微软和 OEM 厂家本来就是要制造不兼容性的。旧的系统、旧的软件太普及了,微软从中得不到利益,或者得到的利益太小。于是就要在 “不兼容性” 上动脑筋了。其实不只是微软,任何一个商家都会有这种想法。像这样,只有不断地淘汰、不断更新换代,才能有利于微软的生存。类比一下,智能手机为什么不能更换电池?道理一样。商家让电池不可更换,用户才能不断地买新手机。再举一例:电蚊拍的电池为何不设计成可以自由更换的模式?道理也一样——让电蚊拍用一年就坏了(其实只是电池坏了),这样用户才能年年都买新的电蚊拍。

你提出的上述这个具体问题,或许有解(究竟有没有解,我没研究过)。但 “商家制造不兼容性”的这样一个根本性的问题,恐怕是无解的。至少在用户没有能力“摆脱控制”之前,这是无解的。

因此,我建议你省省力气,不要去做这些无用功(恕我直言了)。你还是乖乖地上路吧,上什么路?上 EFI 的路啊!你得适应 EFI 呀!除非你也像我一样,永远不再买 x86 的电脑了。
回复

使用道具 举报

213#
发表于 2019-2-15 10:08:58 | 显示全部楼层
这一行是错误的:

map --mem--top (hd0,0)/Boot/zcwin7.vhd (hd0)

应该是

map  --mem  --top   (hd0,0)/Boot/zcwin7.vhd   (hd0)

两个选项  --mem 和 --top 中间必须有空格。

不要犯低级错误喔。
回复

使用道具 举报

214#
发表于 2022-11-3 12:06:50 | 显示全部楼层
chrome1101 发表于 2022-10-5 12:18
grub4dos的kernel命令无法加载multiboot的内核,版本:grub4dos-0.4.6a-2022-09-15

命令:kernel --type ...

这个问题,好像没人答复。如果 yaya 在别处答复了,或者问题已经解决了,请忽略我下面的叙述。

很抱歉,我的叙述,并非是技术性的,也不算是答复。我主要只是谈记忆中的(早期)历史。

grub4dos 是基于 grub legacy 的。grub legacy 支持啥,grub4dos 就支持啥。当然了,也并非 100% 如此。grub4dos 去除了那些 “不值得支持的东西”,这些东西,很少见,一般人根本碰不上,所以,根本就没有影响。比如说,对 “ontrack disk manager” 虚拟磁盘结构的支持,就删除了,不支持了。而 grub legacy 是支持的。至于说 grub4dos 添加的新功能,大家都知道,就不说了。另外一个值得提及的事情是,grub4dos 修复了无数个 bug(这些 bug 是在原先的 grub legacy 中存在着的)。所以,此处顺便说一下,万一有人还在使用 grub legacy 的话,我奉劝您,不要继续使用 grub legacy 了,而应该切换到 grub4dos。

言归正传,grub4dos 在启动 multiboot 内核的时候,也是遵循 grub legacy。此类功能不可能删除,而是与 grub legacy 保持一致。我印象中,chenall 或 yaya 已经对 grub4dos 打了补丁,能够支持某些新的 linux 内核格式(这些新的 Linux 内核格式,用原先的 grub legacy 也不能启动)。注意,linux 内核格式,“不等于” multiboot 格式。

如果我仍然是开发者的话,我不会去为支持新的 multiboot 格式而做工作。旧的 multiboot 格式已经支持了,那就继续保持支持的状态,也不会刻意去除这种支持。但我不会再费劲去跟踪支持新版 multiboot 格式的变化。即便 grub4dos 中现有的 multiboot 支持代码有 bug,我也不会去解决它。这是我本人对待 multiboot 格式的态度。至于说 linux 内核格式,有鉴于 linux 内核的地位(事实工业标准的地位),所以,我觉得还是应该全力予以跟踪支持的。

现在我不参与开发,当然也不决定任何事情。我只是对这个问题的早期状态,以及相关的事情,根据我个人的理解,作个说明,为的是,万一有人碰巧需要这个说明呢。如果说我有什么目的的话,那目的也很简单,无非就是想节约开发者的精力和时间,保重身体,不要把自己累垮了。除此之外,没有别的目的。

既然我的目的也不是来解决题主的问题,所以,请题主原谅。
回复

使用道具 举报

215#
发表于 2022-11-3 14:30:19 | 显示全部楼层
本帖最后由 不点 于 2022-11-3 14:40 编辑
guyouhua 发表于 2022-9-21 17:44
首界面上的MEM:显示的内存数不对,物理内存8G显示不正常。

这个问题,比较简单,我也来答复一下。常规内存 638K,这说明,Extended BIOS Data Area 占据了 2K。从 640K 中扣除 2K。那就是 638K。整个 DOS 可访问的内存是 1M,这个大家都知道。

从 1M 到 4G 之间的第一块连续内存的大小是 3581M。
4G 以上的高位内存量是 4608M。

简单计算一下:1M(DOS 内存)+ 3581M(扩展内存)+ 4608M(高位内存)= 8190M

题主的总内存是 8G =8192M,因此,还有 2M 被 BIOS 保留,用作其他目的。

题主的内存布局,没有任何问题,很正常。

另外一个问题,题主的高位内存量是 4608M,超过 4096M。超过的部分是 4608 - 4096 = 512M,这部分是被芯片组从低端映射过来的。所谓 “芯片组”,我理解为:“硬件程序”。所谓 “映射过来”,大致可以通俗理解为 “挪过来” 吧。题主的 4G 以内的内存量,只有 3581M,不足 4096M。这是没有矛盾的,因为低位内存中的 512M 已经挪到 4G 以上的高位内存中了。


顺便说一下,题主这个主板是什么牌子的?如此漂亮的内存布局!非常罕见。8G 内存,除了 DOS 占用的 1M 内存以及 BIOS 保留的 2M 内存以外,剩下的,全都给用户使用。而且,全都是连续的,没有碎块!低于4G 的低位内存是一大块(3581M),高于4G 的高位内存,也是一大块(4608M)。这样的电脑,最不 “坑爹” 了!

回复

使用道具 举报

216#
发表于 2023-10-19 09:16:08 | 显示全部楼层
游鱼摆尾 发表于 2023-10-19 08:38
哦,也就是说,不加上768是为了兼容一些超宽屏吗,还是说一般情况下只有1024*768这个分辨率,就可以只需写1 ...

写上 graphicsmode -1 1024,就是说,能够适应 768 行的像素行数,也能适应其他任意的行数。但列数是固定的,是 1024 个列。

点评

明白了,谢谢不点大师的解答  详情 回复 发表于 2023-10-19 09:19
回复

使用道具 举报

217#
发表于 2023-10-19 09:47:04 | 显示全部楼层
本帖最后由 不点 于 2023-10-19 10:02 编辑
游鱼摆尾 发表于 2023-10-19 09:19
明白了,谢谢不点大师的解答

graphicsmode -1 这条命令的意思,就是选择主板 VBE 系统所支持的最高分辨率。

graphicsmode -1 1024 的意思,就是选择主板 VBE 系统所支持的列数为 1024 列的最高分辨率。

graphicsmode -1 1024 768 的意思,就是选择主板 VBE 系统所支持的列数为 1024 列、并且行数为 768 行的最高分辨率。

graphicsmode -1 1024 768 24 的意思,就是选择主板 VBE 系统所支持的列数为 1024 列、行数为 768 行、并且色彩深度为 24 位的最高分辨率。这其实就只有一种可能性了。

如果主板不支持所指定的参数,那么这条命令就相当于找不到指定的分辨率,所做的选择 “落空” 了,因此,什么也不做。


其他例子还有:


graphicsmode -1 800:1024 600:768 16:24


意思是,选择主板 VBE 系统所支持的列数位于 800~1024 之间,行数位于 600~768 之间,并且色深位于 16~24 位之间的最高的那个分辨率。



graphicsmode -1 800,1024 600,768 16,24


意思是,选择主板 VBE 系统所支持的列数为 800或1024,行数为 600或768,并且色深为 16 位 或 24 位的最高的那个分辨率。



graphicsmode -1 640,800:1024 480,600:768 8,16:24




意思是,选择主板 VBE 系统所支持的列数为 640 或位于 800~1024 之间,行数为 480 或位于 600~768 之间,并且色深为 8 位 或位于 16~24 位之间的最高的那个分辨率。


逗号表示 “或”,分号表示一个区间。x:y 表示位于 x 和 y 之间的数。逗号和分号两边不可以有空格。空格是语法分隔符,不可以出现在表示 “整数集合” 的表达式中。


以下是整数集合的例子,方便大家理解:


3,4,5 等价于 3:5


3,4,5,8,9 等价于 3:5,8:9


3,4,5,8,9,10,11 等价于 3:5,8:11


100,200,300 不等价于 100:300,前者是只有三个数的集合,后者是有 201 个数的集合,即:100,101,102,103,等等,一直到 300。



点评

谢谢不点大师,讲的太系统了,那这句的意思:graphicsmode -1 -1 -1 24:32应该就是选择主板所支持的最高行数和列数的最高分辨率,并且色深为 24 位 或 32 位的最高的那个分辨率,是吗?比如说显示器分辨率是1920x108  详情 回复 发表于 2023-10-19 10:09
回复

使用道具 举报

218#
发表于 2023-10-19 10:54:30 | 显示全部楼层
本帖最后由 不点 于 2023-10-19 16:49 编辑
游鱼摆尾 发表于 2023-10-19 10:09
谢谢不点大师,讲的太系统了,那这句的意思:graphicsmode -1 -1 -1 24:32应该就是选择主板所支持的最高 ...

从程序设计的角度来看,这是很容易实现的。因为只要规定了 “整数集合” 如何表示,那就万事大吉了。有了明确的规范,那么大家使用起来就得心应手,可以根据自己的需要,自由地、精确地进行控制。控制权完全掌握在用户自己手上。

graphicsmode -1 ,
此处 -1 不是一个真正的模式号码,只是表示 “我想要进入某个 VBE 图形模式,即,满足某个条件的具有最高分辨率的那个图形模式。我不知道这个图形模式的准确号码值,但我【模模糊糊地】知道像素点阵的宽度、高度以及色彩深度【的大致范围】,请你帮我找出这样一个模式的号码【我并不关心这个号码的具体数值,你自己知道就行,不必告诉我】,并让显卡立刻进入这个模式”。如果参数不是 -1 而是别的一个数,这个数就应该是主板 VBE 系统所支持的一个合法的模式号码。那么,命令的含义就变成 “我想要进入这个指定的模式”。这个模式号码可能是某个文本模式的模式号码,也可能是某个图形模式的模式号码。这就了解到,graphicsmode 命令其实也可以用来进入文本模式,尽管大家很少这样去用。如果用这条命令进入文本模式,它会使用新的 VBE 标准进入文本模式,而不是用旧的 VGA 标准进入文本模式。这个模式号码(如果它不是 -1)就代表一个实实在在的模式,因此,这个号码不可以随便乱写;如果胡乱写一个模式号码,而你的主板 VBE 碰巧又不支持这个模式,那可能会死机的。

graphicsmode -1 -1 末尾的 -1 表示像素列数是任意的,选择进入最高分辨率。

graphicsmode -1 -1 -1 末尾的 -1 表示像素行数是任意的,选择进入最高分辨率。

graphicsmode -1 -1 -1 -1 末尾的 -1 表示色彩深度是任意的,选择进入最高分辨率。

graphicsmode -1 -1 -1 24:32 表示色彩深度是 24,25,26,27,28,29,30,31或32,选择进入最高分辨率。由于主板 VBE 的 BIOS 系统在实际上只存在 8 位、15 位、16 位、24 位、32 位 等少数几个色彩深度,因此,这也就跟 graphicsmode -1 -1 -1 24,32 的实际效果是一样的了。

graphicsmode -1 -1 -1 24:32 的效果与 graphicsmode -1 不等价。

graphicsmode -1 -1 -1 -1 与 graphicsmode -1 是等价的,当然也与 graphicsmode -1 -1 等价,也与 graphicsmode -1 -1 -1 等价。

从实际效果来说,graphicsmode -1 的实际效果,还与 graphicsmode -1 -1 -1 8:32 等价,也与 graphicsmode -1 -1 -1 1:32 等价,甚至与 graphicsmode -1 -1 -1 0:10000 也是等价的,这是因为,前面说了,实际上只存在少数几种色深。 当然,安全起见,还是不要使用 0:10000 这种不太正常的色深控制参数,因为,将来的开发者有可能检查参数合法性,把那些看起来 “离谱” 的参数,判定为 “非法” 参数,从而拒绝执行命令。


而 graphicsmode -1 -1 -1 24:32 限定了色深必须在 24 至 32 之间,所以与 graphicsmode -1 不等价。


此处还要解释一下,何为 “最高分辨率”。


像素列数 * 像素行数 * 色彩深度 这三者的乘积,作为判定依据。乘积最大者,就是 “最大分辨率”。

点评

十分感谢不点大师专业而系统的解答,这下子完全明白了  详情 回复 发表于 2023-10-19 13:38
回复

使用道具 举报

219#
发表于 2023-12-8 15:27:08 | 显示全部楼层
2011xnsfgw 发表于 2023-12-8 15:13
分区类型有:fat32,ntfs,exfat,ext4等。

你在打什么哑谜?
回复

使用道具 举报

220#
发表于 2023-12-8 15:29:20 | 显示全部楼层
本帖最后由 不点 于 2023-12-8 15:32 编辑

下载次数为 0,——咦?—— 难道说,积分少的人,没法下载?嗯??

想到一个办法,用 email。

点评

使用的是grub4dos.chenall.net下载的grldr,编译时间是2022-01-18. 你新编译的我试一下,有无问题我再反馈。  详情 回复 发表于 2023-12-11 17:29
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-11 22:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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