|
楼上正解。
你要加载 USB 的时候,肯定是从 USB 启动的或者从硬盘、软盘、光盘启动的。这些启动方式都不与 PXE 有 “牵连”,因此,你都可以屏蔽掉 PXE。而看你先前的帖子,得知你已经了解如何屏蔽 PXE,即,修改 pre_stage2 的偏移 05 处的控制字节。
yaya 的真实意思可能是说,假如 grldr 是经由 pxe 启动,此时应该不再加载 USB 驱动。
common.c 中的 init_bios_info () 就有确定启动盘的代码。init_bios_info 执行完成后,就确定了启动盘的盘号了。如果是从 pxe 启动,那么 init_bios_info 执行完成后,启动盘 boot_drive 和当前盘 saved_drive 都将设定为 0x21。
由于 pxe 把 grldr 加载在 0000:7C00,所以,为了区分,PBR 的引导代码不应该把 grldr 也加载在 0000:7C00,而应该加载在别处,比如 1000:0000 或者 2000:0000 等其他地址处。
grldr 头部的引导代码(大约在第二扇区)能够根据上述地址 “约定” 来判断是否从 PXE 启动,如果不是从 PXE 启动,则屏蔽掉 PXE 的启动步骤。注意,光盘启动也有可能是加载在 0000:7C00。因此,还需要注意,从 no-emulation-mode 的光盘格式启动时,也要屏蔽掉 PXE 的启动步骤。
|
|