【 tulaoshi.com - Linux 】
说起无盘工作站,大家一定不会陌生,当年Novell下的无盘DOS工作站很是流行,后来又
流行过Win95无盘工作站,只是由于问题多多,后来微软自己停止了对无盘Windows的支持。
随着Linux的日益流行,使用Linux的人越来越多,其实Linux 对远程引导的支持非常好,
Linnx内核自身又支持网络文件系统,因此非常适合做无盘工作站,本文将以一个实例向大家
详细介绍无盘Linux工作站的安装办法。
这个网络是一个小的局域网,有1台服务器和4台 Linux 无盘工作站,彼此之间用双绞
线通过HUB连接,服务器的IP地址定为192.168.0.80 ,名字是server ,5台无盘工作站的
地址由服务器动态分配,地址范围从 192.168.0.1 到 192.168.0.4 ,名字分别是c1,c2,
c3,c4,服务器和无盘工作站使用的都是 NE2000 兼容网卡,无盘工作站使用的网卡上都安
装了BOOTROM 启动芯片,服务器操作系统安装的是 RedHat Linux 6.0 ,安装时选用定制
安装,并安装了全部软件。
Linux的远程引导有两种方式,一是利用Bootp协议,有一个专门的项目EtherBoot 提供
支持(http://www.slug.org.au/etherboot/),这种方式引导 Linux 的速度是最快的,
但这种方式有一个最大的问题,就是在市场上找不到支持这种远程引导协议的 BOOTROM 启动
芯片(除非自己刻录),因为市场上几乎所有的 BOOTROM 启动芯片都是遵循NOVELL远程引导
协议的,于是有人提出另外一种方式,就是服务器端用 NetWare 服务器,客户端就可以用现
有的BOOTROM 启动芯片了,说到这里大家一定胡涂了,作Linux无盘工作站岂不是还一台
NetWare 服务器?不是的,因为神通广大的 Linux 可以模拟 NetWare 服务器,就象Samba
可以把 Linux 模拟成 NT 一样,mars_nwe 可以把 Linux 模拟成 NetWare,不仅能提供
NetWare 文件和打印服务,还能提供远程引导支持(知道Linux的厉害了吧),本文讲述的
Linux 无盘工作站就是用这种方式作远程引导的。
准备启动盘
由于在 Linux 下没有制作符合 NetWare 远程引导协议启动映象的工具,所以只能用早
期的Win95()提供的工具(遗憾)。找一台装有 Win95 的机器启动后按 F8 进入纯DOS方式,
格式化一张启动盘 format a: /s ,然后将RedHat Linux安装光盘上 dosutils 目录下的
loadlin.exe复制到启动盘,在启动盘上作一个 autoexec.bat 文件,代码只有一行
loadlin.exe bzImage root=/dev/nfsroot
从 Windows 95 安装光盘的 Win95 目录下的cab文件中解出 rplboot.sys 文件放在启动
盘上,命令如下:
extract.exe /a /l a: win95-27.cab rplboot.sys
一张用来做启动映象的启动盘就作好了,保存好启动盘,以后作启动映象时会用到它。
编译内核
用于无盘工作站的Linux内核与用于从本地硬盘引导的Linux内核是不同的,无盘工作
站的内核必须支持NFS作为根文件系统,即远程根文件系统,所以必须编译无盘工作站专
用的内核。笔者使用的内核代码版本是2.2.16,将内核源代码解压到/usr/src下,
cd /usr/src/linux 进入内核子目录,执行命令make menuconfig 进行内核编译配置,下
列项目必须按要求设置:
Processor type and features 该项目下面的选项必须根据无盘工作站的CPU类型设
置,而不是根据服务器的CPU类型设置
Loadable module support 该项目下面的所有选项都禁止,即不支持模块功能
Plug and Play support 设置为有效
Block devices 该项目下面的
Loopback device support
Network block device support
都设置为有效
Networking option 该项目下面的
kernel level autoconfiguration
DHCP support (NEW)
都设置为有效
Network device support 该项目下面的选项必须根据无盘工作站使用的网卡进
行设置,本例中使用的是NE2000兼容网卡,选项
Ethernet (10 or 100Mbit)