|
|
发表于 2013-9-25 16:48:26
|
显示全部楼层
本帖最后由 不点 于 2013-9-25 17:09 编辑
0.4.6a版本的grub.exe(7月24日版本),直接改名为grldr,内置菜单只有commandline一句,用grub4dos分区引导记录引导此grldr,出现的现象与grub4dos分区引导记录引导grldr的现象相同。
错误的使用方式。这种方式是把 grub.exe 当作 grldr 来使用,因此其表现也与 grldr 相同。
请把 grub.exe 当作 Linux kernel 来使用,此时,其表现才可能与 grldr 有差别。
请参照 syslinux 加载 Linux 的 vmlinuz 的方式来加载 grub.exe。
补充:
syslinux 有多种方式加载 grldr,而你只使用了其中的一种。请学习 syslinux 的资料,看看有没有控制加载地址的选项。如果没有的话,你可以给 syslinux 开发者提建议,要求增加一个选项,用来控制加载的地址。
你还有另外一个选择,这样你不用求助于 syslinux 的开发者。你可以通过修改 GRLDR 的 “PXE 控制位” 来永久性地屏蔽掉 PXE 的启动步骤。详述如下:
在 asm.S 中。有如下的注释- . = EXT_C(main) + 0x5
- /* control byte: pxe, DUCE, tune
- * bit 0 = 1: disable pxe
- * bit 1 = 1: disable keyboard intervention in boot process
- * bit 2 = 1: disable the "unconditional command-line entrance" feature
- * bit 3 = 1: disable geometry tune
- * bit 4 = 1: disable startup cdrom drive look-up.
- */
复制代码 此处所说的控制字节,位于 grldr 的偏移 0x2005 处。把它的 “位0”(即 “最低位”)设置为 1,即可达到 “禁止 PXE” 的目的。你可以用十六进制编辑器作这个修改,把偏移 0x2005 处的字节 “00” 改成 “01” 即可。注意不要改错了地址,比如,不要修改 0x2000,0x2001,0x2002,0x2003,0x2004 这 5 个字节的内容。修改完了之后,保存修改。新的 GRLDR 将不再执行 PXE 相关的代码了。这样也就可以避免由于 PXE 的探测而造成的死机了。
|
|