当年Novell下的无盘DOS工作站很是流行后来又流行过Win无盘工作站只是由于问题多多后来微软自己停止了对无盘Windows的支持随着Linux的日益流行使用Linux的人越来越多其实Linux 对远程引导的支持非常好Linnx内核自身又支持网络文件系统因此非常适合做无盘工作站本文将以一个实例向大家详细介绍无盘Linux工作站的安装办法
这个网络是一个小的局域网有台服务器和台 Linux 无盘工作站彼此之间用双绞线通过HUB连接服务器的IP地址定为 名字是server 台无盘工作站的地址由服务器动态分配地址范围从 到 名字分别是cc cc服务器和无盘工作站使用的都是NE 兼容网卡无盘工作站使用的网卡上都安 装了BOOTROM 启动芯片服务器操作系统安装的是 RedHat Linux 安装时选用定制安装并安装了全部软件
Linux的远程引导有两种方式一是利用Bootp协议有一个专门的项目EtherBoot 提供支持()这种方式引导 Linux 的速度是最快的但这种方式有一个最大的问题就是在市场上找不到支持这种远程引导协议的 BOOTROM 启动 芯片(除非自己刻录)因为市场上几乎所有的 BOOTROM 启动芯片都是遵循NOVELL远程引导 协议的于是有人提出另外一种方式就是服务器端用 NetWare 服务器客户端就可以用现 有的BOOTROM 启动芯片了说到这里大家一定胡涂了作Linux无盘工作站岂不是还一台 NetWare 服务器?不是的因为神通广大的 Linux 可以模拟 NetWare 服务器就象Samba 可以把 Linux 模拟成 NT 一样mars_nwe 可以把 Linux 模拟成 NetWare不仅能提供 NetWare 文件和打印服务还能提供远程引导支持(知道Linux的厉害了吧)本文讲述的 Linux 无盘工作站就是用这种方式作远程引导的
准备启动盘
由于在 Linux 下没有制作符合 NetWare 远程引导协议启动映象的工具所以只能用早期的Win提供的工具(遗憾)找一台装有 Win 的机器启动后按 F 进入纯DOS方式格式化一张启动盘 format a: /s 然后将RedHat Linux安装光盘上 dosutils 目录下的 loadlinexe复制到启动盘在启动盘上作一个 autoexecbat 文件代码只有一行 loadlinexe bzImage root=/dev/nfsroot从 Windows 安装光盘的 Win 目录下的cab文件中解出 rplbootsys 文件放在启动 盘上命令如下
extractexe /a /l a:\ wincab rplbootsys
一张用来做启动映象的启动盘就作好了保存好启动盘以后作启动映象时会用到它
编译内核
用于无盘工作站的Linux内核与用于从本地硬盘引导的Linux内核是不同的无盘工作站的内核必须支持NFS作为根文件系统即远程根文件系统所以必须编译无盘工作站专用的内核笔者使用的内核代码版本是将内核源代码解压到/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 该项目下面的选项必须根据无盘工作站使用的网卡进行设置本例中使用的是NE兼容网卡选项
Ethernet ( or Mbit)
Other ISA cards
NE/NE support (NEW)
都设置为有效
Filesystems 该项目下面的Network File Systems子项目下面的
NFS filesystem support
Root file system on NFS (NEW)
都设置为有效
以上设置完成后退出内核编译设置程序会出现一个对话框Do you wish to save your new kernel configuration?
然后执行make dep && make bzImage进行内核编译这个过程得花一点时间特别是如果计算机的速度不快的话花的时间会更长一些编译内核如果没有错误会得到内核映象文件/usr/src/linux/arch/i/boot/bzImage 将启动软盘插入计算机执行下面的命令 mount t vfat /dev/fd /mnt/floopy cp /usr/src/linux/arch/i/boot/bzImage /mnt/floppy umount /dev/fd
好了启动盘上的文件都准备齐全了等会儿用它到Win环境下制作启动映象
服务器设置
服务器端需要运行nfsddhcpdmars_new等几个服务进程这些软件在ReHat Linux 发行套件里都有如果在安装 Linux 的时候选择全部安装这些软件都会随着安装操作 系统而装好了下面对这些软件进行设置注意下面的操作要以 root 身份进行
NFS 守护进程nfsd
首先要建立几个供无盘工作站使用的目录并通过nfsd 导出命令如下:
mkdir /tftpboot
然后编辑文件 /etc/hosts 加入下面的内容
server serverdomain
c cdomain
c cdomain
c cdomain
c cdomain
第一台工作站的工作目录设置方法如下:
mkdir /tftpboot/
cd /tftpboot/
cp a /bin
cp a /dev
mknod dev/nd b
chmod dev/nd
cp a /etc
cp a /home
cp a /lib
rm rf lib/modules
cp a /root
cp a /sbin
cp a /var
mkdir proc
mkdir usr
mkdir tmp
chmod tmp
touch fastboot
chattr +i fastboot
cd etc
编辑文件 sysconfig/networkscripts/ifcfgeth
保留其中的
DEVICE=eth
ONBOOT=yes
其余的行全部删除然后增加一行
BOOTPROTO=dhcp
编辑文件 rcd/rcsysinit 在文件最后加上两行
mount t nfs server:/usr /usr
/usr/XR/bin/xfs
编辑文件 fstab
保留其中的
none/procprocdefaults
其余的行全部删除然后增加一行
server:/tftpboot//nfs defaults
其它工作站的工作目录设置方法就简单多了
cd /tftpboot
cp a
cp a
cp a
编辑文件 /etc/exports 加入以下内容
/usr (rono_root_squash)
/tftpboot/ (rwno_root_squash)
/tftpboot/ (rwno_root_squash)
/tftpboot/ (rwno_root_squash)
/tftpboot/ (rwno_root_squash)
动态主机配置协议服务器 dpchd
检查一下文件/etc/dhcpdleases是否存在若不存在就用命令touch /etc/dhcpdleases 创建一个然后编辑文件 /etc/nf 加入以下内容
subnet netmask {
range ;
}
NetWare 模拟器 marsw_nwe
编辑文件 /etc/nf找到下面的行
# xeth
将该行开头的#去掉再找到
x *
在该行开头加上#
制作启动映象
进入Win将Win(早期的版本可以用服务器安装方式安装)安装光盘的admin\nettools\netsetup\rplimageexe 复制到硬盘将启动软盘插入软驱然后在纯MSDOS方式下执行 rplimage a: 就会得到启动映象 net$dossys再将启动映象 net$dossys 复制到启动盘上(如果启动盘空间不够可以先删除启动盘上的一些文件以留出空间)
启动 Linux 服务器以 root 用户登录将启动软盘插入软驱执行下面的命令 mount t vfat /dev/fd /mnt/floppycp /mnt/floppy/net\$dossys /var/mars_nwe\sys\login umount /dev/fd然后执行 setup 移动光棒至 System services 选项回车出现 Services 设置画面将dhcpdnfsmarsnwe 都设为有效退出 setup 程序执行以下的命令以启动上述服务进程:
/etc/rcd/rcd/*marsnwe restart
/etc/rcd/rcd/*dhcpd restart
/etc/rcd/rcd/*nfs restart
下一次再启动服务器时上述服务进程会自动