中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 一张ghost多网卡启动盘示例 上一主题 | 下一主题
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『楼 主』:  一张ghost多网卡启动盘示例

下载链接
http://dato.ys168.com GHOST Multicard Template


创建支持多网卡的ghost网络启动盘(MS-DOS
机房自从2007年四月份开始进了一批3800+的机器才真正开始了网络ghost。网络ghost操作可是减少了很大一部分工作量,以前见过一管理员每到重做系统时,他的工作就是拆机箱接光驱接硬盘然后。。。那工作量可想而知。
机房现有的6种机型,还有三种无法驱动,gigabyte 8I865GVMK(主板带pxe模块却无法驱动)、ECS K8T800-A(pxe加载 undi成功GhostCast Server上却无法发现client)ECS P4VXAD+(无pxe模块) ,每次做母盘时都是单独做一张针对该主板的NDIS2驱动的ghost网络启动盘然后通过grub for dos来加载。
经验:可能需要更换undi或者加大连接超时,等上班了再去试试。

最近才发现原来在Symantec Ghost Boot Wizad里有个叫Multicard Template的选项,可以添加多种网卡的NDIS2驱动至一张启动镜像上。哇太棒了,如果集成网卡坏那么只要一张镜像也可以驱动其它型号的网卡来进行网络ghost。
本文主要来解决如何改变Multicard Template生成的启动盘结构,将ghost网络启动盘的NDIS2驱动加载过程从config.sys里分离出来然后在autoexec.bat里通过 device命令加载,再通过将net目录下的文件通过cab格式打包成net.cab以期节省启动盘空间放置更多的NDIS2网卡驱动,然后释放到%ram%通过pcidet.dos进行配置。
1, 经过改造后的config.sys
2, 经过改造后的autoexec.bat
3, net目录和comp.dat打包成net.cab
4,如何添加驱动并修改comp.dat文件的描述

1, 经过改造后的config.sys
----------------------------------------
DEVICE=HIMEM.SYS
DEVICE=RAMDRIVE.SYS 4096 /e
LASTDRIVE = Z
----------------------------------------

2, 经过改造后的autoexec.bat
----------------------------------------
@echo off
SET TZ=GHO-08:00
prompt $p$g
echo Loading...
call FINDRAMD.BAT z y x w v u t s r q p o n m l k j i h g f e d c
if "%ram%" == "" echo RAM drive not found!
if "%ram%" == "" goto EOF
set path=%ram%:;a:;
mkdir %ram%:\ghost
copy ghost\*.* %ram%:\ghost
copy *.com %ram%:\
set comspec=%ram%:\command.com

REM Detect the NIC
extract /y /e /l %RAM%:\ net.cab
%ram%:
DEVICE \NET\pcidet.dos
DEVICE \NET\PROTMAN.DOS /i:\NET
call \net\doit.bat
DEVICE \net\dis_pkt.dos
\net\netbind.com

if exist MOUSE.COM MOUSE.COM
CD \GHOST
GHOST.EXE
:EOF
----------------------------------------

3, net目录和comp.dat打包成net.cab
下载makev3.zip 这是由Bart Lagerweij写的一个简便的cab压缩方法。
URL Redirect: http://www.nu2.nu/download.php?sFile=makev3.zip
将makev3.zip解压,注意修改make.bat里的LZX压缩率为20,根据以往的经验20的压缩率将有助于解决在无任何DOS可识别的硬盘分区下正常通过 extract命令解压到%ram%区域。
cabarc -m LZX:21  à  cabarc -m LZX:20

以下为目录结构
|   cabarc.exe
|   make.bat
|
+---cabs
\---source
    \---net
        |   COMP.DAT
        |
        \---NET
然后在cmd状态下定位到make.bat所在的路径,运行make net 之后就会在cabs目录下找到一个叫net.cab的文件。将其放置于a:路径下,并删除原有的net目录和comp.dat

4, 如何添加驱动并修改comp.dat文件的描述
1)      首先从网卡的生产产家的官方网站下载相应的NDIS驱动。
2)      在\net目录下建立类似的cardXX的目录(XX为下一个级数)
3)拷贝相应的NDIS驱动的.dos文件到新建的目录下
4)从其它目录拷贝DOIT.BAT和protocol.ini到新建的目录下
5)修改DOIT.BAT将其指向正确的NDIS驱动.dos文件所在的路径
6)修改protocol.ini类似
Code:
[protman]
drivername=PROTMAN$

[pktdrv]
drivername=PKTDRV$
bindings=nic
intvec=0x60
chainvec=0x66

[nic]
drivername=driver_file_name$
(例如, virtual pc的DC21X4.DOS, 将为drivername = DC21X4$)
7)修改comp.dat
-------------------------以下是一个简化过的comp.dat示例
0007
\net\card0\$
      ↓
