|
你的报告严肃、认真,很详细。可能是因为你是开发者吧,能抓住要害,而与一般的报告不同。那么,我的答复,也得格外负责才行,否则对不起你的报告。
首先,你忽略了(或混淆了)两个问题:常规内存和扩展内存。
这两部分应该单独报告,不可以揉在一块。
常规内存中的问题,前面已经解释清楚了,不再重复。
特别提醒一下,你没有提到你是如何使用 grub4dos 的。有可能是你自己使用过程、步骤“不合理”、“不正确”等,而引起的问题。譬如说,你的使用过程或步骤“异常”,超出 grub4dos 开发者的想象,超出了 grub4dos 的适用范围,使用了 grub4dos 文档中不曾提到的那些用法或步骤(比如你自己想当然的、误以为 grub4dos 应该具有某个功能但实际上并不具有,而你去使用那样的功能,自然会出问题)。你得明白,grub4dos 开发者的支持范围是啥(那就是开发者认可的那些文档中提到的用法)。超出支持范围的使用,那就是不支持的。超出范围的报告,也是不支持的。
以下假定你没有任何超限的、超范围的使用,全都是 grub4dos 文档中规定的使用方法。如果你不能满足这一点,那就不要往下看了。你需要用 grub4dos 文档规定的使用方法来重新进行试验和提交报告(有可能完全没问题了,因而也就无需报告了),那样,我才认为,报告是合理的、问题是认可的、bug 是承认的。否则,报告不被认可,问题不认为存在,bug 也不承认有。在进行 bug 报告时,不可以有任何超范围的使用,连一丝一毫都不行。(特别声明:我现在不是开发者,我不代表开发者、维护者,我只代表我自己;所有的见解、想法,都是我自己的,我不代表别的任何人。今后都是如此,希望不需要每次都声明,太累。)
请在符合上述要求的情况下,继续阅读。否则,停下来,不要继续。
下面根据你的描述,我来试图解决你所提到的扩展内存中所表现出来的问题。
你可能不了解,新版 grub4dos 对于虚拟内存盘所使用的内存块的搜索方向,进行了比较大的改造。旧版是从低到高,新版是从高到低。就是说,旧版会使用“能够放得下内存盘的最低端的内存块”,而新版会使用“能够放得下内存盘的最高端的内存块”。--top 参数的意义也与旧版不同,这里不讨论(因为你的问题没有涉及到它,因而不需要讨论 --top 在新旧版中的差别)。
你发现了,旧版使用了位于最低端的这个内存块
- Usable RAM: Base: 0x100000, Length: 0x1FF00000
复制代码
而新版使用了位于最高端的这个内存块:
- Usable RAM: Base: 0xD6FFF000, Length: 0x1000
复制代码
这是正确的。这不是 bug,这不是异常,这是设计成这样的。
由于新版 --top 的意义不同于旧版,因此,如果新版未指定 --top 参数,那就不会使用位于 4G 以上的这个“高位内存块”:
- Usable RAM: Base: 0x100000000, Length: 0x11FE00000
复制代码
好的,已经解释了,新版 grub4dos 没有任何问题。那么有问题的是啥呢?有问题的,是你的 Windows,也或者是你的 BIOS。
你的 BIOS 指示我们,说这些内存块都是 Usable RAM。换句话说,随便用哪一块,都是允许的。旧版挑选最低的那一块,新版挑选最高端的那一块。这能是 grub4dos 的错吗?肯定不是啊!那么错在哪里呢?动动脑子,猜猜就知道啊,必然是下面两者之一有错(或者两者都有错):
可能性一。BIOS 把一个不该是 Usable RAM 的内存块标记为 Usable RAM,让 grub4dos 使用它来放置内存盘,导致 Windows 无法启动。
可能性二。Windows 不能适应某个内存块。换句话说,它“挑剔”,它拒绝某个内存块。你可以认为这是 Windows 的 bug,或者你认为这是 Windows 的 “要求”也行,反正不管怎么称呼它,实质都一样,都是 “Windows 不明不白地拒绝使用某个内存块”。既然 Windows 是必须启动的,那这就是无条件要执行的命令,必须适应它,不适应就得死。其实你已经找到办法了(这是你作为一个开发者,具有不同于一般人的那种便利吧;一般人不一定能找到这个办法),你已经知道如何在新版下让它顺利通过了。你已经适应了,它难不住你!
从哲学上讲,这种情况以前也碰到过。那就是你以前可能很熟悉的 --e820cycles 参数。有些变态的主板(或变态的显卡驱动程序)必须要有这个变态的 --e820cycles 参数才行!否则就死给你看!!变态的主板或驱动程序,能挡得住 grub4dos 的前进?能让 grub4dos 退回到不曾具有 --e820cycles 参数的老版本、旧时代,而永远不前进?挡不住吧?
似曾相识吧?今天你遇到的是类似的情况了。你所遇到的这个变态的情况,也不应该挡住 grub4dos 的前进。换句话说,grub4dos 不该退回到 “从低到高搜索可用内存块”的旧时代。
以上就是我全部的答复。我力求答复得全面、细致(不知做到没有),希望我的答复能够易于理解、让人看懂。
不厌其烦地再次声明:以上言论只代表我个人。永远都是这样,我不代表其他任何人(希望以后不需要类似的声明了,太累)。
|
|