Board logo

标题: GRUB4DOS的一个疑惑!!! [打印本页]

作者: zhaojun1a     时间: 2007-3-30 02:17    标题: GRUB4DOS的一个疑惑!!!

尊敬的GRUB4DOS开发者:

    您好!
    我现在遇到这样一个问题,请你指教!

    我在fedora4下(内核版本:2.6.15)使用grub4dos。
过程:
    1、kexec -l grub.exe;
    2、kexec -e;
    3、然后进入grub4dos的菜单选项后,我选择进入windowsxp。
我用不同版本的grub.exe进行尝试,结果有的能启动xp,但cpu利用率为100%;有的不能启动xp。
    为什么呢???恳请您帮忙解决。非常感谢!!!
作者: 不点     时间: 2007-3-30 05:42
我不用 XP,但是我好像也遇到过类似的问题,我是在用 KEXEC 进入 GRUB 之后接着再启动 LINUX 时遇到启动过程缓慢的问题,但进入 LINUX 后正常。怀疑和 BIOS 有关。

另外,由于 LINUX 运行于 386 保护模式,它更改了系统硬件信息,比如它把可编程中断控制器进行了重新编程,让硬件中断所对应的软件中断号发生了变化。GRUB.EXE 对此进行了处理,所以,此处应当没有问题了。然而,LINUX 内核或许还更改了别的硬件,比如说 PCI 的信息。我不知道如何能够把经过 LINUX 改动过了的 PCI 信息还原到 BIOS 的初始状态,所以,这样就有可能造成启动某个操作系统出现不同的响应。

你也可以向 KEXEC 的作者反映这一问题,希望他能够在 KEXEC 中做好 PCI 设备的初始化工作,以便让 GRUB.EXE 能够获得一个可靠的实模式环境。

当然,LINUS 本人也比较容易做出这个改动。PCI 的初始化是 LINUS 作的,他应该知道如何还原 PCI 到 LINUX 内核接管控制之前的状态(实模式)。
作者: zhaojun1a     时间: 2007-3-30 07:03
1、kexec -l grub.exe;
    2、kexec -e;
    3、然后进入grub4dos的菜单选项后,我选择进入windowsxp。
如果linux改变硬件设置的话。
为什么我选择l进入linux,并没有发现任何问题啊,
但是选择winxp,就不行呢?
作者: 不点     时间: 2007-3-30 11:18
这正说明是 Linux 改变了硬件环境所造成的。Linux 改变了硬件环境之后,进入 LINUX 后,Linux 就感到很舒服。但是 WinXP 就不一定会感到舒服了。虽然它们都是保护模式的操作系统,但是,它们对硬件的处理是有很大差别的。经过了 LINUX 初始化的硬件,只能适应 LINUX 的运行。如果 WINXP 能够自己全面做好初始化,我估计 XP 也可以正常启动运行。但是 XP 是微软的,我们不能修改它,因此我们只能修改 GRUB 、KEXEC 以及 LINUX,来达到目的。这个工作不容易呀,需要研究 Linux 内核的硬件初始化过程。你不妨试试。