\net\card6\$
001F : Number of devices
1011 0002 0001 : Intel 21040 based Ethernet Controller              $
     ↓总共有31个标识                                
1039 0900 0007 : SiS 900/7016 PCI Fast Ethernet Adapter            $
-------------------------
a)第一行0007代表现有的驱动数量(注意它是以16进制表示)
b)添加\net\cardXX\$ 到列表。注意要在带”Number of devices”行的上一行
c)001F这是相关网卡PCI标识描述的总计(它同样是以16进制表示)
d)查找相应网卡的Vendor Identification 和 Device Identification
i)运行devmgmt.msc打开设备管理器
ii)双击相应的网络适配器
iii)点击“详细信息”标签
iv)可能是类似这样一串的“设备范例ID”
"PCI\VEN_14E4&DEV_164C&SUBSYS_01B31028&REV_12\5&43097C6&0&0000E0"
对我们有用的是VEN_ 和 DEV_后面的16进制数字。
e)在comp.dat 的最后面一行添加如下格式的数据
VEN_#  DEV_#  DRIVER_LINE_NUMBER:         $
假如你在步骤7.b里总计60个驱动(转换为16进制为003C)
以及步骤7.d.iv获得的PCI Identifier
那么comp.dat文件的最后一行将会类似这样
14E4 164C 003C : Broadcom NetXtreme II   
$
资源下载
Microsoft Network Client version 3.0 for MS-DOS
ftp://ftp.microsoft.com/bussys/clients/
http://www.nu2.nu/download.php?sFile=makev3.zip
PCI Identifier查询
http://members.datafast.net.au/dft0802
http://www.pcidatabase.com/
问与答
问:为什么按照文档的步骤在virtual pc2007测试时加载网卡时会导致死机?
答:没错确实是这样,曾经在这里耗费了大量时间,第一次的解决方法是用win98启动盘的himem.sys替换了GSS自带的版本,网卡驱动是成功加载了,但是ghost.exe却无法运行。最终的解决方法是保留GSS提供的himem.sys,用Microsoft Network Client version 3.0 for MS-DOS里的PROTMAN.DOS替换了\net目录下的文件,终于成功了。这是里面的唯一一处替换,其它文件还是保留原来生成的,因为无法预知替换后可能出现的其它问题。
问:GSS是什么?
答:GSS是Symantec Ghost Solution Suite 的简写,写这篇文档时用的是2.0.1版本
问:这种方法适合PC-DOS吗?
答:报歉不知道如何生成 2.88M的PC-DOS启动盘也就不知道结果了。
问:如何将10进制转换为16进制?
答:运行calc启动windows自带的计算器就可以方便的进行转换。

参考资料
Create a multi-nic msdos Ghost Boot CD
https://forums.symantec.com/syment/board/message?board.id=109&message.id=5462
Adding a NIC driver to a multi-boot USB Key

https://forums.symantec.com/syment/board/message?board.id=109&message.id=10352
更新日志
* 2008年2月8日星期五
- 生成文档



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2008-2-8 03:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xugaohui
高级用户




积分 774
发帖 293
注册 2003-4-16
来自 湖北仙桃
状态 离线
『第 2 楼』:  

真正的多网卡支持请看:
http://cn-dos.net/forum/viewthread.php?tid=19003&fpage=2
你的多网卡支持只能支持最先检测到的网卡,主板有两个相同网卡时也不支持,比如 两个realtek 系列,intel系列,bc系列,marvell系列都是不可以的。

07年11月GSS出了2.0.2版的。



下载
09年7月7日 更新
感谢网友 囧HQY 提供空间
2008-2-9 14:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kyoiiyb
新手上路





积分 10
发帖 4
注册 2007-6-8
状态 离线
『第 3 楼』:  

这个不错。.!  学到了。.!
2楼的东西也不错 可以代码看不太明白。.! 暂时还是用楼主这个方法..!

2008-3-6 23:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dato
高级用户




积分 916
发帖 377
注册 2004-3-8
状态 离线
『第 4 楼』:  

同级目录下有个叫build.rar

里面使用http://www.nu2.nu/bfi/ Build Floppy Image来方便的生成启动盘镜像。
以及如何来解决nvidia mcp61驱动加载问题。大家可以自己修改一下方便工作中使用。注意生成的pcdos7.1的启动盘需要在实机中测试。里面有以下驱动

echo                  01.Multicard
echo                  02.Intel 21140 (virtual pc)
echo                  03.Intel PRO 100 .
echo                  04.NVIDIA nForce Ethernet .
echo                  05.Realtek RTL8139 Fast Ethernet .
echo                  06.VIA Rhine Family Fast Ethernet Adapter . v4.38
echo                  07.SiS 900/7016 PCI Fast Ethernet Adapter .



http://dato.ys168.com
google search bot
http://dato.minidns.net/
2008-3-7 21:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: