|
本帖最后由 不点 于 2017-4-19 12:38 编辑
2017 年的 grub 早已有之,你非要用 2015 年的。你那意思是说,开发新版毫无意义。
有人使用经过第三方开发者改造过的 grub4dos,出了问题,却来向 grub4dos 开发者报告问题,并且掩盖他采用“非官方”版本的事实。
有些第三方开发者,无视 grub4dos 开发者的警告,偏偏让 grub4dos 去访问那些靠后的扇区,超出 bios 访问能力,从而引起死机。
像你这个帖子,我看到时,是几天前了。但没法回答,因此就没回帖。
因为可能性太多,不知道你属于那一种情况。光靠猜测,那太累,因此决定不回答。
这不,果然,你暴露出“没有使用最新版” 的问题。不是说非要逼着你使用最新版,而是说,假如你来报告问题,你必须试试最新版,否则可能没人受理你的报告。
技术分析、猜测:
图片显示,死机发生在访问 (hd1,2) 之后。猜测 (hd1) 就是你的 GPT 盘。而 (hd1,2) 则可能是这个 GPT 盘上比较靠后的分区,因此可能超出了 BIOS 访问能力,并且死机。
进一步猜测:即使你把 GPT 改成 MBR 格式,也照样有可能会死机。猜测只要你试图让 grub4dos 去访问靠后的扇区,它就会死机。猜测与 gpt 格式无关。
以上猜测未经验证,仅仅是猜测。
今天再补充一点,希望能够对大家有用。
楼主使用了两个硬盘。这个情况并不乐观。要知道,grub4dos 的开发者没有硬件生产权、不能控制硬件程序的运行状况,那全都得靠硬件生产商了。
而硬件生产商可以被收买,大家应该能够理解这种情况吧?被收买的硬件制造商可以故意生产不兼容的硬件,这也可以理解吧?
有些主板,其 BIOS 根本就不支持访问第二硬盘。
其实不支持还好,它只要不死机就行。
BIOS 不支持,可以返回失败给那些调用 BIOS 的软件,而不应该是死机;而调用 BIOS 时死机,则可以理解为恶意封杀。
因此,关于第二硬盘,有三种情况发生:
(1)可以被 BIOS 正常访问。
(2)当用户程序试图调用 BIOS 访问时,出现失败,类似于“磁盘读错误”,并把失败的情况用一个失败代码通知调用者,并把控制器递交给调用者,未死机。
(3)当用户程序试图调用 BIOS 访问时,BIOS 不把控制权交给调用者,而是永远不返回(或者经过几分钟、几小时才返回),这就是死机(或者假死)。
既然如此,那么,无论用户还是开发者,都不该试图访问第二硬盘。如果你不想找事,不想遇到麻烦,而是想要让你的软件“通用”,那你就不该去访问第二硬盘,应该尽量避免访问第二硬盘。
如果是从 U 盘启动,此时 U 盘可能会成为 BIOS 的 (hd0) 设备,而本地硬盘成为 (hd1)。这种情况是常见的,通常不会有问题。作恶的制造商,其恶也是有一定限度的,基本不可能作恶到连“U 盘和硬盘的组合”这种情况都进行封杀的程度。
除了认为是封杀以外,也可以认为是 BIOS 编程者的 bug。这两者有区别吗?对于最终的用户而言,无论是制造商有意制造的失败,还是程序员无意出现的 bug,结果都一样:软件无法正常运行。两者其实没什么区别。您可以自由地倾向于任何一种认识,都一样。
|
|