2001.10.30 吴峰光 本站提供对无盘启动的支持。本文就此作一简单介绍。 一、概述 无盘启动,更确切的说是网络启动,可算是最为轻松和简便的启动方式了。
目前还很少有人了解它,因为目前的软硬件条件尚未完全成熟。
但是可以预见,不远的未来(最近几年吧),将会是无盘启动的时代。 无盘启动可以由netboot,etherboot及pxe实现。
现在一般选用的是etherboot,而pxe方式是未来的方向,只是在目前条件尚未成熟。 二、现有的服务 198提供了DHCP,TFTP,NFS等服务,用以支持无盘客户端。 本站提供如下类型的网络启动模块:
-->> 启动进入Linux
无须在本机上安装Linux系统,您就可以启动进入一个全功能的linux系统(debian/woody).
您可用root登陆系统,无需输入密码。
感觉就像是自己装的Linux,没有任何功能上的限制,除了你不能更改/。
特别适合如下用途:
□linux初学者学习使用
□供有经验的linux用户作为应急系统:比如在一个裸机上装操作系统,本地系统损坏时进行紧急修复.
-->> 加载Windows98启动盘
-->> 加载多种Linux版本的安装程序 三、客户端
要享受网络启动,首先要求您拥有一块PCI网卡,并在卡上插有一块EPROM无盘启动芯片。
能满足后一条件的恐怕很少,不过没关系,现在有一种非常简便的EPROM替代方式。
那就是准备一张无有用数据的软盘,往其中写入一段小小的网络启动驱动代码(通常是16K/32K)
然后就可以用它启动电脑,进入网络启动界面啦!
具体操作:
从file://202.38.73.198/diskless/etherboot/下载:
-->> rawrite.exe
-->> 子目录lzdsk下与您的网卡配套的驱动代码映像文件
运行rawrite.exe,输入映象文件名,即可制作无盘启动引导软盘,进行“无盘”启动了。 当您使用etherboot启动盘成功启动后
第一步:DHCP服务器会给出你的网络配置,并给出一个菜单,在其中列出了所有可用的服务。
第二步:选中其中一项之后,即进入第二步,从TFTP服务器下载相应的映象文件。
第三步:控制权交给此映象文件,启动进入linux/freebsd/dos等操作系统。 四、服务端设置
自动化系系网:
由202.38.73.198(本站)提供DHCP、TFTP及NFS-ROOT支持。
校内其它子网:
有兴趣提供这一服务的同学,有如下三种选择,可简可繁。
1、简单的提供DHCP
2、提供DHCP及TFTP
3、提供完整配套的DHCP、TFTP以及NFS-ROOT
前两种方案比较简单,对服务器也没有什么负担,它们起到了前期引导启动的作用,
而后期的NFS-ROOT负载全部转由198服务期提供。
第三种方案实际上就是要新建一整套无盘系统,那就非常的繁了。 1. DHCP解决方案
这适用于简单的为实验室内部网络提供网络启动支持.
操作:
您需要运行dhcpd,并在/etc/dhcpd.conf中合适的地方加入如下的语句:
next-server 202.38.73.198;
filename "/tftpboot/nc.nbi";
option tftp-server-name "202.38.73.198";
option root-path "202.38.73.198:/croot,flags=hard,nolock,intr,v3"; 其中第二行的文件名按您的需要而定。在73.198上的/tftpboot/目录下有一些现成可用的映像文件,供您选择使用:
nc.nbi 全功能的Linux
bare.nbi 受限的Linux,不能存取本地硬盘、软盘及光盘,不能动态加载内核模块
win98.nbi win98启动盘
suse.nbi SuSE 7.3 安装启动
redhat.nbi Redhat 7.2 安装启动
mandrake.nbi Mandrake 8.1 安装启动 2. DHCP+TFTP解决方案
相对于1,其好处是可以提供一个菜单,让客户端自由选择想加载启动的映像文件.
操作:
a) 开启tftp服务,并从本站/diskless/tftpboot/目录下载所有文件至本地/tftpboot目录.
b) 开启dhcp服务,并在/etc/dhcpd.conf中合适的地方加入如下语句:
(注意:请勿直接copy&paste,内含特殊字符!)
option option-128 e4:45:74:68:0:0;
option option-129 "ramdisk_size=102400";
option option-160 "timeout=15:default=192";
option option-184 "['/tftpboot/motd'#";
option option-192 "[33mNetwork Computer[37m - a full functional GNU/Linux system:::/tftpboot/nc.nbi:";
option option-193 "[33mBare WorkStation[37m - a bare diskless GNU/Linux system:::/tftpboot/bare.nbi:";
option option-194 "[33mRedhat 7.2 Installation Disk[37m:::/tftpboot/redhat.nbi:";
option option-195 "[33mMandrake 8.1 Installation Disk[37m:::/tftpboot/Mandrake.nbi:";
option option-196 "[33mSuSE 7.3 Installation Disk[37m:::/tftpboot/suse.nbi:";
option option-197 "[34mWin98 boot[37m - Windows 98 bootdisk:::/tftpboot/win98.nbi:"; 3. DHCP+TFTP+NFS解决方案
进一步增加NFS支持,主要是用来构建自己的无盘linux系统.
适合于快速建立集群系统,用于并行运算.
无盘系统的构建方法多种多样,需要拥有较好的Linux基础。
这里我仅简单的介绍一下自己的方案。 我的原则是:创建和维护简单而方便,扩展性和伸缩性好,通用性和适用范围广。 简单步骤如下(假设您已具有Linux无盘启动的初步知识):
1、在一台普通的机子上安装一个debian/woody系统,进行初步的系统配置。
2、将此系统完整的拷贝到服务器的目录/croot下。
3、在服务器上配置运行nfsd。将/croot通过NFS共享:
#/etc/exports
/croot *(ro,no_root_squash)
4、在服务器上配置运行dhcpd,tftpd。
5、缺省的/etc,/var等目录,客户端需要拥有写入权,因此需要在客户端内存建立虚拟的文件系统。
把/croot下的etc/,var/,root/等目录精简并打包,放在/croot/nfsboot/目录下。
系统启动时下面的脚本会建立若干tmpfs文件系统,并把这些压缩包解开还原到其中去。
6、在/croot/etc/init.d/下新建nfsboot.sh脚本文件,并建立链接
ln -s /croot/etc/init.d/nfsboot.sh /croot/etc/rcS.d/S03nfsboot.sh
使之能在系统启动的初期自动执行。
7、编译客户端内核,分别使用etherboot及mknbi制作启动软盘及映像文件。 参考资料:
在198上你能找到全部的配置参考资料.比如:
ftp://202.38.73.198/diskless/ etherboot及mknbi源代码
ftp://202.38.73.198/diskless/dhcpd.conf.sample dhcpd配置文件模板
ftp://202.38.73.198/diskless/etherboot/ 已编译好的各种etherboot启动文件
ftp://202.38.73.198/diskless/tftpboot/ 已打包好的由mknbi制作的网络启动映象文件
(NFS) 202.38.73.198:/croot NFS-ROOT,整个系统都给你了噢。
(NFS) 202.38.73.198:/croot/etc/init.d/nfsboot.sh 网络启动初始化脚本,呵呵,本系统运行的关键之处。
(NFS) 202.38.73.198:/croot/etc/nfsboot/ 已打包的精简版本/etc,/var等目录 若有什么问题,请与我联系:
[email protected]
fengguang_wu@bbs