解决方法
GRUB确实会使您处于保护模式.
GRUB Multiboot Specification (version 0.6.96) Section 3.2告诉你这个
‘CR0’
Bit 31 (PG) must be cleared. Bit 0 (PE) must be set. Other bits are all undefined.
而CR0 Register mapping告诉你系统应该处于保护模式.
Linux不是一个多引导内核,并不依赖于一些引导程序在PM中进行切换,它遵循Linux Boot Protocol.但是linux是自己保护的模式,而不依赖于引导加载程序
检查:http://lxr.linux.no/#linux+v2.6.39/arch/x86/boot/main.c
这里调用go_to_protected_mode();当然后调用protected_mode_jump(),然后进行CR0的填充(设置位0)
(另一位说分页被禁用)
编辑
我可以想到的是,GRUB can detect linux boot protocol(GRUB2和legacy也应该),并在内存上加载linux,但不切换到保护模式.看看这个链接:http://www.gnu.org/software/grub/manual/grub.html#GNU_002fLinux和本链接页面的第16节.