无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2752|回复: 5
打印 上一主题 下一主题

[已解决] 关于 pxe 启动

[复制链接]
跳转到指定楼层
1#
发表于 2013-7-29 16:46:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 2011yaya2007777 于 2013-7-30 10:05 编辑

pxe 启动,客户机从服务器读入启动块(比如 grldr),放在何处?0x2000:0 还是 0:0x7c00 ?
把控制权交给 grldr 时,传递驱动器号没有?即向 dl 赋值没有? 0x21 或者其他?
2#
发表于 2013-7-29 17:14:07 | 只看该作者
应该是 0000:7C00 吧。

这又不是 int13 设备,传递 DL 有啥用处?

回复

使用道具 举报

3#
 楼主| 发表于 2013-7-29 18:28:59 | 只看该作者
那在加载 usb 驱动时,如何判断 grldr 是从 pxe 启动的?
回复

使用道具 举报

4#
发表于 2013-7-29 18:37:58 | 只看该作者
加载usb驱动时,无需判断grld 是从pxe启动。
回复

使用道具 举报

5#
发表于 2013-7-29 21:57:56 | 只看该作者
楼上正解。

你要加载 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 的启动步骤。

回复

使用道具 举报

6#
 楼主| 发表于 2013-7-30 10:04:30 | 只看该作者
谢谢不点提示。看来驱动器号 0x20,0x21,0x22 是在 init_bios_info 分配的,而 0x23 是u启带入的。
判断是否从 pxe 启动,不能使用 0x21,只能从 grldr 头部的引导代码带入参数了。
问题解决。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-3 03:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表